推箱子游戏用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怎么去写相关推荐

  1. java吃豆游戏_利用java编写的精灵吃豆的游戏

    学完线程的时候做了一个精灵吃豆的小游戏. 窗体类: package www.csdn.net.zuoye; //用窗体实现精灵吃豆子的小游戏 import java.awt.Color; import ...

  2. java编写代码用什么_如何学习用Java编写代码:为什么要学习以及从哪里开始

    java编写代码用什么 by John Selawsky 约翰·塞劳斯基(John Selawsky) 如何学习用Java编写代码:为什么要学习以及从哪里开始 (How to learn to cod ...

  3. 南邮java大作业实验报告_南京邮电大学java第三次实验报告

    实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 4 月 ...

  4. Java 编写程序打印以下图形_怎么用java编写如下程序在屏幕上输出如下图形 * *** *** * 循环语句做(if语句)...

    怎么用java编写如下程序在屏幕上输出如下图形 * *** ***** ******* ***** ... 4个答案  提问时间: 2011-12-16  22个赞 回答:这个图形对吧? * *** ...

  5. java弹弹球实验报告_Java弹球游戏实验报告—chen

    Java弹球游戏实验报告-chen 课 程 设 计 报 告 题 目 弹球小游戏 姓 名 方成 学 号 20 专 业 java 指导教师 陈华恩 2013年 12 月 30 目录 一.实验目的2 二.需 ...

  6. 用java编写天天爱消除_android天天爱消除游戏挂机脚本的实现思路

    1  首先是能够截取android屏幕的上的图片,并且截取的速度要足够的快,这点不应该用别人的库文件,而是一定要自己编写实现,哪怕不保存文件,也要保证能够按照帧来截取屏幕上的图片. 2  截图图片完成 ...

  7. Java编写图像浏览器_浏览器下载图像(JAVA代码)

    03-07阅读8103 简介: JavaWeb下载文件通常分为两种类型,一种是浏览器可以识别的文件类型,例如.txt,.excel,.zip等,可以通过使用以下链接来实现标签,但图片下载确实很麻烦. ...

  8. 用java编写一个记分_如何在Android for Java中创建带有textview,2个变量和一个按钮的记分板...

    我知道这是一个简单的问题,但我不会去学习java,只是在线学习. 如何使用初始值为0的textview,然后每按一次按钮,它就会将25分指向记分板. 起初我希望button按下在42-57之间添加一个 ...

  9. 用Java 编写菜单价格和的程序_使用JAVA 编写一个程序,显示5中商品价格,用户可以选择多种商品并在其后的文本框输入购买的数量。...

    展开全部 用java Swing做的?给你个代码,还有运行结果图 package my.test.main; import java.awt.BorderLayout; import java.awt ...

最新文章

  1. 2022-2028年中国环保服务业投资分析及前景预测报告
  2. Could not find destination factory for transport解决方法
  3. 使用脚本编写 Vim 编辑器,第 2 部分: 用户定义函数
  4. 如何给easyui datagrid toolbar上方添加搜索框
  5. Vue的表单组件之下拉框
  6. 大话“用户注册激活,忘记密码”发送邮件功能
  7. java04376_Java - jdbc mybatis
  8. 前端学习(1762):前端调试值之如何让浏览器模拟传感器数据
  9. matlab画半球面,Matlab 绘制3D半球
  10. 听说java又过气了?看我运用大数据分析2019年java发展趋势!
  11. 缓存 ASP.NET 页
  12. python中tree安装_Python 学习笔记:Jupyter Notebook 的安装使用以及 tree 路径变更
  13. aspectsof的意思_aspect of是什么意思
  14. Springboot自动装配源码分析
  15. 强化学习—— Target Network Double DQN(解决高估问题,overestimate)
  16. inurl:php?title=,查看“岗梅”的源代码
  17. quickpc易办公微型计算机,QuickPC抄板方法.doc
  18. 想知道自己30分钟能“走”多远嘛?
  19. Mac Dropbox 点击“首选项”无反应 没反应怎么办?
  20. JavaScript设置右下角悬浮窗

热门文章

  1. BZOJ4451 [Cerc2015]Frightful Formula 多项式 FFT 递推 组合数学
  2. 金山WPS97使用技巧(转)
  3. [v9] phpcms v9手机门户配置方法
  4. [原创] 人物仿手绘效果--美女篇(超详细哦)
  5. 为什么现在的手机越来越短命?
  6. 如何实现分层区组随机化,分层随机化,区组随机化
  7. Shell编程之正则表达式之grep
  8. 微信\支付宝实现免SDK转账(微信\支付宝免手续费)资料整理
  9. 高斯分布的乘积与卷积
  10. 数据分析实战 205 :项目分析思路 —— 某在线教育机构经营分析