私は、このJavaのアンドロイドブラックジャックゲームのswitch文でこの巨大なブロックを持っており、リファクタリングしようとしていますが、これをクリーンアップする最善の方法は不明です!現在、ほとんど読めなくなっており、ディーラーが実際に勝ったときにプレーヤーが勝利したというバグがあります。適切な方向へのヒントや助けは素晴らしいでしょう。リファクタリングjava switch文(ブラックジャック)
public void checkTable() {
switch (tableState) {
case NEW_GAME:
setUpNewGame();
break;
case PLAYING: {
Player currentPlayer = this.players.get(currentPlayerIndex);
Player.State currentState = currentPlayer.getState();
if (currentState != Player.State.STAND ||
currentState != Player.State.BUST) {
if (currentPlayer.askAction() == Player.Action.HIT) {
currentPlayer.hit(deck.dealCard());
if (currentPlayer.getHandValue() > 21) {
currentPlayer.setState(Player.State.BUST);
} else if (currentPlayer.getHandValue() == 21) {
currentPlayer.setState(Player.State.STAND);
}
}
if (currentPlayer.askAction() == Player.Action.STAND) {
currentPlayer.setState(Player.State.STAND);
currentPlayer.setAction(Player.Action.WAIT);
currentPlayerIndex++;
}
else if (currentState != Player.State.BUST) {
currentPlayer.setAction(Player.Action.WAIT);
currentPlayerIndex++;
}
}
if (currentPlayerIndex > players.size() - 1)
tableState = RESOLVE;
else
break;
}
case RESOLVE:
while (this.dealer.getHandValue() < 17)
this.dealer.hit(deck.dealCard());
if(this.dealer.getHandValue() > 21)
this.dealer.setState(Player.State.BUST);
if (this.dealer.getState() == Player.State.BUST) {
for (int i = 0; i < this.players.size(); i++) {
if (this.players.get(i).getState() != Player.State.BUST) {
this.players.get(i).setState(Player.State.WON);
}
}
}
else
{
for (int i = 0; i < this.players.size(); i++) {
if (this.players.get(i).getState() != Player.State.BUST) {
if (this.players.get(i).getHandValue() < dealer.getHandValue())
players.get(i).setState(Player.State.LOST);
if (players.get(i).getHandValue() < dealer.getHandValue())
players.get(i).setState(Player.State.WON);
if (players.get(i).getHandValue() == dealer.getHandValue())
players.get(i).setState(Player.State.PUSH);
}
}
}
default:
break;
}
}
(これは、C#についてですが)
多分このビデオは役立ちます。たとえ彼らがあなたの最終的な答えになっていなくても、このコードを整理して読みやすくするのに役立ちます。 – Brick
ありがとうブリック!それらを今分けて、まだコードを整理することに取り組んでいますが、それらを分割することは良い考えです。 – kaygee