2013-10-30 100 views
0

這是一個我在C#2010中創建的遊戲,但當用戶輸入時,攻擊和健康值會變成負數[1]增加防禦。變量數量限制

 bool jet = false; 


     int userinput; 

     Console.WriteLine("Pick your team color, Blue or Green. "); 
     string userName = Console.ReadLine(); 

     if (userName == "blue") 
     { 
      user.Name = "Blue Fighterjet"; 
      comp.Name = "Green Fighterjet"; 
     } 

     else 
     { 
      user.Name = "Green Fighterjet"; 
      comp.Name = "Blue Fighterjet"; 
     } 

     Console.Clear(); 

     Console.WriteLine("You are now the {0}.", user.Name); 
     Console.ReadLine(); 

     Console.Clear(); 

     Console.WriteLine("What do you want to do for your first move?"); 
     Console.ReadLine(); 

     while (jet == false) 
     { 
      Console.Clear(); 
      Console.WriteLine("Your stats:"); 
      Console.WriteLine("Health {0} \n Defense {1} \n Attack {2}", user.Health, user.Defense, user.Attack); 

      Console.WriteLine("Comp stats:"); 
      Console.WriteLine("Health {0} \n Defense {2} \n Attack {2}", comp.Health, comp.Defense, comp.Attack); 
      Console.ReadLine(); 

      Console.WriteLine("[1] Increase your Defense."); 
      Console.WriteLine("[2] Regain some of your Health."); 
      Console.WriteLine("[3] Attack the {0}.", comp.Name); 
      userinput = int.Parse(Console.ReadLine()); 


      if (userinput == 1) 
      { 
       user.Defense = user.Defense + random.Next(1, 10); 

       if (userinput == 1) 
       { 
        comp.Attack = comp.Attack - user.Defense + random.Next(1, 10); 
       } 
      } 


      if (userinput == 2) 
      { 
       user.Health = user.Health + random.Next(1, 10); 

       if (userinput == 2) 
       { 
        comp.Defense = comp.Defense + random.Next(1, 10); 
       } 
      } 


      if (userinput == 3) 
      { 
       user.Attack = user.Attack + random.Next(1, 10); 

       if (userinput == 3) 
       { 
        comp.Health = comp.Health - user.Attack + random.Next(1, 10); 
       } 
      } 
     } 
    } 
} 
class jet 
{ 
    private string name; 
    private int health = 100; 
    private int defense = 0; 
    private int attack = 5; 

    public string Name 
    { 
     get { return name; } 
     set { name = value; } 
    } 

    public int Health 
    { 
     get 
     { 
      return health; 
     } 

     set 
     { 
      if (value <= 100) 
      { 
       health = value; 
      } 
      else 
      { 
       health = 100; 
      } 
     } 

    } 

    public int Defense 
    { 
     get 
     { 
      return defense; 
     } 
     set 
     { 
      if (value <= 10) 
      { 
       defense = value; 
      } 
      else 
      { 
       defense = 10; 
      } 
     } 
    } 

    public int Attack 
    { 
     get 
     { 
      return attack; 
     } 
     set 
     { 
      if (value <= 5) 
      { 
       attack = value; 
      } 
      else 
      { 
       attack = 5; 
      } 
     } 
    } 
} 

有關如何輕鬆解決此問題的任何提示?

是我的userinputs不正確?

+0

指定標記語言請 – Harrison

回答

2

這會給你0或正數...... Math.Max(0,variable)

而且,你不需要嵌套if聲明時,它是在相同的條件

if (value ==1) 
{ 
    //Do Something 
    if (value == 1) //This will always happen unless DoSomething has changed value. 
    { 
    } 
}