Java:给现有的俄罗斯方块加保存最高分功能,请问这里出什么问题了?
俄罗斯方块的代码基本上是用的这个帖子里面的:http://tieba.baidu.com/p/2781119118?see_lz=1稍微改动了一下只是去掉了菜单和沉迷游戏...
俄罗斯方块的代码基本上是用的这个帖子里面的:
http://tieba.baidu.com/p/2781119118?see_lz=1
稍微改动了一下只是去掉了菜单和沉迷游戏伤身等标语,应该不影响功能
然后我想要记录最高分在文件里面,是在每次游戏结束的时候判断要是分数比纪录高就把最高分改成这次的分数,所以我往Tetrisblok.java里面的newblock()添加了代码,现在是这样:
// 生成新方块的方法
public void newblock() {
blockType = (int) (Math.random() * 1000) % 7;
turnState = (int) (Math.random() * 1000) % 4;
x = 4;
y = 0;
if (gameover(x, y) == 1) {
newmap();
drawwall();
try{
if(score>=record){
System.out.println("new best score:"+score) ;
File outFile = new File("E:/文档/record.txt") ;
FileOutputStream fos = new FileOutputStream(outFile) ;
BufferedOutputStream bos=new BufferedOutputStream(fos);
DataOutputStream dos=new DataOutputStream(bos);
dos.writeInt(score);
}
File inFile = new File("E:/文档/record.txt") ;
FileInputStream fis = new FileInputStream( inFile) ;
BufferedInputStream bis=new BufferedInputStream(fis);
DataInputStream dis=new DataInputStream(bis);
record=dis.read();
System.out.println("best score:"+record) ;
System.out.println("your score:"+score) ;
}catch(Exception e){}
score = 0;
JOptionPane.showMessageDialog(null, "GAME OVER");
}
}
可是我发现一直没改变最高分纪录,record一直是0没有变啊,这是为什么? 展开
http://tieba.baidu.com/p/2781119118?see_lz=1
稍微改动了一下只是去掉了菜单和沉迷游戏伤身等标语,应该不影响功能
然后我想要记录最高分在文件里面,是在每次游戏结束的时候判断要是分数比纪录高就把最高分改成这次的分数,所以我往Tetrisblok.java里面的newblock()添加了代码,现在是这样:
// 生成新方块的方法
public void newblock() {
blockType = (int) (Math.random() * 1000) % 7;
turnState = (int) (Math.random() * 1000) % 4;
x = 4;
y = 0;
if (gameover(x, y) == 1) {
newmap();
drawwall();
try{
if(score>=record){
System.out.println("new best score:"+score) ;
File outFile = new File("E:/文档/record.txt") ;
FileOutputStream fos = new FileOutputStream(outFile) ;
BufferedOutputStream bos=new BufferedOutputStream(fos);
DataOutputStream dos=new DataOutputStream(bos);
dos.writeInt(score);
}
File inFile = new File("E:/文档/record.txt") ;
FileInputStream fis = new FileInputStream( inFile) ;
BufferedInputStream bis=new BufferedInputStream(fis);
DataInputStream dis=new DataInputStream(bis);
record=dis.read();
System.out.println("best score:"+record) ;
System.out.println("your score:"+score) ;
}catch(Exception e){}
score = 0;
JOptionPane.showMessageDialog(null, "GAME OVER");
}
}
可是我发现一直没改变最高分纪录,record一直是0没有变啊,这是为什么? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |