java 推箱子游戏 简单例子
2015-12-04 17:11
555 查看
初学java,使用的是eclipse,在一个3X3的数组中,规定1是人物,2是箱子,3是目的地。只有一个箱子。
使用数字小键盘2468进行4个方向的控制,在箱子没有到达目的地的时候会一直运行,直到箱子到达目的地游戏结束。
废话不多说,上代码
使用数字小键盘2468进行4个方向的控制,在箱子没有到达目的地的时候会一直运行,直到箱子到达目的地游戏结束。
废话不多说,上代码
package com.pushbox; import java.util.Scanner; public class Main { static int[][] map = new int[3][3]; // 玩家的坐标 static int XOfMan = 0,YOfMan = 0; // 箱子的坐标 static int XOfBox = 1,YOfBox = 1; // 目的地坐标 static int XOfTar = 2,YOfTar = 2; // 游戏结束 static boolean GameOver = false; public static void main(String[] args) { // 初始位置 locatMan(); locatBox(); locatTar(); // 构建地图 showMap(); // 键盘输入指令 Scanner sc = new Scanner(System.in); while (!GameOver) { System.out.print("请输入方向,2468分别代表↓ ← → ↑:"); int dir = sc.nextInt(); move(dir); showMap(); if (XOfBox == XOfTar&& YOfBox == YOfTar) { GameOver = true; System.out.println("游戏结束!"); } } sc.close(); } // 输出画面 public static void showMap() { for (int[] is : map) { for (int i : is) { System.out.print(i + " "); } System.out.println(); } } // 定位玩家 public static void locatMan() { map[XOfMan][YOfMan] = 1; } // 定位箱子 public static void locatBox(){ map[XOfBox][YOfBox] = 2; } // 定位目的地 public static void locatTar(){ map[XOfTar][YOfTar] = 3; } public static void move(int dir) { switch (dir) { case 2: //如果边界上有箱子 if (map[XOfMan+1][YOfMan]==2) { // 如果箱子到了边界 if (XOfBox == 2) { break; } // 箱子坐标更新 XOfBox++; map[XOfBox][YOfBox] = 2; } XOfMan++; map[XOfMan][YOfMan] = 1; map[XOfMan - 1][YOfMan] = 0; break; case 4: //如果边界上有箱子 if (map[XOfMan][YOfMan-1]==2) { // 如果箱子到了边界 if (YOfBox == 0) { break; } // 箱子坐标更新 YOfBox--; map[XOfBox][YOfBox] = 2; } YOfMan--; map[XOfMan][YOfMan] = 1; map[XOfMan][YOfMan + 1] = 0; break; case 6: //如果边界上有箱子 if (map[XOfMan][YOfMan+1]==2) { // 如果箱子到了边界 if (YOfBox == 2) { break; } // 箱子坐标更新 YOfBox++; map[XOfBox][YOfBox] = 2; } YOfMan++; map[XOfMan][YOfMan] = 1; map[XOfMan][YOfMan - 1] = 0; break; case 8: //如果边界上有箱子 if (map[XOfMan-1][YOfMan]==2) { // 如果箱子到了边界 if (XOfBox == 0) { break; } // 箱子坐标更新 XOfBox--; map[XOfBox][YOfBox] = 2; } XOfMan--; map[XOfMan][YOfMan] = 1; map[XOfMan + 1][YOfMan] = 0; break; default: break; } } }
相关文章推荐
- Spring的传播行为
- java 时间格式转换
- Eclipse里项目名有红叉,但是底下的每一个文件都没有红叉(转)
- java 编译中常用函数
- 详解SpringMVC4+Mybatis构建
- 《疯狂JAVA讲义》——多态
- Java 对象拷贝方式
- java集合框架遍历元素方法总结
- 搭建Spring、Spring MVC、Mybatis和Freemarker
- 利用BeanMap进行对象与Map的相互转换
- 在eclipse4.5.1官方英文版利用官方语言包汉化的方法
- java线程学习(四)---线程间的通信
- RxJava教程(一)
- 浅谈springSecurity
- Intellij idea处理Spring MVC单元测试问题
- GWT 项目创建
- windows下java操作zookeeper
- myeclipse中配置jbmp3.2.1
- zigbee网关 java 串口通信
- 【Developer Log】Java1.8在J2EE中疑似leak的修正