[問題] 一個不會形容的問題(新手 附程式碼)

看板java作者 (想你)時間17年前 (2008/04/03 13:59), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
我是自學java的新手 剛學到ArrayList 想說要自己寫個猜地雷的程式玩玩 (0-9數字中隨機挑三個放地雷) compile後沒有error 也可以正常的運作 只是偶爾會出現使用者從0猜到9都沒有猜到地雷的狀況 想請問板上的大大可不可以提供一些方向 讓我知道大概是什麼地方寫錯 或是對於我的寫法有其他建議也請不吝指教 先謝謝大家! p.s. jdk為1.6.0_05版本 程式碼的部份: import java.util.ArrayList; public class LandMineGame { public static void main(String[] args) throws java.io.IOException { LandMine game = new LandMine(); game.setLocations(); //0-9間隨機指定三個數字放置地雷 game.guess(); //讓使用者輸入並檢查是否有猜中 game.getRank(); //根據使用者猜測的次數評分 } } class LandMine { ArrayList<Integer> locations=new ArrayList<Integer>(); //存地雷的位置 ArrayList<Integer> guessedNum=new ArrayList<Integer>(); //存使用者猜過 的位置 int numOfHits; //猜中地雷的次數 int numOfGuess; //總共猜測的次數 public void setLocations() //0-9間隨機指定三個數字放置地雷 { int a=(int)(Math.random()*10); int b=(int)(Math.random()*10); int c=(int)(Math.random()*10); boolean checkNum=(a!=b && a!=c && b!=c); if(checkNum==true) //避免三個地雷放再同一個位置 { locations.add(a); locations.add(b); locations.add(c); } } public void guess() throws java.io.IOException //讓使用者輸入並檢查是否 有猜中 { while (numOfHits<3) { java.io.BufferedReader keyin; keyin=new java.io.BufferedReader(new java.io.InputStrea mReader(System.in)); System.out.print("請猜出地雷的位置(0-9):"); Integer playerguess=Integer.parseInt(keyin.readLine()); numOfGuess++; if (locations.contains(playerguess)) { System.out.println("Bingo!"); numOfHits++; locations.remove(playerguess); } else if (guessedNum.contains(playerguess)) { System.out.println("The place has been checked"); guessedNum.remove(playerguess); numOfGuess--; } else { System.out.println("Wrong! Please guess again"); } guessedNum.add(playerguess); //將使用者猜的數字存起來 } System.out.println("Congratulations! You took "+numOfGuess+" ti mes to finish the game"); } public void getRank() //根據使用者猜測的次數評分 { int grade=(int)((100*(10-numOfGuess))/7); System.out.println("Your grade is "+grade); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.70.63
文章代碼(AID): #17z790hw (java)
文章代碼(AID): #17z790hw (java)