php井字游戏代码_简单井字游戏

这是一个用Java编写的井字游戏代码,包括构建棋盘、下棋、判定胜负等功能。玩家通过输入行号和列号进行落子,游戏会根据棋盘状态判断胜负或平局。
摘要由CSDN通过智能技术生成

[java]代码库package homework;

import java.util.ArrayList;

import java.util.Scanner;

public class 井字游戏{

//构建棋盘

static ArrayList bulidLine(int n){

ArrayList line = new ArrayList();

for(int i =0;i<2*n+1;i++)

line.add("-");

return line;

}

static ArrayList bulidBlanks(int n){

ArrayList blanks= new ArrayList();

for(int i=0;i

blanks.add("|");

blanks.add(" ");

}

blanks.add("|");

return blanks;

}

static ArrayList bulidPlaste(int n){

ArrayList plate = new ArrayList();

for (int i =0;i

plate.add(bulidLine(n));

plate.add(bulidBlanks(n));

}

plate.add(bulidLine(n));

return plate;

}

static void show(ArrayList plate){

for (int i = 0;i

ArrayList row=(ArrayList)plate.get(i);

for(int j=0;j

System.out.print(row.get(j));

System.out.println();

}

}

//下棋

static boolean drop(ArrayList plate,int r,int c,String piece) {

r = 2 * r - 1;

c = 2 * c - 1;

ArrayList row = (ArrayList) plate.get(r);

if (row.get(c) == " "){

row.set(c, piece);

return true;

}

return false;

}

//判定胜负

public static boolean judge(ArrayList plate,int n,String piece){

//判断行

int r;

int count;

for(r=1;r<2*n+1;r+=2) {

//判断行

count=0;

ArrayList row = (ArrayList) plate.get(r);

for (int j = 1; j < 2 * n + 1; j += 2) {

if (row.get(j) == piece) {

count += 1;

if (count == n)

return true;

}

}

}

//判断列

for(int i=1;i<2*n+1;i+=2){

count=0;

ArrayList row=(ArrayList)plate.get(i);

for(int j=1;j<2*n+1;j+=2) {

if (row.get(j) == piece) {

count += 1;

if (count == n)

return true;

}

}

}

//判断捺

for(int i=1;i<2*n+1;i+=2){

count=0;

ArrayList row=(ArrayList)plate.get(i);

if (row.get(i)==piece){

count+=1;

if (count==n)

return true;

}

}

//判断撇

for (int i= 2*n-1;i>0;i-=2){

count=0;

ArrayList row=(ArrayList)plate.get(i);

if(row.get(i)==piece){

count+=1;

if(count==n)

return true;

}

}

return false;

}

public static void main(String[] args) {

Scanner reader = new Scanner(System.in);

System.out.println("输入棋盘阶数");

int n=reader.nextInt();

ArrayList plate= bulidPlaste(n);

show(plate);

String piece = "x";

int s=0;

while (true) {

System.out.println("请输入落子的行号");

int row = reader.nextInt();

System.out.println("请输入落子的列号");

int col = reader.nextInt();

if (!drop(plate, row, col, piece)){

System.out.println("该处已有棋子,重新落子");

continue;

}

s++;

if(s==n*n){

if(judge(plate,n,piece)){

System.out.println(piece+" win");

break;

}

else

System.out.println("平局");

break;

}

show(plate);

if(judge(plate,n,piece)){

System.out.println(piece+" win");

break;

}

piece=piece=="x"?"o":"x";

}

}

}

[代码运行效果截图]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值