2015-09-27 42 views
0

我使用循環在文本文件上生成1個數字。我開始在用戶開始玩遊戲時遇到問題。使用循環和條件來改變遊戲中的分數

我要正前方去,給我的僞代碼,以便你能明白我想做...

  1. 隨機生成介於0和10號10
  2. 存儲這些數據到一個名爲mysteryNumbers.txt文件,每行一個數
  3. 提示用戶介於0和10
  4. 檢查文件
  5. 中如果用戶猜測正確,subtra輸入一個號碼這個號碼對第一號ct 10從分數開始(分數爲0)
  6. 如果用戶猜測錯誤,將正確數量的分數添加到用戶的當前分數(在開始時,分數爲0)
  7. 提示用戶輸入一個數字0這個數字之間和10
  8. 覈對文件
  9. 如果用戶猜測就在第二個數字,減去10從得分
  10. 如果用戶猜測錯誤,添加正確的得分到當前用戶分數
  11. 提示用戶輸入0到10之間的數字
  12. 覈對文件
  13. 如果用戶猜測正確的第三號這個號碼,從比分
  14. 如果用戶猜測錯誤減去10,成績的正確數量添加到用戶
  15. 目前比分
  16. ...等等...
  17. 顯示用戶的分數:當然,越低越好!

- 我也按照僞代碼大綱來組織下面的代碼。

/************************************************************************************ 
    PrintWriter mywriter = new PrintWriter("mysteryNumber.txt"); 
    int randomNumber; 
    int i = 0; 
    i=1; 
    while (i<=10) { 
    Random randomGen = new Random(); 
     randomNumber= randomGen.nextInt(11); 
    // then store (write) it in the file 
    mywriter.println(randomNumber); 
     i = i + 1; 
    } 
    //numbers are now generated onto text file... 

    /************************************************************************************ 
    * 3. Prompt the user to enter a number between 0 and 10       */ 
    Scanner myscnr= new Scanner (System.in); 

    System.out.print ("Please enter a number between 0 and 10: "); 

    int userNumber= myscnr.nextInt(); 

    /************************************************************************************ 
    * 4. Check this number against the first number in the file      */ 
    // to check the user's number against the file's, you need to be able to read 
    // the file. 
    FileReader fr = new FileReader("./mysteryNumber.txt"); 
    BufferedReader textReader = new BufferedReader(fr); 
    int numberInFile; 
    // the number in your file is as follows: 
    numberInFile = Integer.valueOf(textReader.readLine()); 

    /************************************************************************************ 
    * 5. If the user guesses right, subtract 10 from the score      */ 
    /************************************************************************************ 
    * 6. If the user guesses wrong, add the correct amount of score to the current * 
    * score of the user (at the start, the score is 0         */ 


    /************************************************************************************ 
    * 7. Prompt the user to enter a number between 0 and 10       */ 
    //Sytem.out.println ("Enter a number between 0"); 

    /************************************************************************************ 
    * 8. Check this number against the second number in the file      */ 

    etc etc... 

我很困惑從評論第5部分開始。我知道我必須創建一個新的整數分數,但之後,我迷路了! 我試圖在if if statemnent工作,但我不能去它..

回答

0

我想你創建了10個隨機數並存儲在文件沒有問題。

其餘代碼在array中有數字會更容易。你可以按順序存儲它們。接下來創建一個for循環來獲取輸入數字並檢查數組中相應的數字。

例如:

考慮到您的數組編號[]包含您的數字。

for(int i=0;i<10,i++){ 
    System.out.print ("Please enter a number between 0 and 10: "); 
    int userNumber= myscnr.nextInt(); 

    if(userNumber==numbers[i]) 
     score-=10; 
    else 
     score++; //the addition you wanna make 
}