五子棋(纯代码,无解说)"/>
java—五子棋(纯代码,无解说)
java—五子棋
- 前言
- 代码部分
前言
小白正在学c,但专业教材直接学java,并且要求java写一篇五子棋,但c与java相近,并且之前写过井字棋,所以中间也没什么问题,很快就能写出来,之后也有可能出一篇详解代码的部分
代码部分
public static char is_win(char board[][]){//棋盘判断int qi_pan=0;for(int rows=0;rows<10;rows++){for(int cols=0;cols<10;cols++){if(qi_pan==1)break;if(board[rows][cols]=='-')qi_pan=1;} }//横列判断char qi_zi='n';int p1_iswin=0;int p2_iswin=0;for(int rows=0;rows<10;rows++){p1_iswin=0;p2_iswin=0;for(int cols=0;cols<10;cols++){if(board[rows][cols]=='-'){p1_iswin=0;p2_iswin=0;}if(board[rows][cols]=='*'){p1_iswin++;p2_iswin=0;}if(p1_iswin==5){qi_zi='*';break;}if(board[rows][cols]=='0'){p1_iswin=0;p2_iswin++;}if(p2_iswin==5){qi_zi='0';break;}}}//竖列判断if(qi_zi=='n'){for(int rows=0;rows<10;rows++){p1_iswin=0;p2_iswin=0;for(int cols=0;cols<10;cols++){if(board[cols][rows]=='-'){p1_iswin=0;p2_iswin=0;}if(board[cols][rows]=='*'){p1_iswin++;p2_iswin=0;}if(p1_iswin==5){qi_zi='*';break;}if(board[cols][rows]=='0'){p1_iswin=0;p2_iswin++;}if(p2_iswin==5){qi_zi='0';break;}}}}//左上对角线判断if(qi_zi=='n'){for(int i=0;i<=5;i++){p1_iswin=0;p2_iswin=0;int rows=i;int cols=0;int rows_right=10;int cols_right=10-i;while(rows<rows_right&&cols<cols_right){if(board[rows][cols]=='-'){p1_iswin=0;p2_iswin=0;}if(board[cols][rows]=='*'){p1_iswin++;p2_iswin=0;}if(p1_iswin==5){qi_zi='*';break;}if(board[cols][rows]=='0'){p1_iswin=0;p2_iswin++;}if(p2_iswin==5){qi_zi='0';break;}rows++;cols++;}}}//左上上部分对角线判断if(qi_zi=='n'){for(int i=0;i<=5;i++){p1_iswin=0;p2_iswin=0;int rows=0;int rows_right=10-i;int cols=i;int cols_right=10;while(rows<rows_right&&cols<cols_right){if(board[rows][cols]=='-'){p1_iswin=0;p2_iswin=0;}if(board[rows][cols]=='*'){p1_iswin++;p2_iswin=0;}if(p1_iswin==5){qi_zi='*';break;}if(board[rows][cols]=='0'){p1_iswin=0;p2_iswin++;}if(p2_iswin==5){qi_zi='0';break;}rows++;cols++;}}}//右上对角线上半部分判断if(qi_zi=='n'){for(int i=0;i<=5;i++){p1_iswin=0;p2_iswin=0;int row=i;int row_right=9;int col=9;int col_right=i;while(row<=row_right&&col>=col_right){if(board[row][col]=='-'){p1_iswin=0;p2_iswin=0;}if(board[row][col]=='*'){p1_iswin++;p2_iswin=0;}if(p1_iswin==5){qi_zi='*';break;}if(board[row][col]=='0'){p1_iswin=0;p2_iswin++;}if(p2_iswin==5){qi_zi='0';break;}row++;col--;}}}//右上对角线上半部分if(qi_zi=='n'){for(int i=0;i<=5;i++){p1_iswin=0;p2_iswin=0;int rows=0;int row_right=9-i;int col=9-i;int col_right=0;while(col>=col_right&&rows<=row_right){if(board[rows][col]=='-'){p1_iswin=0;p2_iswin=0;}if(board[rows][col]=='*'){p1_iswin++;p2_iswin=0;}if(p1_iswin==5){qi_zi='*';break;}if(board[rows][col]=='0'){p1_iswin=0;p2_iswin++;}if(p2_iswin==5){qi_zi='0';break;}rows++;col--;}}}if(qi_zi=='0')return '0';if(qi_zi=='*')return'*';if(qi_pan==1)return 'n';if(qi_pan==0)return 'y';return 'z';}//游戏开始0 *public static int game(char board[][]){int no=0;int flag=0;while(flag==0){Scanner rua=new Scanner(System.in);if(no==0){ System.out.println("*:please input the number");int zuo_biao=rua.nextInt();int cols=zuo_biao%10;int rows=zuo_biao/10%10;if(board[rows][cols]!='-'){continue;}board[rows][cols]='*';menu(board);char f=is_win(board);if(f=='0'){System.out.println("0 winner!!");return 0;}else if(f=='*'){System.out.println("* winner!!");return 0;}else if(f=='y'){System.out.println("no winner");return 0;}}System.out.println("0:please input the number");int zuo_biao=rua.nextInt();int cols=zuo_biao%10;int rows=zuo_biao/10%10;if(board[rows][cols]!='-') {no=1;continue;}else{no=0;}board[rows][cols]='0';menu(board);char r=is_win(board);if(r=='0'){System.out.println("0 winner!!");return 0;}else if(r=='*'){System.out.println("* winner!!");return 0;}else if(r=='y'){System.out.println("no winner");return 0;}}return 0;}//用户选择开始游戏或退出游戏public static int select(){
System.out.println("play: 1");
System.out.println("exit 0");
Scanner sc=new Scanner(System.in);
int flag=sc.nextInt();return flag; }//棋盘初始化public static void init(char board[][]){for(int u=0;u<10;u++){for(int i=0;i<10;i++){board[u][i]='-';}}}//棋盘打印
public static void menu(char board[][])
{System.out.print(" ");for(int rpw=0;rpw<10;rpw++){System.out.print(" ");System.out.print(""+rpw);}System.out.println("");for(int rows=0;rows<10;rows++){System.out.print(""+rows);System.out.print(" ");for(int cols=0;cols<10;cols++){System.out.print(""+board[rows][cols]);System.out.print(" ");}System.out.println("");}}//主函数public static void main(String[] args){char[][] board=new char[10][10]; int flag=1;
do
{flag=select();switch(flag){case 1:{init(board);menu(board);game(board);break;}case 0:{break;}default:{System.out.println("error number,please input the right number again");}}}while(flag!=0);}
更多推荐
java—五子棋(纯代码,无解说)
发布评论