package sanziqi;
import java.util.Random;
import java.util.Scanner;
public class sanziqi{
public static void main(String[] args) {
char myarr[][]= {{'1','2','3'},
{'4','5','6'},
{'7','8','9'}};
int m[][] = new int[3][3];
//标识数组,用作输入位置的判定
for(int i=0;i<m.length;i++)
for(int j=0;j<m[i].length;j++)
m[i][j] = 0;
Random random = new Random(); //创建Random类对象
//游戏主体
for(int i=0;;){
int n=0;
Scanner scan = new Scanner(System.in);
System.out.println("输入棋子位置:");
int N = scan.nextInt();
n = peo(N,myarr,m);
pr(myarr);
//机器
int number = random.nextInt(9)+0;//产生随机数
n=root(number,myarr,m);
pr(myarr);
}
}
//机器棋子落下
public static int root(int nums,char myarr[][],int m[][]) {
//坐标转换
int n=0;
int x = (nums-1)/3;
int y = (nums-1)%3;
while(true)
{
if(m[x][y]!=0) {
Random random = new Random();
int N=random.nextInt(9)+0;
x=(N-1)/3;
y=(N-1)%3;
}
else
break;
}
if((m[x][y]==0)&&nums<=9){
myarr[x][y]='O';
m[x][y]=2;
int b= base(nums,m);
if(b==1) {
System.out.println("你输了");
System.exit(0);
}
else
n=1;
}
else {
System.out.println("输入有误:");
n=0;
}
return n;
}
//人棋子落下
public static int peo(int N,char myarr[][],int m[][]) {
//坐标转换
int n=0;
int x = (N-1)/3;
int y = (N-1)%3;
//判断是否有棋子
if((m[x][y]==0)&&N<=9){
myarr[x][y] = '*';
m[x][y] = 1;
int b = base(N,m);
if(b==1) {
System.out.println("你赢了");
System.exit(0);
}
else
n=1;
}
else {
System.out.println("输入有误:");
n=0;
}
return n;
}
//棋盘输出
public static void pr(char myarr[][]){
for(int i=0;i<myarr.length;i++) {
for(int j =0;j<myarr[i].length;j++) {
System.out.print(myarr[i][j]);
}
System.out.println();
}
System.out.println();
}
//判断是否连线
public static int base(int N,int m[][]) {
int x = 0;
switch(N){
case 1:
if(((m[0][0]==m[0][2])&&(m[0][1]==m[0][0]))||((m[0][0]==m[1][0])&&(m[0][0]==m[2][0]))||((m[0][0]==m[1][1])&&(m[1][1]==m[2][2])))
x=1;
break;
case 2:
if(((m[0][0]==m[0][2])&&(m[0][1]==m[0][0]))||((m[0][1]==m[1][1])&&(m[0][1]==m[2][1])))
x=1;
break;
case 3:
if(((m[0][0]==m[0][2])&&(m[0][1]==m[0][0]))||((m[0][2]==m[1][1])&&(m[0][2]==m[2][0]))||((m[0][2]==m[1][2])&&(m[0][2]==m[2][2])))
x=1;
break;
case 4:
if(((m[0][0]==m[1][0])&&(m[0][0]==m[2][0]))||((m[1][0]==m[1][1])&&(m[1][0]==m[1][2])))
x=1;
break;
case 5:
if(((m[1][0]==m[1][1])&&(m[1][0]==m[1][2]))||((m[0][1]==m[1][1])&&(m[0][1]==m[2][1]))||((m[0][0]==m[0][2])&&(m[0][1]==m[0][0]))||((m[0][2]==m[1][1])&&(m[0][2]==m[2][0])))
x=1;
break;
case 6:
if(((m[1][0]==m[1][1])&&(m[1][0]==m[1][2]))||((m[0][2]==m[1][2])&&(m[0][2]==m[2][2])))
x=1;
break;
case 7:
if(((m[0][0]==m[0][2])&&(m[0][1]==m[0][0]))||((m[2][0]==m[2][1])&&(m[2][0]==m[2][2]))||((m[0][2]==m[1][1])&&(m[0][2]==m[2][0])))
x=1;
break;
case 8:
if(((m[2][0]==m[2][1])&&(m[2][0]==m[2][2]))||((m[0][1]==m[1][1])&&(m[0][1]==m[2][1])))
x=1;
break;
case 9:
if(((m[2][0]==m[2][1])&&(m[2][0]==m[2][2]))||((m[0][0]==m[1][1])&&(m[1][1]==m[2][2])))
x=1;
break;
}
return x;
}
}
java 井子棋(细节没有处理到位)
猜你喜欢
转载自blog.csdn.net/qq_36595497/article/details/105459284
今日推荐
周排行