大神们 急求基于eclipse的java小游戏程序的源码,程序不要多复杂啊。像坦克大战,五子棋,扫雷之类的谢谢
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大神们 急求基于eclipse的java小游戏程序的源码,程序不要多复杂啊。像坦克大战,五子棋,扫雷之类的谢谢相关的知识,希望对你有一定的参考价值。
import java.util.Scanner;
public class Wuziqi
/**
* 棋盘
*/
private final int[][] qipan;
/**
* 步数
*/
private int bushu;
/**
* 构造方法,设置棋盘规格
* @param x
* @param y
*/
public Wuziqi(int x, int y)
if (x < 1 || y < 1)
System.out.println("棋盘规格应不小于1,使用默认规格");
qipan = new int[9][9];
else
qipan = new int[y][x];
/**
* 游戏开始
*/
public void play()
int[] zuobiao = null;
//如果游戏没有结束
while (!end(zuobiao))
//落子,并取得坐标
zuobiao = luozi();
//输出棋盘
out();
/**
* 输出棋盘和棋子
*/
private void out()
for (int i = 0; i < qipan.length; i++)
for (int j = 0; j < qipan[i].length; j++)
if (qipan[i][j] == 0)
System.out.print(" +");
else if (qipan[i][j] == -1)
System.out.print(" 白");
else if (qipan[i][j] == 1)
System.out.print(" 黑");
System.out.println(" ");
/**
* 落子
*/
private int[] luozi()
int[] zuobiao;
bushu++;
if (bushu % 2 == 1)
System.out.println("请黑方落子");
zuobiao = input();
qipan[zuobiao[1]][zuobiao[0]] = 1;
else
System.out.println("请白方落子");
zuobiao = input();
qipan[zuobiao[1]][zuobiao[0]] = -1;
return zuobiao;
/**
* 输入坐标
* @return
*/
private int[] input()
Scanner sc = new Scanner(System.in);
System.out.println("请输入x轴坐标");
String x = sc.next();
System.out.println("请输入y轴坐标");
String y = sc.next();
//如果没有通过验证,则再次执行input(),递归算法
if (!validate(x, y))
return input();
int int_x = Integer.valueOf(x);
int int_y = Integer.valueOf(y);
return new int[] int_x, int_y;
/**
* 校验数据
* @param x
* @param y
* @return
*/
private boolean validate(String x, String y)
Integer int_x = null;
Integer int_y = null;
//异常处理的方式判断字符串是否是一个整数
try
int_x = Integer.valueOf(x);
int_y = Integer.valueOf(y);
catch (NumberFormatException e)
System.out.println("坐标格式错误,坐标应为整数");
return false;
if (int_x < 0 || int_y < 0 || int_x >= qipan[0].length || int_y >= qipan.length)
System.out.println("坐标越界");
return false;
if (qipan[int_y][int_x] == 0)
return true;
else
System.out.println("坐标上已有棋子");
return false;
;
/**
* 结束条件
* @return
*/
private boolean end(int[] zuobiao)
if (zuobiao == null)
return false;
//计数器
//表示棋盘上经过最近落子坐标的4条线上的连续(和最近落子颜色相同的)棋子的个数
//如果某条线上连续的棋子大于等于4(加上最近落子本身,大于等于5),则游戏结束,符合五子棋规则
int[] jieguo = new int[4];
int x = zuobiao[0];
int y = zuobiao[1];
//定义八个方向
final int[][] fangxiang = -1, 0, -1, 1, 0, 1, 1, 1, 1, 0, 1, -1, 0, -1, -1, -1;
//最近落子的坐标上的棋子颜色
int number = qipan[y][x];
//搜索最近落子坐标为中心最远4的距离
for (int i = 1; i <= 4; i++)
//每次搜索不同的距离都搜索八个方向
for (int j = 0; j < fangxiang.length; j++)
//约定如果某个方向为null时,不再搜索这个方向。关键字continue是跳过本次(一次)循环的意思
if (fangxiang[j] == null)
continue;
int mubiao_x = x + i * fangxiang[j][0];
int mubiao_y = y + i * fangxiang[j][1];
//如果搜索坐标相对于棋盘越界,则不再搜索这个方向
if (mubiao_y >= qipan.length || mubiao_y < 0 || mubiao_x >= qipan[0].length || mubiao_x < 0)
fangxiang[j] = null;
continue;
//如果最近落子坐标上的值等于目标坐标上的值(颜色相同),则计数器上某条线加1
//否则认为这个方向没有棋子或有别的颜色的棋子,不再搜索这个方向
if (number == qipan[mubiao_y][mubiao_x])
jieguo[j % 4]++;
else
fangxiang[j] = null;
//查看计数器上是否有比3更大的数(查看是否有一方胜出)
for (int i : jieguo)
if (i > 3)
System.out.println("游戏结束");
if (bushu % 2 == 1)
System.out.println("黑方胜");
else
System.out.println("白方胜");
return true;
//没有胜出者的情况下,查看棋盘上是否还有空位置,如果有,则游戏可以继续
for (int[] arr : qipan)
for (int i : arr)
if (i == 0)
return false;
//如果没有空位置,则平局
System.out.println("游戏结束,平局");
return true;
ArcEngine10.1 的runtime在哪里有呢?或者基于它的程序怎么打包部署?急求
现在自己的电脑上(vs2010+ArcGIS10.1+ArcEngine10.1)开发出了小程序,想要打包并安装到别的电脑。据说engine runtime是必须的,但是找不到下载。AE程序的打包我也第一次做,求大神帮忙!
参考技术A是这样的,arcgis9.3有runtime,但10就没有了。在ArcGIS Engine10.0以后,许可方式发生了一定的变化,ArcGis10有一个新的要求---runtime绑定。就是在任何ArcObjects代码(包括许可初始化代码)被执行前,指定相称的ArcGIS产品---ArcGIS Desktop或者ArcGIS Engine应用程序。可以在VisualStudio IDE中将该程序集添加为项目引用。
//添加引用ESRI.ArcGIS.VersionESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
请问哪里有engine runtime10.1 ?
追答我这有
以上是关于大神们 急求基于eclipse的java小游戏程序的源码,程序不要多复杂啊。像坦克大战,五子棋,扫雷之类的谢谢的主要内容,如果未能解决你的问题,请参考以下文章
急求PYTHON的大作业!!!可以是小游戏,也可以是有实际应用的程序。请大神具体描述一下程序,谢谢!
求大神帮忙编写一个Java程序显示指定目录中所有的文件和目录,包括文件大小以及类型信息。急求啊!!!
急求51单片机控制舵机C语言程序,舵机可以根据设定旋转任意角度!急求啊,大神帮帮忙!非常感谢!
java代码,空字符或者空值在控制台输入,下面的程序要输入啥才会显示ERRORCODE=02??急求大神解答!