Java 编写推箱子报告,推箱子游戏用java怎么去写
推箱子游戏用java怎么去写
发布时间:2020-06-22 16:31:07
来源:亿速云
阅读:100
作者:清晨
这篇文章将为大家详细讲解有关推箱子游戏用java怎么写,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
本文实例为大家分享了Java实现简单推箱子游戏的具体代码,供大家参考,具体内容如下
*编写一个简易的推箱子游戏,使用10*8的二维字符数据表示游戏画面,H表示墙壁;
&表示玩家角色: o表示箱子,表示目的地。玩家可以通过输入a、d、w. s字符控制角色
移动,当箱子推到目的地时显示游戏结束,运行结果如图所示。
package test;
import java.util.Random;
import java.util.Scanner;
public class test3 {
public static void main(String[] args) {
String list[][]=start();//生成初始界面
Random ran=new Random();
int x=ran.nextInt(8)+1;//玩家初始位置的x值
int y=ran.nextInt(8)+1;//玩家初始位置的y值
list[x][y]="&";//玩家的位置
list[2][2]="O";//箱子的位置
list[4][4]="*";//出口的位置
for (int i = 0; i < list.length; i++) {//显示界面
for (int j = 0; j < list[i].length; j++) {
System.out.print(list[i][j]);
}
System.out.println();
}
while (true){ //循环操作和显示结果,胜利时跳出
System.out.print("操作:");
Scanner sc=new Scanner(System.in);
String key=sc.next();//操作
switch (key) {
case "s"://向下
x=works(list,x,y);
break;
case "w"://向上
x=workw(list,x,y);
break;
case "a"://向左
y=worka(list,x,y);
break;
case "d"://向右
y=workd(list,x,y);
break;
default: //其它操作
break;
}
for (int i = 0; i < list.length; i++) {
for (int j = 0; j < list[i].length; j++) {
System.out.print(list[i][j]);
}
System.out.println();
}
if(x<0 || y<0){
System.out.println("成功,游戏结束!");
break;
}
}
}
public static int works(String[][] list,int x,int y){//向下操作
if(list[x+1][y]==" "){
list[x+1][y]=list[x][y];
list[x][y]=" ";
x=x+1;
}
else if(list[x+1][y]=="O"){
if(list[x+2][y]=="*"){
list[x+2][y]=list[x+1][y];
list[x+1][y]=list[x][y];
list[x][y]=" ";
x=-1;
}
else if(list[x+2][y]==" "){
list[x+2][y]=list[x+1][y];
list[x+1][y]=list[x][y];
list[x][y]=" ";
x=x+1;
}
}
return x;
}
public static int worka(String[][] list,int x,int y){//向左操作
if(list[x][y-1]==" "){ //左为空时,移动
list[x][y-1]=list[x][y];
list[x][y]=" ";
y=y-1;
}
else if(list[x][y-1]=="O"){ //箱子左为出口时,y=-1游戏结束
if(list[x][y-2]=="*"){
list[x][y-2]=list[x][y-1];
list[x][y-1]=list[x][y];
list[x][y]=" ";
y=-1;
}
else if(list[x][y-2]==" "){//箱子左为空时,一起移动
list[x][y-2]=list[x][y-1];
list[x][y-1]=list[x][y];
list[x][y]=" ";
y=y-1;
}
}
return y;
}
public static int workw(String[][] list,int x,int y){//向上操作
if(list[x-1][y]==" "){
list[x-1][y]=list[x][y];
list[x][y]=" ";
x=x-1;
}
else if(list[x-1][y]=="O"){
if(list[x-2][y]=="*"){
list[x-2][y]=list[x-1][y];
list[x-1][y]=list[x][y];
list[x][y]=" ";
x=-1;
}
else if(list[x-2][y]==" "){
list[x-2][y]=list[x-1][y];
list[x-1][y]=list[x][y];
list[x][y]=" ";
x=x-1;
}
}
return x;
}
public static int workd(String[][] list,int x,int y){//向右操作
if(list[x][y+1]==" "){
list[x][y+1]=list[x][y];
list[x][y]=" ";
y=y+1;
}
else if(list[x][y+1]=="O"){
if(list[x][y+2]=="*"){
list[x][y+2]=list[x][y+1];
list[x][y+1]=list[x][y];
list[x][y]=" ";
y=-1;
}
else if(list[x][y+2]==" "){
list[x][y+2]=list[x][y+1];
list[x][y+1]=list[x][y];
list[x][y]=" ";
y=y+1;
}
}
return y;
}
public static String[][] start(){//生成初始界面,四个边界为“H”
String list[][]=new String[8][10];
for (int i = 0; i < list.length; i++) {
for (int j = 0; j < list[i].length; j++) {
if(i==0)
list[i][j]="H";
else if(i==list.length-1)
list[i][j]="H";
else if(j==0)
list[i][j]="H";
else if(j==list[i].length-1)
list[i][j]="H";
else
list[i][j]=" ";
}
}
return list;
}
}
关于推箱子游戏用java怎么写就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
Java 编写推箱子报告,推箱子游戏用java怎么去写相关推荐
- java吃豆游戏_利用java编写的精灵吃豆的游戏
学完线程的时候做了一个精灵吃豆的小游戏. 窗体类: package www.csdn.net.zuoye; //用窗体实现精灵吃豆子的小游戏 import java.awt.Color; import ...
- java编写代码用什么_如何学习用Java编写代码:为什么要学习以及从哪里开始
java编写代码用什么 by John Selawsky 约翰·塞劳斯基(John Selawsky) 如何学习用Java编写代码:为什么要学习以及从哪里开始 (How to learn to cod ...
- 南邮java大作业实验报告_南京邮电大学java第三次实验报告
实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 4 月 ...
- Java 编写程序打印以下图形_怎么用java编写如下程序在屏幕上输出如下图形 * *** *** * 循环语句做(if语句)...
怎么用java编写如下程序在屏幕上输出如下图形 * *** ***** ******* ***** ... 4个答案 提问时间: 2011-12-16 22个赞 回答:这个图形对吧? * *** ...
- java弹弹球实验报告_Java弹球游戏实验报告—chen
Java弹球游戏实验报告-chen 课 程 设 计 报 告 题 目 弹球小游戏 姓 名 方成 学 号 20 专 业 java 指导教师 陈华恩 2013年 12 月 30 目录 一.实验目的2 二.需 ...
- 用java编写天天爱消除_android天天爱消除游戏挂机脚本的实现思路
1 首先是能够截取android屏幕的上的图片,并且截取的速度要足够的快,这点不应该用别人的库文件,而是一定要自己编写实现,哪怕不保存文件,也要保证能够按照帧来截取屏幕上的图片. 2 截图图片完成 ...
- Java编写图像浏览器_浏览器下载图像(JAVA代码)
03-07阅读8103 简介: JavaWeb下载文件通常分为两种类型,一种是浏览器可以识别的文件类型,例如.txt,.excel,.zip等,可以通过使用以下链接来实现标签,但图片下载确实很麻烦. ...
- 用java编写一个记分_如何在Android for Java中创建带有textview,2个变量和一个按钮的记分板...
我知道这是一个简单的问题,但我不会去学习java,只是在线学习. 如何使用初始值为0的textview,然后每按一次按钮,它就会将25分指向记分板. 起初我希望button按下在42-57之间添加一个 ...
- 用Java 编写菜单价格和的程序_使用JAVA 编写一个程序,显示5中商品价格,用户可以选择多种商品并在其后的文本框输入购买的数量。...
展开全部 用java Swing做的?给你个代码,还有运行结果图 package my.test.main; import java.awt.BorderLayout; import java.awt ...
最新文章
- 2022-2028年中国环保服务业投资分析及前景预测报告
- Could not find destination factory for transport解决方法
- 使用脚本编写 Vim 编辑器,第 2 部分: 用户定义函数
- 如何给easyui datagrid toolbar上方添加搜索框
- Vue的表单组件之下拉框
- 大话“用户注册激活,忘记密码”发送邮件功能
- java04376_Java - jdbc mybatis
- 前端学习(1762):前端调试值之如何让浏览器模拟传感器数据
- matlab画半球面,Matlab 绘制3D半球
- 听说java又过气了?看我运用大数据分析2019年java发展趋势!
- 缓存 ASP.NET 页
- python中tree安装_Python 学习笔记:Jupyter Notebook 的安装使用以及 tree 路径变更
- aspectsof的意思_aspect of是什么意思
- Springboot自动装配源码分析
- 强化学习—— Target Network Double DQN(解决高估问题,overestimate)
- inurl:php?title=,查看“岗梅”的源代码
- quickpc易办公微型计算机,QuickPC抄板方法.doc
- 想知道自己30分钟能“走”多远嘛?
- Mac Dropbox 点击“首选项”无反应 没反应怎么办?
- JavaScript设置右下角悬浮窗
热门文章
- BZOJ4451 [Cerc2015]Frightful Formula 多项式 FFT 递推 组合数学
- 金山WPS97使用技巧(转)
- [v9] phpcms v9手机门户配置方法
- [原创] 人物仿手绘效果--美女篇(超详细哦)
- 为什么现在的手机越来越短命?
- 如何实现分层区组随机化,分层随机化,区组随机化
- Shell编程之正则表达式之grep
- 微信\支付宝实现免SDK转账(微信\支付宝免手续费)资料整理
- 高斯分布的乘积与卷积
- 数据分析实战 205 :项目分析思路 —— 某在线教育机构经营分析