2012-10-03 64 views
2

所以我遇到了一種可笑的困境,我的一個新項目。我的一項任務是開發一款遊戲,玩家可以選擇最多四次治療他們的英雄,以最大化生命值。我已經分配了一個健康值,分配了一個命令值,以便識別玩家想要治療的時間,但是我很困擾如何限制用戶只使用四次治療命令以及如何恢復其健康狀態充分。在Java中更新/重新分配一個值

我正在閱讀一個關於stackoverflow的帖子,似乎與我的問題有一些相關性,儘管我無法完全弄清楚如何根據我的需要調整它。

Scanner sc = new Scanner(System.in); 
int number; 
do { 
    System.out.println("Please enter a positive number!"); 
    while (!sc.hasNextInt()) { 
     System.out.println("That's not a number!"); 
     sc.next(); // this is important! 
    } 
    number = sc.nextInt(); 
} while (number <= 0); 
System.out.println("Thank you! Got " + number); 

任何意見,甚至直接幫助將不勝感激!提前致謝!

編輯:他們可以在一場比賽中最大化治療四次。所以一旦他們使用治療命令一次,他們只能使用它三次,等等等等。用戶輸入一個整數爲了調用heal命令,在這種情況下,我提示他們作出決定,他們只是輸入數字0.

+1

所以你需要一個醫治計數器開始於4和1對每一個'heal'方法下山限制用戶? –

+0

你沒有給我們足夠的上下文來理解這個問題。玩家如何「請求」治療? 「四次」的限制意味着......每次會話有什麼意義?每分鐘?每小時?每生命一次?角色的「健康」的定義是什麼?它是一個單一的數字,還是具有其他屬性?等....很多未解答的問題。 –

回答

0

基本上,我可以從你的問題可以理解的是,你想要上面的代碼最多執行4次,即如果用戶調用方法1次執行它,2次執行它,等等......但如果它被稱爲第五次,你不希望代碼被執行。
這可以通過保持例如一計數器如下所示

public class Q 
{ 

public static void main(String[] n) 
{ 
    Q1 ob =new Q1(); 
    ob.myMethod(); 
    System.out.println("One time"); 

    ob.myMethod(); 
    System.out.println("two time"); 

    ob.myMethod(); 
    System.out.println("three time"); 

    ob.myMethod(); 
    System.out.println("Fourth time"); 

    ob.myMethod(); 

} 
} 

正如你可以看到我已經調用的方法5次來實現。現在讓我們看看如何從獲取或製作僅僅4調用該方法

class Q1 
{ 
int counter=0; 
public void myMethod() 
{ 
    if(counter<4) 
    { 
     Scanner sc = new Scanner(System.in); 
     int number; 
     do 
     { 
      System.out.println("Please enter a positive number!"); 
      while (!sc.hasNextInt()) 
      { 
     System.out.println("That's not a number!"); 
     sc.next(); // this is important! 
    } 
    number = sc.nextInt(); 
    } while (number <= 0); 
    System.out.println("Thank you! Got " + number); 
    counter++; 
} 

else 
{ 
    System.out.println("A maximum of 4 times of healing is allowed"); 
} 

} 
}