私は宿題のために単純なカードゲーム「戦争」を書いています。ゲームが機能するようになったので、よりモジュール化して組織化しようとしています。以下はMain()
、プログラムの大部分を含むセクションです。このコースは C# で教えられていますが、C# コースではありません。むしろ、基本的なロジックと OOP の概念を学んでいるので、一部の C# 機能を利用していない可能性があります。
bool sameCard = true;
while (sameCard)
{
sameCard = false;
card1.setVal(random.Next(1,14)); // set card value
val1 = determineFace(card1.getVal()); // assign 'face' cards accordingly
suit = suitArr[random.Next(0,4)]; // choose suit string from array
card1.setSuit(suit); // set card suit
card2.setVal(random.Next(1,14)); // rinse, repeat for card2...
val2 = determineFace(card2.getVal());
suit = suitArr[random.Next(0,4)];
card2.setSuit(suit);
// check if same card is drawn twice:
catchDuplicate(ref card1, ref card2, ref sameCard);
}
Console.WriteLine ("Player: {0} of {1}", val1, card1.getSuit());
Console.WriteLine ("Computer: {0} of {1}", val2, card2.getSuit());
// compare card values, display winner:
determineWinner(card1, card2);
だからここに私の質問があります:
- Main() でループを使用しても、モジュラーと見なすことはできますか?
- カードを引くプロセスは適切に書かれているか、適切に含まれていますか?
- メソッドでメッセージを出力することは悪い習慣と見なされますか (つまり:
determineWinner()
)?
プログラミングを始めて 2 学期しか経っていませんが、この段階で良い習慣を身に付けたいと思っています。任意の入力/アドバイスをいただければ幸いです。
編集:
catchDuplicate() は boolean メソッドになり、呼び出しは次のようになります。
sameCard = catchDuplicate(card1, card2);
@ダグラスに感謝します。