import java.util.Random;
import java.util.Scanner;
public class Push {
char[][] map;
int peoI,peoJ,boxI,boxJ,dowI,dowJ;
void creMap(){
map = new char[15][15];
for (int i = 0; i < map.length; i++) {
for (int j = 0; j < map.length; j++) {
map[i][j] = '*';
}
}
}
//创建游戏单位
void createA(){
//创建人物的随机坐标
Random ran = new Random();
peoI = ran.nextInt(10);
peoJ = ran.nextInt(10);
//把人物放到地图上
map[peoI][peoJ] = '☃';
//创建随机箱子的坐标
boxI = ran.nextInt(9);
boxJ = ran.nextInt(9);
map[boxI][boxJ] = '■';
//创建终点坐标
dowI = ran.nextInt(10);
dowJ = ran.nextInt(10);
map[dowI][dowJ] = '◎';
}
// 打印地图
void printMap() {
for (int i = 0; i < map.length; i++) { // 遍历二维数组 打印当前状态棋盘
for (int j = 0; j < map.length; j++) {
System.out.print(map[i][j] + " ");
}
System.out.println();
}
}
//开始游戏
boolean begin(){
System.out.println("游戏开始");
//构造地图
creMap();
//创建单位
createA();
//打印地图
printMap();
//让人物移动
while(true) {
System.out.println("请移动:");
System.out.println("W:↑\tS:↓\tA:←\tD:→");
//创建一个扫描器
Scanner sc = new Scanner(System.in);
String yd = sc.next();
if(yd.equals("w")){
System.out.println("上");
if (peoI == 0){
map[peoI][peoJ] = '*';
peoI = 13;
map[13][peoJ] = '☃';
}
if (boxI == 0 && peoI ==1){
map[peoI][peoJ] = '*';
map[boxI][boxJ] = '*';
peoI = 14;
boxI = 13;
map[boxI][boxJ] = '■';
map[peoI][peoJ] = '☃';
}
map[peoI][peoJ] = '*';
if(peoI>0) {
peoI--;
if(peoI==boxI && peoJ==boxJ && boxI>0) {
boxI--;
map[boxI][boxJ] = '■';
}
}
map[peoI][peoJ] = '☃';
//打印地图
printMap();
}else if(yd.equals("s")) {
System.out.println("下");
if (peoI == 14){
map[peoI][peoJ] = '*';
peoI = 1;
map[peoI][peoJ] = '☃';
}
if (boxI == 14 && peoI ==13){
map[peoI][peoJ] = '*';
map[boxI][boxJ] = '*';
peoI = 0;
boxI = 1;
map[boxI][boxJ] = '■';
map[peoI][peoJ] = '☃';
}
map[peoI][peoJ] = '*';
if(peoI<14) {
peoI++;
if(peoI==boxI && peoJ==boxJ && boxI<14) {
boxI++;
map[boxI][boxJ] = '■';
}
}
map[peoI][peoJ] = '☃';
//打印地图
printMap();
}else if(yd.equals("a")) {
System.out.println("左");
if (peoJ == 0){
map[peoI][peoJ] = '*';
peoJ = 13;
map[peoI][peoJ] = '☃';
}
if (boxJ == 0 && peoJ == 1){
map[peoI][peoJ] = '*';
map[boxI][boxJ] = '*';
peoJ = 14;
boxJ = 13;
map[boxI][boxJ] = '■';
map[peoI][peoJ] = '☃';
}
map[peoI][peoJ] = '*';
if(peoJ>0) {
peoJ--;
if(peoI==boxI && peoJ==boxJ && boxI>0) {
boxJ--;
map[boxI][boxJ] = '■';
}
}
map[peoI][peoJ] = '☃';
//打印地图
printMap();
}else if(yd.equals("d")) {
System.out.println("右");
if (peoJ == 14){
map[peoI][peoJ] = '*';
peoJ = 1;
map[peoI][peoJ] = '☃';
}
if (boxJ == 14 && peoJ == 13){
map[peoI][peoJ] = '*';
map[boxI][boxJ] = '*';
peoJ = 0;
boxJ = 1;
map[boxI][boxJ] = '■';
map[peoI][peoJ] = '☃';
}
map[peoI][peoJ] = '*';
if(peoJ<14) {
peoJ++;
if(peoI==boxI && peoJ==boxJ && boxI<14) {
boxJ++;
map[boxI][boxJ] = '■';
}
}
map[peoI][peoJ] = '☃';
//打印地图
printMap();
}
if(boxI==dowI && boxJ==dowJ) {
System.out.println("恭喜胜利,是否进行下一关y/n");
Scanner scn = new Scanner(System.in);
String flag = scn.nextLine();
if (flag.equals("n")){
break;
}else {
return true;
}
}
}
return false;
}
public static void main(String[] args) {
boolean bol;
do {
Push push = new Push();
bol = push.begin();
}
while (bol);
}
}
java命令行简单实现推箱子小游戏
于 2022-11-26 15:26:32 首次发布