Prechádzať zdrojové kódy

Color name & skip turn

ard66 5 rokov pred
rodič
commit
954b704045

+ 7 - 3
frontend/keezen-frontend/src/Game.js

@@ -4,7 +4,7 @@ import { SiteState } from "./StateRouter";
 import { Card } from "./Card";
 import { colorToText } from "./util/colors";
 
-export default function Game({ message, swapCard, playCard, confirmPlay, undoPlay }) {
+export default function Game({ message, swapCard, playCard, confirmPlay, undoPlay, skipTurn }) {
     console.log(message);
     const { hand, state, current_player, play_card, swap_card } = message;
 
@@ -42,10 +42,14 @@ export default function Game({ message, swapCard, playCard, confirmPlay, undoPla
         <Card value={card}/>
         }
         {card && play_card && state === SiteState.PLAY_CARD &&
-        <button className="btn btn-primary" onClick={confirmPlay}>Bevestig</button>
+        <button className="btn btn-success" onClick={confirmPlay}>Volgende speler</button>
         }
         {card && (state === SiteState.PLAY_CARD || state === SiteState.SWAP_CARD) &&
-        <button className="btn btn-danger" onClick={undoPlay}>Neem terug</button>
+        <button className="btn btn-secondary" onClick={undoPlay}>Neem terug</button>
+        }
+        <br/>
+        {state === SiteState.PLAY_CARD &&
+        <button className="btn btn-primary" onClick={skipTurn}>Pas</button>
         }
         <Hand cards={hand} play={play}/>
     </Fragment>;

+ 6 - 2
frontend/keezen-frontend/src/StateRouter.js

@@ -33,7 +33,7 @@ export const Commands = {
     PLAY_CARD: "play_card",
     READY: "ready",
     UNDO_CARD: "undo_card",
-    PASS: "pass",
+    SKIP_TURN: "skip_turn",
 }
 
 export default function StateRouter() {
@@ -155,7 +155,11 @@ export default function StateRouter() {
                          undoPlay={() => send({
                              code: Commands.UNDO_CARD,
                              text: "Terug/Neem kaart terug",
-                         })}/>
+                         })}
+                         skipTurn={() => send({
+                            code: Commands.SKIP_TURN,
+                            text: "Pas",
+                        })}/>
         case SiteState.DEAL:
             return <div className="row justify-content-center flex-md-column my-2">
                 <h1>Klik om te delen</h1><br/>

+ 3 - 3
game.py

@@ -138,7 +138,7 @@ class Game(object):
         
         player.hand.remove(card)
         player.play_card = card
-        player.options = [Option(OptionCode.UNDO_CARD, "Terug"), Option(OptionCode.READY, "Klaar")]
+        player.options = [Option(OptionCode.UNDO_CARD, "Terug"), Option(OptionCode.READY, "Klaar"), Option(OptionCode.SKIP_TURN, "Pas")]
         player.options.extend(Option(OptionCode.PLAY_CARD, card.denom, card=card) for card in self.current_player.hand)
         player.message = f"Je speelt {card.denom}"
         player.state = StateCode.PLAY_CARD
@@ -190,7 +190,7 @@ class Game(object):
             return self.ready(player)
         elif option.code == OptionCode.UNDO_CARD:
             return self.undo_card(player)
-        elif option.code == OptionCode.PASS:
+        elif option.code == OptionCode.SKIP_TURN:
             return self.drop_cards(player)
         else:
             raise Exception(f"Unknown option {option.code}")
@@ -238,7 +238,7 @@ class Game(object):
     def turn(self):
         player = self.current_player
         player.options = [Option(OptionCode.PLAY_CARD, card.denom, card=card) for card in player.hand]
-        player.options.append(Option(OptionCode.PASS, "Pas"))
+        player.options.append(Option(OptionCode.SKIP_TURN, "Pas"))
         player.message = "Kies een kaart om te spelen"
         player.state = StateCode.PLAY_CARD
 

+ 1 - 1
option.py

@@ -13,7 +13,7 @@ class OptionCode(str, Enum):
     PLAY_CARD = "play_card"
     READY = "ready"
     UNDO_CARD = "undo_card"
-    PASS = "pass"
+    SKIP_TURN = "skip_turn"
 
 
 class Option(object):