java实现五子棋小游戏
import java.util.Objects;
import java.util.Scanner;
public class game2 {
// 定义棋盘的大小
static int SIZE = 15;
//static int SIZE2 = 8;
//定义落子的数目白为1
//static int count = 0;
//,count2 = 0;
// 定义一个字符串二维数组来充当棋盘
static String[][] board= new String[SIZE][SIZE];
static int[][] board2= new int[SIZE][SIZE];
//static char[][] blackboard= new char[SIZE][SIZE];
static void initBoard()//初始化
{
// 初始化棋盘数组,把每个元素赋为"╋",未完待续 ╬ ╬ ╋ +
for(int i = 0;i<SIZE;i++)
{
for(int j = 0;j<SIZE;j++)
{
board[i][j] = "+";
board2[i][j] = 0;
//whiteboard[i][j] = "0";
//blackboard[i][j] = "0";
}
}
/*
for(int i = 0;i<SIZE*SIZE/2;i++)
{
for(int j = 0;j<2;j++)
{
//whiteboard[i][j] = "";
whiteboard[i][j] = 0;
blackboard[i][j] = 0;
}
}
*/
}
// 在控制台输出棋盘的方法,未完待续 ●○
static void printBoard()
{
// 打印棋盘数组中每个元素
for(int i = 0;i<SIZE;i++)
{
for(int j = 0;j<SIZE;j++)
{
System.out.print(board[i][j]);
}
System.out.println();
}
}
/*
static void printBoard2()
{
// 打印棋盘数组中每个元素
for(int i = 0;i<SIZE;i++)
{
for(int j = 0;j<SIZE;j++)
{
System.out.print(board2[i][j]);
}
System.out.println();
}
}
*/
static void play_chess(int i)
{
Scanner sc = new Scanner(System.in);
System.out.print("请输入落子的行号");
int x = sc.nextInt();
System.out.print("请输入落子的列号");
int y = sc.nextInt();
//System.out.println(x+y);
if(i == 0)
{
board[x][y] ="○";
board2[x][y] = 1;
//whiteboard[count][0] =x;
//whiteboard[count][1] = y;
//count++;
}
else if(i==1)
{
board[x][y] ="●";
board2[x][y] = 2;
//blackboard[count2][0] = x;
//blackboard[count2][1] = y;
//count2++;
}
printBoard();//打印
}
static int judge()
{
/*
for(int i = 0;i<SIZE;i++)
{
for(int j = 0;j<SIZE;j++)
if (
board2[i][j] == board2[i][j + 1]
&& board2[i][j + 1] == board2[i][j + 2]
&& board2[i][j + 2] == board2[i][j + 3]
&& board2[i][j + 3] == board2[i][j + 4]
&& board2[i][j] != 0)
{
if(board2[i][j] == 1)
{System.out.println("w win");
return false;}
else if(board2[i][j] == 2)
{System.out.println("B win");
return false;}
}
}
return true;
*/
int flag = 0,flag2 = 0;
int win = 0;
int i = 0;
int j = 0;
// 横线上五子连成一线,赢家产生
for (i = 0; i < SIZE; i++)
{
for (j = 0; j < SIZE - 4; j++)
{
if (board2[i][j] == board2[i][j + 1]
&& board2[i][j + 1] == board2[i][j + 2]
&& board2[i][j + 2] == board2[i][j + 3]
&& board2[i][j + 3] == board2[i][j + 4]
&& board2[i][j] != 0)
{
flag = 1;
flag2 = 1;
win = board2[i][j];
//return false;
}
}
}
// 竖线上五子连成一线,赢家产生
if(flag2 == 0)
for (j = 0; j < SIZE; j++)
{
for (i = 0; i < SIZE - 4; i++)
{
if (board2[i][j] == board2[i+1][j]
&& board2[i+1][j] == board2[i+2][j]
&&board2[i+2][j] == board2[i+3][j]
&& board2[i+3][j] == board2[i+4][j]
&& board2[i][j] != ' ')
{
flag = 1;
flag2 = 1;
win = board2[i][j];
//return board[i][j];
}
}
}
// 斜线上五子连成一线,赢家产生
if(flag2 == 0)
for (i = 0; i < SIZE - 4; i++)
{
if (board2[i][i] == board2[i+1][i+1]
&& board2[i+1][i+1] == board2[i+2][i+2]
&& board2[i + 2][i + 2] == board2[i + 3][i + 3]
&& board2[i + 3][i + 3] == board2[i + 4][i + 4]
&& board2[i][i] != 0)
{
flag = 1;
flag2 = 1;
win = board2[i][j];
//return board[i][i];
}
if (board2[i][i+4] == board2[i+1][i+3]
&& board2[i+1][i+3] == board2[i+2][i+2]
&& board2[i + 2][i + 2] == board2[i + 3][i + 1]
&& board2[i + 3][i + 1] == board2[i + 4][i]
&& board2[i][i + 4] != 0)
{
flag = 1;
flag2 = 1;
win = board2[i][j];
//return board[i][i+4];
}
}
return win;
}
public static void main(String[] args)
{
initBoard();//初始化
printBoard();//打印
do{
System.out.println("请黑子落子");
play_chess(0);//白子落子
System.out.println("请白子落子");
play_chess(1);//黑子落子
}while (judge()==0);
if(judge() == 1)
System.out.println("黑色赢");
else if (judge()== 2)
System.out.println("白色赢");
//printBoard2();
}
}