Java控制台版推箱子
import java.util.Scanner;
public class b { public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[][] map = new int[15][15]; //地图
int rx = 1;
int ry = 2;//人的坐标
int xx = 13;
int xy = 12;//箱子的坐标
int mx = 10;
int my = 3;//目的地坐标 map[rx][ry] = 1; // 设置人的坐标位置为1
map[xx][xy] = 2; // 设置箱子的坐标位置为2
map[mx][my] = 3; // 设置目的地的坐标位置为3
boolean tt = false; while(true){
for(int i=0;i<15;i++){
for(int j=0;j<15;j++){
if(map[i][j] == 1){
System.out.print("囚"); // 人物
}else if(map[i][j] == 2){
System.out.print("▲"); // 箱子
}else if(map[i][j] == 3){
System.out.print("★"); // 目的地
}else{
System.out.print("□"); // 地图
}
}
System.out.println(); // 换行
}
if(tt){ // 判断
System.out.print("成功将箱子推到终点!");
break; // 跳出循环
}
System.out.print("要往哪走(w上,s下,a左,d右):"); // 用户输入
String f = input.next(); // 只接收一个字符 if(f.equals("w")){ // 上
// 判断人是否走到边上
if(rx-1<0){
continue;
}
// 判断人是否推着箱子
if(map[rx-1][ry]==2){
//判断箱子是否在边上
if(rx-2<0){
continue;
}
// 判断箱子是否进入目的地
if(map[rx-2][ry] == 3){
tt=true;
}
// 箱子走一步
map[rx-2][ry]=2;
}
// 判断人是否走到目的地里
if(map[rx-1][ry]==3){
map[rx][ry]=0;
rx--;
continue;
}else if(map[rx][ry]==3){// 判断人是否走出目的地
map[rx][ry]=3;
rx--;
map[rx][ry]=1;
continue;
}
map[rx][ry]=0;
rx--;
map[rx][ry]=1; }else if(f.equals("s")){ // 下
// 判断人是否走到边上
if(rx+1>14){
continue;
}
// 判断人是否推着箱子
if(map[rx+1][ry]==2){
//判断箱子是否在边上
if(rx+2>14){
continue;
}
// 判断箱子是否进入目的地
if(map[rx+2][ry] == 3){
tt=true;
}
// 箱子走一步
map[rx+2][ry]=2;
}
// 判断人是否走到目的地里
if(map[rx+1][ry]==3){
map[rx][ry]=0;
rx++;
continue;
}else if(map[rx][ry]==3){// 判断人是否走出目的地
map[rx][ry]=3;
rx++;
map[rx][ry]=1;
continue;
}
map[rx][ry]=0;
rx++;
map[rx][ry]=1; }else if(f.equals("a")){ // 左
// 判断人是否走到边上
if(ry-1<0){
continue;
}
// 判断人是否推着箱子
if(map[rx][ry-1]==2){
//判断箱子是否在边上
if(ry-2<0){
continue;
}
// 判断箱子是否进入目的地
if(map[rx][ry-2] == 3){
tt=true;
}
// 箱子走一步
map[rx][ry-2]=2;
}
// 判断人是否走到目的地里
if(map[rx][ry-1]==3){
map[rx][ry]=0;
ry--;
continue;
}else if(map[rx][ry]==3){// 判断人是否走出目的地
map[rx][ry]=3;
ry--;
map[rx][ry]=1;
continue;
}
map[rx][ry]=0;
ry--;
map[rx][ry]=1;
}else if(f.equals("d")){ // 右
// 判断人是否走到边上
if(ry+1>14){
continue;
}
// 判断人是否推着箱子
if(map[rx][ry+1]==2){
//判断箱子是否在边上
if(ry+2>14){
continue;
}
// 判断箱子是否进入目的地
if(map[rx][ry+2] == 3){
tt=true;
}
// 箱子走一步
map[rx][ry+2]=2;
}
// 判断人是否走到目的地里
if(map[rx][ry+1]==3){
map[rx][ry]=0;
ry++;
continue;
}else if(map[rx][ry]==3){// 判断人是否走出目的地
map[rx][ry]=3;
ry++;
map[rx][ry]=1;
continue;
}
map[rx][ry]=0;
ry++;
map[rx][ry]=1;
} }
}
}
Java控制台版推箱子的更多相关文章
- C语言版推箱子
推箱子源代码初步: #include<stdio.h> #include<conio.h> #include<stdlib.h> #define boolean i ...
- jQuery版推箱子游戏详解和源码
前言 偶然间看到很多用js写游戏的感觉很炫酷的样子,所以就想试试,就看了一些资料和某前端站点的视屏.于是乎就自己动手实践了一下,上推箱子截图 感觉很丑陋,但是功能是实现了.再说貌似大多都是这样的吧,这 ...
- JAVA控制台版斗地主
一.核心思路: 1.首先分析流程: A>B>C>A>B>C>A>B>C 等于 while(true){ A>B>C } 然后完善细节 发牌 ...
- 用C#控制台编写 推箱子之类的 坐标移动----之二维坐标
//首先用枚举 列出方向 上,下,左,右(枚举的最后一位数后不用符号 否则会报错) public enum dro { up = 1, down = ...
- C++ 控制台推箱子小游戏
// 游戏菜单.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #in ...
- hdu.1254.推箱子(bfs + 优先队列)
推箱子 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...
- [HDU 1254] 推箱子
推箱子 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...
- C++学习(九)(C语言部分)之 项目 推箱子游戏
游戏制作 推箱子 步骤分析 1.模板 2.模板分析 组成元素: 空地 墙 人 目的地 箱子 背景 3.如何操作 通过WASD键盘操作人,推着箱子,到达目的地,游戏结束,如果箱子卡在死角则游戏失败 4. ...
- 推箱子 (hdu1254)(bfs双重广搜)
推箱子 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission ...
随机推荐
- web 网站安全证书已过期或不可信 是否继续浏览
发生环境:魅族MX4 uc浏览器 IIS部署SSL证书后提示不可信的解决方案 第一步:打开mmc——点击文件——添加删除管理单元——证书——计算机帐户 第二步:在计算机帐户的个人证书里面导入pfx格 ...
- MINA学习之IoService
从上一篇文章中知道,IoService出于MINA体系中的底层.IoService将会帮你维护网络交互,接受消息,发送消息,管理Sessions,管理连接Connections等等. IoServic ...
- 有n个台阶,如果一次只能上1个或2个台阶,求一共有多少种上法
// n级台阶,求多少种跳法.cpp : Defines the entry point for the console application. // /* 思路: 如果只有一级台阶,n=1,很明显 ...
- 用Gitosis搭建Git服务器(经典资料)
该文档介绍了用Gitosis自己搭建Git服务器,文章来自于<Git权威指南>一书的第31章,讲述详细易懂易操作,是搭建Git服务器绝好资料! 下载地址:http://download.c ...
- 【iOS-Android开发对照】 之 APP入口
[iOS-Android开发对照]之 APP入口 [图片 Android vs iOS] 提纲 对照分析iOS,Android的入口, iOS,Android的界面单元 为什么要有那样的生命周期 继承 ...
- SQL Server与Oracle对比学习:权限管理(一)
http://blog.csdn.net/weiwenhp/article/details/8093661 我们发现我们现在的生活中到处是涉及到密码,你要记各种各样的密码.比如银行卡,邮件,QQ,微博 ...
- [转]flume-ng+Kafka+Storm+HDFS 实时系统搭建
http://blog.csdn.net/weijonathan/article/details/18301321 一直以来都想接触Storm实时计算这块的东西,最近在群里看到上海一哥们罗宝写的Flu ...
- 关于Opengl中将24位BMP图片加入�一个alpha通道并实现透明的问题
#include <windows.h>#include <GL/glut.h>#include <GL/glaux.h>#include <stdio.h& ...
- WCF - REST服务
WCF REST服务 一个基于REST的WEB服务操作请求只需要体现两点 一是资源的唯一标识 二是操作类型 资源的唯一标识通过URI来完成 而操作类型通过HTTP方法(GET/HEAD POST PU ...
- magic_quotes_sybase(魔术引号开关)
magic_quotes_sybase,如果该选项在php.ini文件中是唯一开启的话,将只会转义%00为\0(即null字符).此选项会完全覆盖magic_quotes_gpc.如果同时开启这两个选 ...