C# 在游戏中正确使用continue和break语句

C# 在游戏中正确使用continue和break语句,c#,C#,我必须做一个像HiLo这样的纸牌游戏,你输入你的现金金额,得到两张牌,然后下注。如果第三张随机生成的卡介于其他两张卡之间,你就把那笔钱加到你的总数中,如果不是,你就输了那笔钱。代码应该做的一件事是,如果你不喜欢开始时给你的两张卡,你应该能够输入0,他们会给你新的卡。我最大的问题是,当我输入0时,它会给我两张新卡,然后询问我想投多少,当我输入该数字时,它基本上会忽略新的赌注,然后再次询问我。基本上,我必须写两倍的钱才能让它工作,我该如何解决这个问题 using System; //find how

我必须做一个像HiLo这样的纸牌游戏,你输入你的现金金额,得到两张牌,然后下注。如果第三张随机生成的卡介于其他两张卡之间,你就把那笔钱加到你的总数中,如果不是,你就输了那笔钱。代码应该做的一件事是,如果你不喜欢开始时给你的两张卡,你应该能够输入0,他们会给你新的卡。我最大的问题是,当我输入0时,它会给我两张新卡,然后询问我想投多少,当我输入该数字时,它基本上会忽略新的赌注,然后再次询问我。基本上,我必须写两倍的钱才能让它工作,我该如何解决这个问题

