二維數組寫一個3*3 的9方格棋盤,兩個人輪流放有一個棋子,看哪位高手先連成一行,本人智力有限,求更精妙的寫法

tags:    時間:2013-12-17 14:06:00
二維數組寫一個3*3 的9方格棋盤,兩個人輪流放有一個棋子,看誰先連成一行,本人智力有限,求更精妙的寫法
Java code
  //Report some basic information about a file import java.io.*;   //for File import java.util.*; public  class test1 {     public static void main(String [] args) throws FileNotFoundException, InterruptedException{                  int[][]  test = new int[3][3];         Scanner console = new Scanner(System.in);                  int flage = 0;         while(true){             System.out.println("該紅方出手了:");             input(test, console);             flage=check(test, 1);             say(flage);             System.out.println("黑方出手了:");             input(test, console);             flage=check(test ,2);             say(flage);                      }                       }     public static int check(int[][] test ,int c) {         int count = 0;         for(int i = 0; i < 3; i++){             if(test[i][0]!=0&&test[i][0]==test[i][1]&&test[i][1]==test[i][2]){                 return c;             }             if(test[0][i]!=0&&test[0][i]==test[1][i]&&test[1][i]==test[2][i]){                 return c;             }                      }         if(test[0][0]!=0&&test[0][0]==test[1][1]&&test[1][1]==test[2][2]){             return c;         }         if(test[0][2]!=0&&test[0][2]==test[1][1]&&test[1][1]==test[2][0]){             return c;         }         for(int i  = 0; i < 3; i++){             for(int j = 0; j <3; j++){                 if(test[i][j]!=0){                     count++;                 }             }         }         if(count==9){             return 3;         }                           return 0;              }     public static void say(int flage){         if(flage == 1){             System.out.println("紅方贏了");             System.exit(0);                      }else if(flage ==2){             System.out.println("黑方贏了");             System.exit(0);                      }else if(flage == 3 ){             System.out.println("平手,結束");             System.exit(0);                      }              }     public static void input(int[][] test, Scanner consoie){         Scanner console = new Scanner(System.in);         int a=0;         int b=0;         int c = 0;         a = console.nextInt();         b =console.nextInt();         c= console.nextInt();         if(test[a][b]==0){             test[a][b] = c;                      }else{             System.out.print("請重新落棋,你走到別人棋子上了");             input(test, console);         }                                }                }       

紅方持 「1」棋子,黑方持「2」棋子 


------解決方案--------------------
幫頂。。。。。。。
------解決方案--------------------
呵呵,網上又java做的五子棋的代碼

祝樓主好運,我自己沒做過
------解決方案--------------------
面向對象 棋手 棋盤
------解決方案--------------------
呵呵,看不懂,我只知道我的演算法。二維數組由i ,j 組成
若是一色連成3個就win。
當你下一色子時,檢查從北到南,從西到東,從西北到東南,從西南到東北方向是否夠3字,夠就win,代碼量多些,但很多都是copy。

推薦閱讀文章

Bookmark the permalink ,來源:互聯網