问题:
编程实现控制台版并支持两人对战的五子棋游戏
(1)绘制棋盘
(2)提示黑方(用 1 表示)和白方(用 2 表示)分别下棋(X,Y 轴位
置)并重新绘制棋盘。
(3)每当一方下棋后判断是否获胜 。
(4)提示:采用二维数组来模拟棋盘。
首先
首先,必要的是,审题,这很重要,对问题进行解析,分为:
1.绘制棋盘 2.黑白双方下棋 3.判断是否获胜。
再者,进一步分析:
绘制棋盘:
使用二维数组即可完成。
黑白双方下棋:
利用双重循环实现黑白两者的交换对局下子,利用两个数组用于存储黑白
方下子的坐标,当每一次下子完毕后,即调用函数,判断是否获胜,当获
胜,即退出游戏循环。
获胜函数:
当下一个子时,建立了该棋子的左,右,上,下,左上,左下,右上,右
下的个数变量,用于统计在这些方位内连续相同的棋子的个数。左右相加
为4,上下相加为4,以此类推,当出现这些情况中的任何一种时,即返回
false,即为获胜。
上代码:
import java.util.Scanner;
/**
*
* @author YIS
*
*/
public class Test2 {
/*
* 目标: 编程实现控制台版并支持两人对战的五子棋游戏
(1)绘制棋盘
(2)提示黑方(用 1 表示)和白方(用 2 表示)分别下棋(X,Y 轴位
置)并重新绘制棋盘。
(3)每当一方下棋后判断是否获胜 。
(4)提示:采用二维数组来模拟棋盘。
*/
public static void main(String[] args) {
//绘制棋盘
int[][] nums = new int[16][16];
for(int i=0;i<nums.length;i++) {
nums[0][i] = i;
nums[i][0] = i;
}
game:while(true) {
for(int i=0;i<nums.length;i++) {
//打印棋盘
for(int j=0;j<nums.length;j++) {
System.out.print(nums[i][j]+" ");
}
System.out.println();
//System.out.println();
}
//下子
Scanner input = new Scanner(System.in);
int[] blackPoint = new int[2]; //建立一个数组存放黑方下子坐标
int[] whitePoint = new int[2]; //建立一个数组存放白方下子坐标
boolean v = true;
while(v){
System.out.println("请黑方下子(请输入下子的坐标):"