java控制台实现五子棋功能
来源:互联网 发布:右下角没有网络按钮 编辑:程序博客网 时间:2024/05/12 16:34
/*
控制台五子棋游戏
初始化棋盘
绘画棋盘
用户输入下子坐标
判断输入合法性
下子
电脑下子
判断输赢
*/
import java.util.Scanner;
public class WuZiQi
{
//定义棋盘的大小
static int SIZE = 15;
//用二维数组表示棋盘
static String[][] BROAD = new String[SIZE][SIZE];
//初始化棋盘
public static void init()
{
for(int i = 0; i< SIZE; i++)
{
for(int j = 0; j < SIZE; j++)
{
BROAD[i][j] = "十";
}
}
}
//绘画棋盘
public static void paintBroad()
{
for(int i = 0; i< SIZE; i++)
{
for(int j = 0; j < SIZE; j++)
{
//输出一行,不要换行
System.out.print(BROAD[i][j]);
}
//换行输出下一行
System.out.println();
}
}
//判断输入坐标的合法性
public static boolean isLegal(int i, int j)
{
//输入不能超出棋盘范围
if(i > 15 || i < 0 || j > 15 || j<0)
{
return false;
}
//坐标位置必须是还未下子
if(BROAD[i-1][j-1] != "十")
{
return false;
}
return true;
}
//生成随机数模拟电脑下子
public static int[] computer()
{
int[] coordinate = new int[2];
coordinate[0] =(int)( Math.random()*15 + 1);
coordinate[1] =(int)( Math.random()*15 + 1);
while(!isLegal(coordinate[0],coordinate[1]))
{
coordinate[0] =(int)( Math.random()*15 + 1);
coordinate[1] =(int)( Math.random()*15 + 1);
}
return coordinate;
}
/**判断输赢
*返回值:
1:黑子赢了
0:白字赢了
-1:未分胜负
*/
public static int isWin()
{
//横向判断
//纵向判断
//反斜杠判断
//斜杠判断
for(int i = 0; i < SIZE-4; i++)
{
for(int j = 0; j < SIZE-4; j++)
{
if(BROAD[i][j] == "●" && BROAD[i+1][j+1] == "●"&&BROAD[i+2][j+2] == "●"&&BROAD[i+3][j+3] == "●"&&BROAD[i+4][j+4] == "●")
return 1;
else if(BROAD[i][j] == "○" && BROAD[i+1][j+1] == "○"&&BROAD[i+2][j+2] == "○"&&BROAD[i+3][j+3] == "○"&&BROAD[i+4][j+4] == "○")
return 0;
}
}
return -1;
}
public static void main(String[] args)
{
init();
paintBroad();
do{
System.out.println("请输入下子的坐标:");
Scanner sn = new Scanner(System.in);
int i = sn.nextInt();
int j = sn.nextInt();
while(!isLegal(i,j))
{
System.out.println("输入非法,请重新输入下子的坐标:");
sn = new Scanner(System.in);
i = sn.nextInt();
j = sn.nextInt();
}
BROAD[i-1][j-1] = "●";
paintBroad();
int[] coordinate = computer();
int c1 = coordinate[0];
int c2 = coordinate[1];
BROAD[c1-1][c2-1] = "○";
System.out.println("电脑下子: " + c1 + " " + c2);
paintBroad();
if(isWin() ==1)
{
System.out.println("恭喜您赢了");
break;
}
if(isWin() ==0)
{
System.out.println("很遗憾,您输了");
break;
}
}while(isWin() == -1);
点击打开链接
控制台五子棋游戏
初始化棋盘
绘画棋盘
用户输入下子坐标
判断输入合法性
下子
电脑下子
判断输赢
*/
import java.util.Scanner;
public class WuZiQi
{
//定义棋盘的大小
static int SIZE = 15;
//用二维数组表示棋盘
static String[][] BROAD = new String[SIZE][SIZE];
//初始化棋盘
public static void init()
{
for(int i = 0; i< SIZE; i++)
{
for(int j = 0; j < SIZE; j++)
{
BROAD[i][j] = "十";
}
}
}
//绘画棋盘
public static void paintBroad()
{
for(int i = 0; i< SIZE; i++)
{
for(int j = 0; j < SIZE; j++)
{
//输出一行,不要换行
System.out.print(BROAD[i][j]);
}
//换行输出下一行
System.out.println();
}
}
//判断输入坐标的合法性
public static boolean isLegal(int i, int j)
{
//输入不能超出棋盘范围
if(i > 15 || i < 0 || j > 15 || j<0)
{
return false;
}
//坐标位置必须是还未下子
if(BROAD[i-1][j-1] != "十")
{
return false;
}
return true;
}
//生成随机数模拟电脑下子
public static int[] computer()
{
int[] coordinate = new int[2];
coordinate[0] =(int)( Math.random()*15 + 1);
coordinate[1] =(int)( Math.random()*15 + 1);
while(!isLegal(coordinate[0],coordinate[1]))
{
coordinate[0] =(int)( Math.random()*15 + 1);
coordinate[1] =(int)( Math.random()*15 + 1);
}
return coordinate;
}
/**判断输赢
*返回值:
1:黑子赢了
0:白字赢了
-1:未分胜负
*/
public static int isWin()
{
//横向判断
//纵向判断
//反斜杠判断
//斜杠判断
for(int i = 0; i < SIZE-4; i++)
{
for(int j = 0; j < SIZE-4; j++)
{
if(BROAD[i][j] == "●" && BROAD[i+1][j+1] == "●"&&BROAD[i+2][j+2] == "●"&&BROAD[i+3][j+3] == "●"&&BROAD[i+4][j+4] == "●")
return 1;
else if(BROAD[i][j] == "○" && BROAD[i+1][j+1] == "○"&&BROAD[i+2][j+2] == "○"&&BROAD[i+3][j+3] == "○"&&BROAD[i+4][j+4] == "○")
return 0;
}
}
return -1;
}
public static void main(String[] args)
{
init();
paintBroad();
do{
System.out.println("请输入下子的坐标:");
Scanner sn = new Scanner(System.in);
int i = sn.nextInt();
int j = sn.nextInt();
while(!isLegal(i,j))
{
System.out.println("输入非法,请重新输入下子的坐标:");
sn = new Scanner(System.in);
i = sn.nextInt();
j = sn.nextInt();
}
BROAD[i-1][j-1] = "●";
paintBroad();
int[] coordinate = computer();
int c1 = coordinate[0];
int c2 = coordinate[1];
BROAD[c1-1][c2-1] = "○";
System.out.println("电脑下子: " + c1 + " " + c2);
paintBroad();
if(isWin() ==1)
{
System.out.println("恭喜您赢了");
break;
}
if(isWin() ==0)
{
System.out.println("很遗憾,您输了");
break;
}
}while(isWin() == -1);
}
}点击打开链接
- java控制台实现五子棋功能
- java实现控制台五子棋
- JAVA实现简单控制台五子棋游戏
- java 控制台小程序:实现五子棋对弈
- java程序--控制台五子棋
- Java基于数组和循环实现的控制台五子棋
- java初学者--实现用控制台与电脑下五子棋
- 【Little_things】控制台五子棋(java)
- Java五子棋控制台小程序
- Java控制台五子棋编码学习
- Java五子棋控制台小程序
- Java 五子棋源程序 实现了基本的功能
- C# 控制台实现的五子棋游戏
- C++实现控制台版五子棋(第一步)
- 控制台五子棋
- java实现的五子棋
- JAVA-五子棋实现
- java实现简单五子棋
- 012.007.android Json解析.
- 在eclipse中将android项目生成apk并且给apk签名
- awk中调用shell中变量
- 用户登录信息保存为xml
- Android01
- java控制台实现五子棋功能
- Linux 命令缩写部分解释
- 职业选手图解教你如何DIY装机
- javaScript年份下拉列表框
- WCF 宿主问题
- Android ListView 中加入CheckBox/RadioButton 选择状态保持、全选、反选实现
- VB.NET注释多行
- 开学了
- C#输出DataTable数据到Excel文件