2016-05-09 4 views
-1

プレイヤーAかBが勝っているかどうかをチェックする関数を設計したいと思います。 今、私はたくさんのコードを再利用しています。可能であれば、それぞれ同じ機能を使用したいと思います。今、私は2つの異なるif文を持っています.1つはAとBです。どのようにそれらをマージするべきですか? AとBの両方の値をとり、if文を1つだけ使用して何らかのテナリー関数を使用する関数を作成できますか?パズルの勝者を確認してください

if (label[x,0].theValue() == A && label[x,1].theValue() == A && label[x,2].theValue) == A) 
{ 
    MessageBox.Show("A Wins!"); 
} 

if (label[x,0].theValue() == B && label[x,1].theValue() == B && label[x,2].theValue) == B) 
    { 
     MessageBox.Show("B wins!"); 
    } 
+0

あなたのコードを投稿してください。他に誰も助けることができません。アプリの画面も高く評価されます。これはFormsアプリケーションですか? – chris579

+0

私がお勧めする最初のことは、これらの値をUIから取得しないことです。しかし、@ chris579によると、コードの詳細を投稿してください。 –

答えて

-2

私はC#を使ったことはありませんが、2番目のIf文は必要ないと思います。 Aが勝った場合、Bは負け、Bが勝った場合は失われます。

もし勝利なら... B勝!

申し訳ありませんが、私はあなたにコードサンプルを与えることはできません、C#は私のものではありません。

0

私はあなたがこのような何かができると思う。

public string CheckWinner(int x){ 
    if("your code") { return "A wins"; } 
    if("your code") { return "B wins"; } 
} 

をそしてあなたの主な機能(フォーム)

MessageBox.Show(CheckWinner(1)); 

に、私はこの情報がお役に立てば幸いです。

0

あなたが与えられたプレイヤーは、次のように勝ったかどうかをチェックするためにfunktionを書くことができます(あなたのコードでAとBを仮定はプレーヤー-オブジェクトである)

private bool HasWon(Player player) 
{ 
    if (label[x,0].theValue() == player && label[x,1].theValue() == player && label[x,2].theValue() == player) 
    { 
     return true; 
    } 
     return false; 
} 

あなたはそうのように、この機能を使用することができます。

if(HasWon(A)) 
{ 
    MessageBox.Show("A Wins!"); 
} 

か、あなたはすべてプレイしているプレーヤーのこのようなリストか何かを持っている場合は、そのように実行します。

foreach(var player in players) 
{ 
    if(HasWon(player)) 
    { 
     MessageBox.Show(player.Name + " Wins!"); 
    } 
} 
0

を追加チェックする方法Aが勝者である場合:

public bool IsAWinner(string x0value, string x1value, string x2value) 
{ 
    if (x0value == "A" && x1value == "A" && x2value == "A")   
     return true; 
    return false; 
} 

は、確認するようにUIコードから、このいずれかを呼び出して、Aが勝者であればそうでない場合、Bが勝者です。

この方法では、Windowsコントロールを使用しないことをお勧めします。テストすることができます(UIからの疎結合)。

だからあなたのUIから:

if (IsAWinner(label[x,0].theValue(), label[x,1].theValue(),label[x,2].theValue)) 
    MessageBox.Show("A Wins!"); 
else 
    MessageBox.Show("B wins!"); 

また、いくつかの例外処理を追加することを忘れないでください。

+0

A/B音は、OPポストの定数や変数のように聞こえるが、インライン文字列ではない。 –

+0

これは明らかではありませんが、原則は同じです。 –

関連する問題