用java实现推箱子(sokoban)游戏重点.docxVIP

  • 57
  • 0
  • 约1.24万字
  • 约 17页
  • 2017-04-08 发布于湖北
  • 举报
推箱子游戏 一、功能描述: ? 可以通过面板上的按钮或是键盘上的pageup,pagedown键选择上下关 ? 可以通过面板上按钮或是键盘上的Backspace键后退,一直后退自己想要的位置,知道游戏开始时的位置。 ? 可以通过面板上的按钮或是键盘上的字母r重新开始当前关卡游戏。 ? 可以在复选框内选择想要玩的关卡。 二、界面及运行截图 三、源代码(三部分) 1、地图类 package box; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader;//读取字符文件类FileReader import java.io.IOException; public class map { int[][] map=new int[20][20]; int manX,manY; public map(int level){ String filepath=mapc/+level+.txt; File file = new File(filepath); FileReader fr = null;//利用FileReader流来读取一个文件中的数据 BufferedReader br = null;//字符读到缓存里 try { fr = new FileReader(file); br = new BufferedReader(fr); for (int i = 0; i 15; i++){ String line = br.readLine();//以行为单位,一次读一行 利用BufferedReader的readLine,读取分行文本 byte[] point = line.getBytes();//将字符串转换为字节数组 for (int j = 0; j 15; j++) { map[i][j] = point[j] - 48;// 根据ASCall码表要减掉30H(十进制的48) if (map[i][j] == 5 || map[i][j] == 6 || map[i][j] == 7|| map[i][j] == 8){ manX = i; manY = j; } } } } catch (FileNotFoundException e){ e.printStackTrace();//深层次的输出异常调用的流程 } catch (IOException e){ e.printStackTrace();//深层次的输出异常调用的流程 } catch(NullPointerException e){ e.printStackTrace();//深层次的输出异常调用的流程 } finally { if (br == null){ try{ br.close(); } catch (IOException e){ e.printStackTrace(); } br = null; } if (fr == null){ try { fr.close(); } catch (IOException e){ e.printStackTrace(); } fr = null; } } } public int[][] getMap() { return map; } public int getManX() { return manX; } public int getManY() { return manY; } } 2、游戏运行类 package box; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.*; import javax.swing.*

文档评论(0)

1亿VIP精品文档

相关文档