第一次先实现了自己跟自己下棋,也就是自己先执黑子输入一个位置,接着判断输赢;然后自己再执白子输入一个位置,判断输赢,如此循环直到有人胜出;
第二次实现了人机对战,也就是让一方为电脑随机生成坐标,自己为另一方,循环判断输赢。
程序里较为重要的是输赢判断的时候需要判断横、竖、左斜、右斜四条线是否有同一方的五子相连,这里用到的是两个长度为8的数组,记录坐标变化的规律,以当前坐标为中心,一条线上双向寻找。
程序如下:
package com.school;
import java.util.Random;
import java.util.Scanner;
public class Chess {
//定义棋盘大小
private static int BOARD_SIZE=30;
//定义棋盘二维数组
private static char[][] board=new char[BOARD_SIZE][BOARD_SIZE];
//已下子数目
private static int cnt;
//分别代表玩家1,2的棋子
private static char[] qizi={'$','@'};
//8个方向检索有没有连着的
private static int[] dx={-1,0,-1,-1,1,1,0,1};
private static int[] dy={0,-1,-1,1,