私はポーカーゲームに取り組んでいます。これまでは、私はポーカーの手を比較することに固執しています。私はそれを行う方法について考えているが、コードに何が間違っているか分からない。誰かが間違っていることを指摘できますか?Javaでのポーカーハンドの比較
私のコードが何をしているのかを簡単に説明します。
私のプログラムの私の他の部分は、私の手札のカードを通過し、配列のカードの値の頻度を列挙します。
h = Hearts
c = Clubs
d = Diamonds
s = Spades
d4 = 4 of Diamond
だから私は私の手にカードを読んで、計算アレイを戻すために私のプログラムの他の部分を呼び出します私は C3、H4、D4、S4、2D を持っているのは、私の手にしましょう。上の私の手のためのタリー配列は[0,0,1,1,3,0,0,0,0,0,0,0,0,0]になります。したがって、この配列が言っていることは、私の手今ここに1 2、1 3、3 4
がスリーを見つけようとの私の方法でありました、それは(種類プラスペアの3である)完全な家のため
public boolean hasThreeOfAKind() {
int [] temp;
temp = this.getCounts();
for (int i = 0; i< temp.length; i++){
if (temp [i] == 3){
for (int j = 0; j < temp.length ; j++)
if (temp [j] != 2){
return true;
}
}
}return false;
をfalseを返す必要があります
だから私が上でやろうとしているのは、最初に配列を実行し、もしあれば3を返します。もし3があれば、再び配列を実行し、 2つではない、私はそれが3つの種類であることを知っています。 2がある場合は、それはフルハウスであり、私はfalseを返します。私の論理は正しいと思うが、私のコードには何か問題がある。
私が問題を抱えている第二の手は、私の手が完全に一組であるかどうかを判断する方法です。ペアが1つしかない場合はtrueを返します。 2つのペアなどがある場合はfalseを返します。
public boolean hasOnePair() {
int [] temp;
temp = this.getCounts();
for (int i = 0; i< temp.length; i++){
if (temp [i] == 2){
return true;
}
}return false;
この場合、配列の値を降順または昇順で並べ替えることを考えています。私が降順を選んだ場合、まず配列を読み、2があるかどうかを調べると、次の値をスキャンして、最初の2の後の次の値も2であるかどうかを調べることができます。 falseを返します。
誰かが自分のコードを見て、間違っていることを指摘できますか?どうもありがとうございました。これ - それはあなたがちょうどその上にチェック3でstatisfiedされる非2 jで(見つけ
for (int j = 0; j < temp.length ; j++)
if (temp [j] != 2){
return true;
}
}
これが真の最初の時間を返します。あなたのhasThreeOfAKind()
次のエラーを持って
ありがとうございます。私のコードは今働いている。 – ScoutBlade