using System;
//find how to print dollar signs
class MainClass {
  public static void Main (string[] args) {
  var rnd = new Random();
  int card1, card2, card3;
  int playermoney = 0;
  int betmoney = 0;
  string exit = "";
  Console.WriteLine("HiLo Card Game");    
  Console.Write("Enter the starting cash amount: $");
  playermoney = Convert.ToInt32(Console.ReadLine());   
  while(exit!="n"){  
  card1 = rnd.Next(1,15);
  card2 = rnd.Next(1,15);
  Console.WriteLine("Cash balance is ${0}",playermoney);
  Console.WriteLine("{0} - {1}", card1, card2);
  Console.Write("The amount you want to bet? ");
  betmoney = Convert.ToInt32(Console.ReadLine());
  if (betmoney>=0){
    if (betmoney == 0){
    Console.WriteLine("Cash balance is ${0}",playermoney);
    Console.WriteLine("{0} - {1}", rnd.Next(1,15), rnd.Next(1,15));
    Console.Write("The amount you want to bet? ");
    betmoney = Convert.ToInt32(Console.ReadLine());
    continue;
    }//end if 0
    card3 = rnd.Next(1,15);
    Console.WriteLine("Your card is a {0}", card3);
    if(card1<card2){
    if((card3>card1 && card3<card2)){
    playermoney = playermoney+betmoney;
    Console.WriteLine("WINNER! New Balance is {0}", playermoney);  
    }//end winner if
    else{
    playermoney = playermoney-betmoney;
    Console.WriteLine("LOSER! New Balance is {0}", playermoney); 
    if (playermoney<0){
      Console.WriteLine("--------------");
      Console.WriteLine("game over");
      break;
    }//end negative if
    }//end else loser      
    }
    if (card1>card2){
      if(card3>card2 && card3<card1){
      playermoney = playermoney+betmoney;
      Console.WriteLine("WINNER! New Balance is {0}", playermoney); 
      }
      else{
    playermoney = playermoney-betmoney;
    Console.WriteLine("LOSER! New Balance is {0}", playermoney); 
    if (playermoney<0){
      Console.WriteLine("--------------");
      Console.WriteLine("game over");
      break;
    }//end negative if
    }//end else loser       
    }

  }
   else{
    Console.WriteLine("--------------");
    Console.WriteLine("game over");
    break;
  }
  Console.Write("Play Again? <y/n> ");
  exit = Console.ReadLine();
  Console.Clear();
  }
  }
}
使用系统;
//了解如何打印美元符号
类主类{
公共静态void Main(字符串[]args){
var rnd=新随机数();
内部卡1、卡2、卡3;
int playermoney=0;
int-betmoney=0;
字符串exit=“”;
Console.WriteLine(“HiLo纸牌游戏”);
控制台。写入(“输入起始现金金额:$”;
playermoney=Convert.ToInt32(Console.ReadLine());
while(退出!=“n”){
card1=rnd.Next(1,15);
card2=rnd.Next(1,15);
WriteLine(“现金余额为${0}”,playermoney);
WriteLine(“{0}-{1}”,card1,card2);
控制台。写下(“您想下注的金额?”);
betmoney=Convert.ToInt32(Console.ReadLine());
如果(betmoney>=0){
如果(betmoney==0){
WriteLine(“现金余额为${0}”,playermoney);
Console.WriteLine(“{0}-{1}”,rnd.Next(1,15),rnd.Next(1,15));
控制台。写下(“您想下注的金额?”);
betmoney=Convert.ToInt32(Console.ReadLine());
持续
}//如果为0,则结束
card3=下一个rnd(1,15);
WriteLine(“您的卡是{0}”,card3);

如果(card1card1和&card3card2和&card3如果
betAmount
0
(或小于零),我认为您要做的是
立即继续
,而不是在主循环中再次尝试拾取新卡:

if (betMoney < 1) continue;

continue
将跳转到下一个循环迭代,这意味着它将返回到
而(exit!=“n”)
并再次运行。
break
将退出循环。因此在继续游戏之前,您可能应该更改逻辑以验证
betmoney
。此外,在
if(betmoney==0)的代码块中
您不会更改
card1
card2
的值,但会在屏幕上显示新值。通常最好插入一些新行,将代码拆分为相关部分。这会使代码更易于阅读。如果下注为0,则最简单的“重置”方法是再次循环。而不是检查
betmoney
两次,只需检查一次:
如果(betmoney==0){continue;}否则{…
这非常有用,非常感谢
private static Random rnd = new Random();

static void Main()
{
    Console.WriteLine("HiLo Card Game");
    Console.WriteLine("--------------");
    Console.Write("Enter the starting cash amount: $");

    int playerMoney;

    while (!int.TryParse(Console.ReadLine(), out playerMoney) ||
            playerMoney < 1)
    {
        Console.ForegroundColor = ConsoleColor.Red;
        Console.Write("Please enter a positive number for cash amount: $");
        Console.ResetColor();
    }

    while (true)
    {
        // Draw two random cards
        int card1 = rnd.Next(1, 15);
        int card2 = rnd.Next(1, 15);

        // Start the loop again if there is not at least 
        // one card available between card1 and card2
        if (Math.Abs(card1 - card2) < 2) continue;

        // Determine the min and max of the two random cards
        var minCard = Math.Min(card1, card2);
        var maxCard = Math.Max(card1, card2);

        Console.Clear();
        Console.WriteLine("HiLo Card Game");
        Console.WriteLine("--------------");
        Console.WriteLine("Cash balance is: ${0}", playerMoney);
        Console.WriteLine("{0} - {1}", minCard, maxCard);
        Console.Write("Enter the amount you want to bet: $");

        int betMoney;

        while (!int.TryParse(Console.ReadLine(), out betMoney))
        {
            Console.ForegroundColor = ConsoleColor.Red;
            Console.Write("Please enter a valid number for bet amount: $");
            Console.ResetColor();
        }

        // If the bet amount is negative or 0, restart 
        // the loop so they can get new cards
        if (betMoney < 1) continue;

        // Draw a card for the player
        int playerCard = rnd.Next(1, 15);
        Console.WriteLine("Your card is: {0}", playerCard);

        // If the players card is between the random cards, they win
        if (playerCard < maxCard && playerCard > minCard)
        {
            playerMoney += betMoney;
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("WINNER! New Balance is ${0}", playerMoney);
            Console.ResetColor();
        }
        else
        {
            playerMoney -= betMoney;
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine("LOSER! New Balance is ${0}", playerMoney);
            Console.ResetColor();

            if (playerMoney <= 0)
            {
                Console.WriteLine("--------------");
                Console.Write("Game over. Press any key to exit...");
                Console.ReadKey();
                break;
            }
        }

        Console.Write("Play Again? <y/n>: ");
        if (Console.ReadKey().Key == ConsoleKey.N) break;
    }
}