diff --git a/src/main/java/views/MainFrame.java b/src/main/java/views/MainFrame.java index cc1077e..fdd34fa 100644 --- a/src/main/java/views/MainFrame.java +++ b/src/main/java/views/MainFrame.java @@ -5,6 +5,8 @@ import javax.swing.*; import java.awt.*; +import java.awt.event.WindowEvent; +import java.awt.event.WindowListener; public class MainFrame extends JFrame { StepScheduler stepScheduler; @@ -18,5 +20,41 @@ mainPanel.setVisible(true); this.add(mainPanel, BorderLayout.CENTER); this.pack(); + this.addWindowListener(new WindowListener() { + @Override + public void windowOpened(WindowEvent e) { + mainPanel.playerBehave(stepScheduler); + } + + @Override + public void windowClosing(WindowEvent e) { + + } + + @Override + public void windowClosed(WindowEvent e) { + + } + + @Override + public void windowIconified(WindowEvent e) { + + } + + @Override + public void windowDeiconified(WindowEvent e) { + + } + + @Override + public void windowActivated(WindowEvent e) { + + } + + @Override + public void windowDeactivated(WindowEvent e) { + + } + }); } } diff --git a/src/main/java/views/MainPanel.java b/src/main/java/views/MainPanel.java index 082cc2c..1e53747 100644 --- a/src/main/java/views/MainPanel.java +++ b/src/main/java/views/MainPanel.java @@ -50,11 +50,18 @@ myHandButtonsPanel = new JPanel(); opponentButtonsPanel = new JPanel(); //setButtons(stepScheduler); + if(!stepScheduler.isDeckLess()){ //デッキが存在する場合 + var top=stepScheduler.getTopCard(); + var cardButton =new JButton("deck"); + cardButton.setPreferredSize(new Dimension(CARD_HEIGHT,CARD_WIDTH)); + deckButtonPanel.add(cardButton); + } repaintField(stepScheduler); /** - * setButton末尾の処理をコンストラクタ内へ。 + * setButton末尾にあった処理をコンストラクタ内へ。 * */ + add(deckButtonPanel,BorderLayout.WEST); //add(myHandButtonsPanel, BorderLayout.SOUTH); @@ -62,6 +69,9 @@ add(opponentButtonsPanel, BorderLayout.NORTH); setStep(Step.SelectOpponentHands); + repaint(); + // if(stepScheduler.isATurn())playerBehave(stepScheduler); + // else botBehave(stepScheduler); } void setButtons(IAttack iAttack) { @@ -236,15 +246,7 @@ var selectText = ""; var atk =0; if(!iAttack.isDeckLess()){ //デッキにカードが存在するとき - - var deckTopCard=iAttack.getTopCard(); - var cardButton =new CardButton(CLOSED_SYMBOL); - cardButton.setBounds(0,100,CARD_WIDTH,CARD_HEIGHT); - opponentHandButtons.add(cardButton); - opponentButtonsPanel.add(cardButton, BorderLayout.WEST); - isDecidedAttacker=true; - validate(); - repaint(); + paintDrawCard(iAttack);//デッキから引いたカードを描画する selectText = "Bot drew."; }else{ atk= bot.selectAttacker(iAttack); @@ -267,12 +269,9 @@ resultMessage+=isSucceed?"Succeed.":"Failed."; JOptionPane.showMessageDialog(null,resultMessage); - //update(iAttack); repaintField(iAttack); - paintDrawCard(iAttack); iAttack.shiftTurn(); - - var i= iAttack.getOpponentHands(); + playerBehave(iAttack); } void update(IAttack iAttack){ myHandButtonsPanel.removeAll();// @@ -411,7 +410,7 @@ void paintDrawCard(IAttack iAttack){ var deckTopCard=iAttack.getTopCard(); - if(!iAttack.isDeckLess()){ //デッキが存在する場合にデッキトップのカードを引く処理 + if(!iAttack.isDeckLess()){ //デッキが存在する場合にデッキトップのカードを表示する処理 var cardButton =new CardButton(deckTopCard.getKey().toString()); cardButton.setBounds(0,100,CARD_WIDTH,CARD_HEIGHT); if(iAttack.isATurn()){ @@ -419,22 +418,17 @@ myHandButtonsPanel.add(cardButton, BorderLayout.WEST); isDecidedAttacker=true; }else { + cardButton.setText(CLOSED_SYMBOL); opponentHandButtons.add(cardButton); opponentButtonsPanel.add(cardButton, BorderLayout.WEST); } - - }else{ //デッキが存在しない場合、アタックに使用するカードを選択する処理 - + if(iAttack.getDeckNumber()==1){ + deckButtonPanel.removeAll(); + } } - if(!iAttack.isDeckLess()){ //デッキが存在する場合 - var top=iAttack.getTopCard(); - var cardButton =new JButton("deck"); - cardButton.setPreferredSize(new Dimension(CARD_HEIGHT,CARD_WIDTH)); - deckButtonPanel.add(cardButton); - }else { - - } + validate(); + repaint(); } void repaintField(IAttack iAttack){ @@ -449,7 +443,7 @@ myHandButtons.clear(); opponentButtonsPanel.removeAll();// opponentHandButtons.clear(); - deckButtonPanel.removeAll(); + /** * 自分の手札に関する処理 @@ -545,6 +539,7 @@ } cardButton.setEnabledSelection(false); repaintField(iAttack); + botBehave(iAttack); } }); @@ -559,4 +554,22 @@ validate(); repaint(); } + + public void playerBehave(IAttack iAttack){ + isDecidedAttacker=false; + JOptionPane.showMessageDialog(null,"Your Turn."); + var selectText = ""; + var atk =0; + if(!iAttack.isDeckLess()){ //デッキにカードが存在するとき + selectText = "You drew \""+ iAttack.getTopCard().getKey()+"\"."; + }else{ + selectText = "Select Card used in Your Attack from Your Hands."; + } + paintDrawCard(iAttack); + + JOptionPane.showMessageDialog(null,selectText); + + if(!iAttack.isDeckLess())JOptionPane.showMessageDialog(null,"Select Card from Opponent`s Hands."); + + } }