用面向过程写一个五子棋

来源:互联网 发布:360手机数据恢复 编辑:程序博客网 时间:2024/06/01 07:57

package com.lanou;

 

import java.util.Scanner;

 

public class WuZiQi {

       //用面向过程的方法写一个五子棋,“1”代表白棋,“2”代表黑棋。

       publicstatic void main(String[] args) {

              //创建一个二维数组作为棋盘

              int[][]cherker = new int[9][9];

              for(int i = 0; i < cherker.length; i++) {

                     for(int j = 0; j < cherker[i].length - 1; j++) {

                            System.out.print(cherker[i][j]+ " ");

                     }

                     System.out.println();

              }

              intsum1 = 0;

              intsum2 = 0;

              inttemp = 0;

              inttemp2 = 0;

              //

              while(true) {

                     //设定白棋的位置

                     Scannersc = new Scanner(System.in);

                     System.out.println("请输入白棋的横坐标:从0-" +(cherker.length - 1));

                     intwrow = sc.nextInt();

                     if(wrow < 0 || wrow > cherker.length - 1) {

                            System.out.println("白棋脱离棋盘");

                            return;

                     }

                     System.out.println("请输入白棋的纵坐标:从0-" +(cherker[wrow].length - 1));

                     intwcol = sc.nextInt();

                     if(wcol < 0 || wcol > cherker[wrow].length - 1) {

                            System.out.println("白棋脱离棋盘");

                            return;

                     }

                     //判断白棋落下的位置是否有棋子

                     if(cherker[wrow][wcol] == 0) {

                            cherker[wrow][wcol]= 1;

                     }else {

                            while(true) {

                                   System.out.println("此操作无效,请重新输入白棋的横坐标:");

                                   wrow= sc.nextInt();

                                   if(wrow < 0 || wcol > cherker.length - 1) {

                                          System.out.println("白棋脱离棋盘");

                                          return;

                                   }

                                   System.out.println("此操作无效,请重新输入白棋的纵坐标:从0-" + (cherker[wrow].length - 1));

                                   wcol= sc.nextInt();

                                   if(wcol < 0 || wcol > cherker[wrow].length - 1) {

                                          System.out.println("白棋脱离棋盘");

                                          return;

                                   }

                                   if(cherker[wrow][wcol] == 0) {

                                          cherker[wrow][wcol]= 1;

                                   }

                                   return;

 

                            }

 

                     }

                     //输入白棋后的棋面

                     intj = 0;

                     for(int i = 0; i < cherker.length; i++) {

                            for(j = 0; j < cherker[i].length - 1; j++) {

                                   System.out.print(cherker[i][j]+ " ");

                                   if(cherker[i][j] == 1 && cherker[i + 1][j] == 1 && cherker[i +2][j] == 1 && cherker[i + 3][j] == 1

                                                 &&cherker[i + 4][j] == 1) {

                                          temp= 1;

                                   }
else if (cherker[i][j] == 1 && cherker[i + 1][j + 1] == 1 &&cherker[i + 2][j + 2] == 1
&&cherker[i + 3][j + 3] == 1 && cherker[i + 4][j + 4] == 1) {

                                          temp= 2;

                                   }

else if (cherker[i][j] == 1 && cherker[i][j + 1] == 1 &&cherker[i][j + 2] == 1 &&cherker[i][j + 3] == 1 && cherker[i][j + 4] == 1) {

                                          temp= 3;

                                   }

                            }

                            System.out.println();

                     }

                     sum1= sum1 + cherker[wrow][wcol];

                     if(temp == 1 || temp == 2 || temp == 3) {

                            System.out.println("白棋赢了,游戏结束");

                            return;

                     }

 

                     //判断白棋输赢

                     //设定黑棋的位置

                     System.out.println("请输入黑棋的横坐标:从0-" +(cherker.length - 1));

                     intbrow = sc.nextInt();

                     if(brow < 0 || brow > cherker.length - 1) {

                            System.out.println("黑棋脱离棋盘");

                            return;

                     }

 

                     System.out.println("请输入黑棋的纵坐标:从0-" +(cherker[brow].length - 1));

                     intbcol = sc.nextInt();

                     if(bcol < 0 || bcol > cherker[brow].length - 1) {

                            System.out.println("黑棋脱离棋盘");

                            return;

                     }

                     //判断黑棋落下的位置是否有棋子

                     if(cherker[brow][bcol] == 0) {

                            cherker[brow][bcol]= 2;

                     }else {

                            while(true) {

                                   System.out.println("此操作无效,请重新输入黑棋的横坐标:");

                                   brow= sc.nextInt();

                                   if(brow < 0 || brow > cherker.length - 1) {

                                          System.out.println("黑棋脱离棋盘");

                                          return;

                                   }

                                   System.out.println("此操作无效,请重新输入黑棋的纵坐标:从0-" + (cherker[brow].length - 1));

                                   bcol= sc.nextInt();

                                   if(bcol < 0 || bcol > cherker[brow].length - 1) {

                                          System.out.println("黑棋脱离棋盘");

                                          return;

                                   }

                                   if(cherker[brow][bcol] == 0) {

                                          cherker[brow][bcol]= 2;

                                   }

                                   return;

                            }

                     }

                     //判断黑棋输赢

                     for(int i = 0; i < cherker.length; i++) {

                            for(j = 0; j < cherker[i].length - 1; j++) {

                                   System.out.print(cherker[i][j]+ " ");

                                   if(cherker[i][j] == 2 && cherker[i + 1][j] == 2 && cherker[i +2][j] == 2 && cherker[i + 3][j] == 2

                                                 &&cherker[i + 4][j] == 2) {

                                          temp2= 1;

                                   }else if (cherker[i][j] == 2 && cherker[i + 1][j + 1] == 2 &&cherker[i + 2][j + 2] == 2

                                                 &&cherker[i + 3][j + 3] == 2 && cherker[i + 4][j + 4] == 2) {

                                          temp2= 2;

                                   }else if (cherker[i][j] == 2 && cherker[i][j + 1] == 2 &&cherker[i][j + 2] == 2

                                                 &&cherker[i][j + 3] == 2 && cherker[i][j + 4] == 2) {

                                          temp2= 3;

                                   }

                            }

                            System.out.println();

                     }

                     sum1= sum1 + cherker[wrow][wcol];

                     if(temp2 == 1 || temp2 == 2 || temp2 == 3) {

                            System.out.println("黑棋赢了,游戏结束");

                            return;

                     }

 

              }

 

       }

 

}


原创粉丝点击