java五子棋人机版10版本.docx
《java五子棋人机版10版本.docx》由会员分享,可在线阅读,更多相关《java五子棋人机版10版本.docx(22页珍藏版)》请在冰豆网上搜索。
java五子棋人机版10版本
Java五子棋(人机版1.0版本)
----------------------此版本中电脑智商较低
importjava.util.Random;
importjava.util.Scanner;
publicclassFiveChess{
privatestaticchar[][]chess=newchar[17][17];//定义棋盘数组
privatestaticbooleanfit=true;//标识玩家出棋是否合规,是否有一方获胜
privatestaticScannersc;
privatestaticStringstr;
privatestaticintfirst=0;
privatestaticintis=0;
privatestaticRandomr=newRandom();
privatestaticintx1=0,y1=0,x2=0,y2=0,z=0;
publicstaticvoidstructure(){
char[]ches={'','0','1','2','3','4','5','6','7','8','9',
'a','b','c','d','e','f'};
for(inti=0;ichess[0][i]=chess[i][0]=ches[i];
}
for(inti=1;ifor(intj=1;jchess[i][j]='*';
}
}
}
publicstaticvoidprintChess(){
for(inti=0;ifor(intj=0;jSystem.out.print(chess[i][j]+"");
}
System.out.println();
}
}
publicstaticbooleanisRule(chara,charb){
if(((a>='0'&&a<='9')||(a>='a'&&a<='f'))
&&((b>='0'&&b<='9')||(b>='a'&&b<='f'))){
intx=0,y=0;
for(inti=1;iif(chess[i][0]==a)
x=i;
if(chess[0][i]==b)
y=i;
}
if(chess[x][y]=='o'||chess[x][y]=='x')
returnfalse;
else
returntrue;
}
returnfalse;
}
publicstaticintisFourWin(chara){
for(inti=chess.length-1;i>3;i--){
for(intj=1;jif(j>3){
if((chess[i][j]==a)
&&(chess[i][j]==chess[i-1][j-1])
&&(chess[i-1][j-1]==chess[i-2][j-2])
&&(chess[i-2][j-2]==chess[i-3][j-3])){
x1=i-3;
y1=j-3;
x2=i;
y2=j;
z=3;
if(a=='o'){
computer(0);
if(is==0)
continue;
else
return1;
}elseif(a=='x'){
computer
(1);
if(is==0)
continue;
else
return1;
}
}
}
if(jif((chess[i][j]==a)&&(chess[i][j]==chess[i-1][j])
&&(chess[i-1][j]==chess[i-2][j])
&&(chess[i-2][j]==chess[i-3][j])){
x1=i-3;
y1=j;
x2=i;
y2=j;
z=2;
if(a=='o'){
computer(0);
if(is==0)
continue;
else
return1;
}elseif(a=='x'){
computer
(1);
if(is==0)
continue;
else
return1;
}
}
if((chess[i][j]==a)
&&(chess[i][j]==chess[i-1][j+1])
&&(chess[i-1][j+1]==chess[i-2][j+2])
&&(chess[i-2][j+2]==chess[i-3][j+3])){
x1=i;
y1=j;
x2=i-3;
y2=j+3;
z=4;
if(a=='o'){
computer(0);
if(is==0)
continue;
else
return1;
}elseif(a=='x'){
computer
(1);
if(is==0)
continue;
else
return1;
}
}
if((chess[i][j]==a)&&(chess[i][j]==chess[i][j+1])
&&(chess[i][j+1]==chess[i][j+2])
&&(chess[i][j+2]==chess[i][j+3])){
x1=i;
y1=j;
x2=i;
y2=j+3;
z=1;
if(a=='o'){
computer(0);
if(is==0)
continue;
else
return1;
}elseif(a=='x'){
computer
(1);
if(is==0)
continue;
else
return1;
}
}
}else{
if((chess[i][j]==a)&&(chess[i][j]==chess[i-1][j])
&&(chess[i-1][j]==chess[i-2][j])
&&(chess[i-2][j]==chess[i-3][j])){
x1=i-3;
y1=j;
x2=i;
y2=j;
z=2;
if(a=='o'){
computer(0);
if(is==0)
continue;
else
return1;
}elseif(a=='x'){
computer
(1);
if(is==0)
continue;
else
return1;
}
}
}
}
}
return0;
}
publicstaticintisThreeWin(chara){
for(inti=chess.length-1;i>2;i--){
for(intj=1;jif(j>2){
if((chess[i][j]==a)
&&(chess[i][j]==chess[i-1][j-1])
&&(chess[i-1][j-1]==chess[i-2][j-2])){
x1=i-2;
y1=j-2;
x2=i;
y2=j;
z=3;
if(a=='o'){
computer(0);
if(is==0)
continue;
else
return1;
}elseif(a=='x'){
computer
(1);
if(is==0)
continue;
else
return1;
}
}
}
if(jif((chess[i][j]==a)&&(chess[i][j]==chess[i-1][j])
&&(chess[i-1][j]==chess[i-2][j])){
x1=i-2;
y1=j;
x2=i;
y2=j;
z=2;
if(a=='o'){
computer(0);
if(is==0)
continue;
else
return1;
}elseif(a=='x'){
computer
(1);
if(is==0)
continue;
else
return1;
}
}
if((chess[i][j]==a)
&&(chess[i][j]==chess[i-1][j+1])
&&(chess[i-1][j+1]==chess[i-2][j+2])){
x1=i;
y1=j;
x2=i-2;
y2=j+2;
z=4;
if(a=='o'){
computer(0);
if(is==0)
continue;
else
return1;
}elseif(a=='x'){
computer
(1);
if(is==0)
continue;
else
return1;
}
}
if((chess[i][j]==a)&&(chess[i][j]==chess[i][j+1])
&&(chess[i][j+1]==chess[i][j+2])){
x1=i;
y1=j;
x2=i;
y2=j+2;
z=1;
if(a=='o'){
computer(0);
if(is==0)
continue;
else
return1;
}elseif(a=='x'){
computer
(1);
if(is==0)
continue;
else
return1;
}
}
}else{
if((chess[i][j]==a)&&(chess[i][j]==chess[i-1][j])
&&(chess[i-1][j]==chess[i-2][j])){
x1=i-2;
y1=j;
x2=i;
y2=j;
z=2;
if(a=='o'){
computer(0);
if(is==0)
continue;
else
return1;
}elseif(a=='x'){
computer
(1);
if(is==0)
continue;
else
return1;
}
}
}
}
}
return0;
}
publicstaticbooleanisWin(chara){
for(inti=chess.length-1;i>4;i--){
for(intj=1;jif(j>4){
if((chess[i][j]==a)
&&(chess[i][j]==chess[i-1][j-1])
&&(chess[i-1][j-1]==chess[i-2][j-2])
&&(chess[i-2][j-2]==chess[i-3][j-3])
&&(chess[i-3][j-3]==chess[i-4][j-4])){
returntrue;
}
}
if(jif(((chess[i][j]==a)&&(chess[i][j]==chess[i-1][j])
&&(chess[i-1][j]==chess[i-2][j])
&&(chess[i-2][j]==chess[i-3][j])&&(chess[i-3][j]==chess[i-4][j]))
||((chess[i][j]==a)
&&(chess[i][j]==chess[i-1][j+1])
&&(chess[i-1][j+1]==chess[i-2][j+2])
&&(chess[i-2][j+2]==chess[i-3][j+3])&&(chess[i-3][j+3]==chess[i-4][j+4]))
||((chess[i][j]==a)
&&(chess[i][j]==chess[i][j+1])
&&(chess[i][j+1]==chess[i][j+2])
&&(chess[i][j+2]==chess[i][j+3])&&(chess[i][j+3]==chess[i][j+4]))){
returntrue;
}
}else{
if((chess[i][j]==a)&&(chess[i][j]==chess[i-1][j])
&&(chess[i-1][j]==chess[i-2][j])
&&(chess[i-2][j]==chess[i-3][j])
&&(chess[i-3][j]==chess[i-4][j])){
returntrue;
}
}
}
}
returnfalse;
}
publicstaticbooleanisNull(chara){
for(inti=chess.length-1;i>3;i--){
for(intj=1;jif(j>2){
if((chess[i][j]==a)&&('*'==chess[i-1][j-1])
&&(a==chess[i-2][j-2])
&&(chess[i-2][j-2]==chess[i-3][j-3])){
chess[i-1][j-1]='x';
returntrue;
}elseif((chess[i][j]==a)
&&(chess[i][j]==chess[i-1][j-1])
&&('*'==chess[i-2][j-2])
&&(a==chess[i-3][j-3])){
chess[i-2][j-2]='x';
returntrue;
}
}
if(jif((chess[i][j]==a)&&('*'==chess[i-1][j])
&&(a==chess[i-2][j])
&&(chess[i-2][j]==chess[i-3][j])){
chess[i-1][j]='x';
returntrue;
}elseif((chess[i][j]==a)
&&(chess[i][j]==chess[i-1][j])
&&('*'==chess[i-2][j])
&&(a==chess[i-3][j])){
chess[i-2][j]='x';
returntrue;
}
if((chess[i][j]==a)&&('*'==chess[i-1][j+1])
&&(a==chess[i-2][j+2])
&&(chess[i-2][j+2]==chess[i-3][j+3])){
chess[i-1][j+1]='x';
returntrue;
}elseif((chess[i][j]==a)
&&(chess[i][j]==chess[i-1][j+1])
&&('*'==chess[i-2][j+2])
&&(a==chess[i-3][j+3])){
chess[i-2][j+2]='x';
returntrue;
}
if((chess[i][j]==a)&&('*'==chess[i][j+1])
&&(a==chess[i][j+2])
&&(chess[i][j+2]==chess[i][j+3])){
chess[i][j+1]='x';
returntrue;
}else