ブラックジャックプログラムを作成しようとしていますが、各ラウンド後にベット結果を保存するのに問題があります。新しい値が生成されたかどうかわからないし、ループが元の値に戻っているためです。あるいは、その価値は単に決して変更されていないということです。各ラウンドの後に、プログラムとループの最初のメソッドであるので、Betting()
メソッドが実行されます。私のコードは次のとおりです。whileループでintフィールドの値を変更する
public static void WinnerIs()
{
// Winning/Lossing rules
if (DealerHand.Sum() > PlayerHand.Sum() && DealerHand.Sum() <= 21)
{
Money.Lossing();
Console.WriteLine("The Dealer have {0} , u have {1} . Dealer won. U now have {2}", DealerHand.Sum(), PlayerHand.Sum(), Money.PlayerMoney);
}
if (DealerHand.Sum() < PlayerHand.Sum() && PlayerHand.Sum() <= 21)
{
Money.Winning();
Console.WriteLine("The Dealer have {0} , u have {1} . U won. U now have {2}", DealerHand.Sum(), PlayerHand.Sum(), Money.PlayerMoney);
}
if (DealerHand.Sum() == PlayerHand.Sum())
Console.WriteLine("It's a tie");
if (DealerHand.Sum() > 21)
{
Money.Winning();
Console.WriteLine("Dealer have more then 21. U won. U now have {0}", Money.PlayerMoney);
}
dealerHand.Clear();
playerHand.Clear();
}
}
class Money
{
//Betting and Winning/Lossing results
private static int playerMoney = 1000;
public static int PlayerMoney { get { return playerMoney; } set { } }
public static int playerBetInt = 0;
public static int PlayerBet = 0;
public static void Betting()
{
Console.WriteLine("How much u want to bet? u have {0}$", PlayerMoney);
while (true)
{
string playerBetString = Console.ReadLine();
if (Int32.TryParse(playerBetString, out playerBetInt))
{
Console.WriteLine("Your Bet is: {0} ", playerBetInt);
if (playerBetInt > 0)
{
PlayerBet = playerBetInt;
break;
}
}
else
Console.WriteLine("Invield value Try Again");
}
}
public static void Winning() {
if (Hands.DealerHand.Sum() < Hands.PlayerHand.Sum() && Hands.PlayerHand.Sum() <= 21)
PlayerMoney = PlayerMoney + PlayerBet;
}
public static void Lossing() {
if (Hands.DealerHand.Sum() > Hands.PlayerHand.Sum() && Hands.DealerHand.Sum() <= 21 || Hands.PlayerHand.Sum() > 21)
PlayerMoney = PlayerMoney - PlayerBet;
}
コード内の「静的」のすべての発生を取り除きます。これにより、コンパイラのエラーが発生する可能性があります。したがって、コンパイラのエラーを修正するために必要なことはすべて行いますが、静的な方法を使用することはありません。あなたはそれをするために実際に言語を学ばなければならないかもしれませんが、それが目標ですね。問題が解決しない場合は、もう一度やり直してください。 –