diff --git a/src/main/java/interfaces/IAttack.java b/src/main/java/interfaces/IAttack.java index 6ea9d0c..691afcd 100644 --- a/src/main/java/interfaces/IAttack.java +++ b/src/main/java/interfaces/IAttack.java @@ -12,5 +12,6 @@ List> getOpponentHands(); Map.Entry getTopCard(); + boolean isDeckLess(); } diff --git a/src/main/java/views/MainPanel.java b/src/main/java/views/MainPanel.java index cb9c889..9da1f54 100644 --- a/src/main/java/views/MainPanel.java +++ b/src/main/java/views/MainPanel.java @@ -27,6 +27,8 @@ int attacker; int target; int indexForOpponent =0; + private JPanel deckButtonPanel; + public MainPanel(StepScheduler stepScheduler) { super(new BorderLayout()); myHandButtons = new ArrayList<>(); @@ -37,11 +39,20 @@ } void setButtons(IAttack stepScheduler) { + deckButtonPanel = new JPanel(); myHandButtonsPanel = new JPanel(); opponentButtonsPanel = new JPanel(); + var deckTopCard=stepScheduler.getTopCard(); var myHands = stepScheduler.getMyHands(); var opponentHands = stepScheduler.getOpponentHands(); + if(!stepScheduler.isDeckLess()){ + var cardButton =new JButton("deck"); + cardButton.setPreferredSize(new Dimension(CARD_HEIGHT,CARD_WIDTH)); + deckButtonPanel.add(cardButton); + } + + //選択可能な自分のカードのキーを取得 selectableMyHandKeys = myHands.stream(). filter(x -> !x.getValue()).//非公開のカードを抽出 @@ -53,6 +64,8 @@ myHandButtons.add(cardButton); myHandButtonsPanel.add(cardButton, BorderLayout.WEST); } + + //相手のカードに関する処理 indexForOpponent=0; for (var i : opponentHands) { var cardButton = new JButton(i.getValue() ? i.getKey().toString() :CLOSED_SYMBOL); @@ -104,6 +117,10 @@ opponentButtonsPanel.add(cardButton, 0);//見た目の順序が逆になるように,0番目に挿入 indexForOpponent++; } + + + add(deckButtonPanel,BorderLayout.WEST); + add(myHandButtonsPanel, BorderLayout.SOUTH); add(opponentButtonsPanel, BorderLayout.NORTH); setStep(Step.SelectOpponentHands);