SOGO論壇
  登入   註冊   找回密碼
查看: 1160|回覆: 1
列印 上一主題 下一主題

[程式設計] 圈圈叉叉 成是錯誤 需高手修改 [複製連結]

Rank: 3Rank: 3

狀態︰ 離線
跳轉到指定樓層
1
發表於 2010-6-17 20:19:28 |只看該作者 |倒序瀏覽
import java.io.*;
public class ooxx {
/**
  * @param args
  */
static int a[][]=new int [3][3];
public static void main(String[] args)throws Exception {
  // TODO 自動產生方法 Stub
  int who=-1;
  boolean f=true;
  int x=0,y=0;
  BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  while(f){
   x=Integer.parseInt(br.readLine());
   if(x<1||x>3){
    System.out.println("lose");
   }
  
   else{
   y=Integer.parseInt(br.readLine());
   a [x-1][y-1]=who;
   
   display();
   if(check()){
    System.out.println("win");
    f=false;
   }
   who*=-1;
   }
  }
}
public static void display(){
  for(int i=0;i<3;i++){
   for(int j=0;j<3;j++){
    switch(a[j]){
    case(-1):System.out.print("O "); break;
    case(0):System.out.print("_ "); break;
    case(1):System.out.print("X "); break;
    }
   }
   System.out.println("");
  }
}
public static boolean check(){
  if(Math.abs(a[0][0]+a[0][1]+a[0][2])==3){return true;}
  if(Math.abs(a[1][0]+a[1][1]+a[1][2])==3){return true;}
  if(Math.abs(a[2][0]+a[2][1]+a[2][2])==3){return true;}
  if(Math.abs(a[0][0]+a[1][0]+a[2][0])==3){return true;}
  if(Math.abs(a[0][1]+a[1][1]+a[2][1])==3){return true;}
  if(Math.abs(a[0][2]+a[1][2]+a[2][2])==3){return true;}
  if(Math.abs(a[0][0]+a[1][1]+a[2][2])==3){return true;}
  if(Math.abs(a[0][2]+a[1][1]+a[2][0])==3){return true;}
  return false;
  
}
}

------------分隔線-------------------------------------------------
結果:
O _ _
_ O _
_ _ O

希望可以改到9個格子都可以有圈叉

答案:
X O O
O X O
O O X

希望可以有高手修改到這樣
喜歡嗎?分享這篇文章給親朋好友︰
               感謝作者     

Rank: 3Rank: 3

狀態︰ 離線
2
發表於 2010-6-18 00:54:18 |只看該作者
我不太懂你的問題耶
因為我再測試你的程式
除了
public static void display(){
  for(int i=0;i<3;i++){
   for(int j=0;j<3;j++){
    switch(a[j][i]){                      <-----這裡的 [ i ]沒加
    case(-1):System.out.print("O "); break;
    case(0):System.out.print("_ "); break;
    case(1):System.out.print("X "); break;
    }
   }

大致上沒問題
還有以OOXX來說
O--
-O-
--O
因該不可能發生吧
因為不是輪流的嗎?
所以要
XOO
OXO
OOX
也不可能阿

還有你這沒有判斷"平手"
也沒有判斷 "防覆蓋" 同樣位置

《 本帖最後由 09380938 於 2010-6-18 01:11 編輯 》
已有 1 人評分威望 收起 理由
紅塵孤鳥 + 2 感謝您熱心幫助會員解決問題,論壇需要您 ...

總評分: 威望 + 2   查看全部評分

請注意︰利用多帳號發表自問自答的業配文置入性行銷廣告者,將直接禁訪或刪除帳號及全部文章!
您需要登錄後才可以回覆 登入 | 註冊


本論壇為非營利自由討論平台,所有個人言論不代表本站立場。文章內容如有涉及侵權,請通知管理人員,將立即刪除相關文章資料。侵權申訴或移除要求:abuse@oursogo.com

GMT+8, 2024-11-23 05:18

© 2004-2024 SOGO論壇 OURSOGO.COM
回頂部