public void appear(final CardGui card) { moving = card; player1.animations.add(moving); Thread t = new Thread( () -> { moving.setBounds(925 - 62, 609 - 93, 0, 0); int i = 0, j = 0; while (i <= 124 || j <= 186) { try { if (i <= 124) { i++; moving.setBounds(925 - 62, 609 - 93, i, j); Thread.sleep(1); } if (j <= 186) { j++; moving.setBounds(925 - 62, 609 - 93, i, j); Thread.sleep(1); } } catch (InterruptedException e) { e.printStackTrace(); } } i = 925 - 62; while (i >= 652) { i--; try { Thread.sleep(1); } catch (InterruptedException e) { e.printStackTrace(); } moving.setLocation(i, 609 - 93); } player1.animations.remove(moving); player1.repairListeners(false); PlayGui.player.pdeck.textField.setText( "cards left " + PlayGui.player.pdeck.Deck.cardsLeft()); player1.cardDrawn = 1; PlayGui.player.pdeck.textField.repaint(); setVisible(true); repaint(); }); t.start(); }
public void actionPerformed(ActionEvent e) { if (dados != null) { if (e.getSource() == dados.pane.rollButton) { Thread t = new Thread( () -> { try { Thread.sleep(3000); } catch (InterruptedException e1) { e1.printStackTrace(); } if (Objects.equals(dados.pane.text.getText(), "3")) { dados.label.setBounds(70, 316 + 50, 507, 41); dados.label.setText("Tie, Roll again"); dados.label.setVisible(true); try { Thread.sleep(1000); } catch (InterruptedException e1) { e1.printStackTrace(); } b2.doClick(); dados.label.setBounds(70, 316 + 50, 507, 41); dados.label.setText("Tie, Roll again"); dados.label.setVisible(true); } else { dados.label.setBounds(150, 316, 507, 41); dados.pane.rollButton.setVisible(false); dados.pane.setVisible(false); try { turno = new FileWriter("turno.txt"); pw = new PrintWriter(turno); } catch (IOException e1) { e1.printStackTrace(); } if (Objects.equals(dados.pane.text.getText(), "1")) { dados.label.setText("Congratulations , fate is on your side"); dados.label.setVisible(true); try { Thread.sleep(500); } catch (InterruptedException e1) { e1.printStackTrace(); } dados.label.setText("Now select who is playing first"); dados.label.setBounds(295, 316, 507, 41); add(dados.label); Aifirst = new JButton(); Aifirst.setBounds(650, 400, 200, 200); Aifirst.setIcon(new ImageIcon("seccond.png")); add(Aifirst); playerfirst = new JButton(); playerfirst.setBounds(250, 400, 200, 200); playerfirst.setIcon(new ImageIcon("first.png")); add(playerfirst); player = new JLabel("Player"); player.setBounds(350, 620, 200, 30); player.setAlignmentX(CENTER_ALIGNMENT); player.setForeground(Color.WHITE); add(player); ai = new JLabel("Ai"); ai.setBounds(750, 620, 200, 30); ai.setAlignmentX(CENTER_ALIGNMENT); ai.setForeground(Color.WHITE); add(ai); playerfirst.addActionListener(this); Aifirst.addActionListener(this); repaint(); pw.println(1); } else { dados.label.setText("AI player gets the first turn"); dados.pane.setVisible(true); dados.label.setVisible(true); dados.btnPlay.setVisible(true); repaint(); pw.println(2); } try { turno.close(); } catch (IOException e1) { e1.printStackTrace(); } } }); t.start(); } if (e.getSource() == Aifirst) { dados.pane.text.setText("2"); dados.btnPlay.doClick(); } if (e.getSource() == playerfirst) { dados.pane.text.setText("1"); dados.btnPlay.doClick(); } if (e.getSource() == dados.btnPlay) { try { player1 = new PlayGui(0, 0, Nombre1, this); Thread t = new Thread( () -> { try { Thread.sleep(1000); } catch (InterruptedException e1) { e1.printStackTrace(); } if (Objects.equals(dados.pane.text.getText(), "2")) { try { player1.Aiturn(); player1.contTurn++; } catch (IOException | UnsupportedAudioFileException | LineUnavailableException | InterruptedException e1) { e1.printStackTrace(); } } else { player1.firstPlayerTurn(); } }); t.start(); } catch (IOException | UnsupportedAudioFileException | LineUnavailableException e1) { e1.printStackTrace(); } PlayGui.player.pdeck.btnNewButton_1.addMouseListener(this); PlayGui.player.pdeck.btnNewButton.addMouseListener(this); PlayGui.player.pdeck.textField.addMouseListener(this); try { addbackground3(this); } catch (IOException e1) { e1.printStackTrace(); } getContentPane().setBackground(new Color(153, 204, 204)); getContentPane().setLayout(null); player1.repaint.addActionListener(this); add(player1); setVisible(true); } } if (e.getSource() == b2) { try { dados = new RollDice(); addbackground4(this); } catch (IOException e1) { e1.printStackTrace(); } getContentPane().setLayout(null); dados.pane.rollButton.addActionListener(this); dados.btnPlay.addActionListener(this); add(dados); setVisible(true); } if (player1 != null) { if (e.getSource() == player1.repaint) { repaint(); } if (e.getSource() == accionarAgarreAutomatico) { if (this.player1.getPhaseActual() == 0) { if (player1.cardDrawn == 0) { if (PlayGui.player.pdeck.Deck.cardsLeft() != 0) { CardGui nueva = null; try { nueva = new CardGui(PlayGui.player.pdeck.Deck.extractCard(), 0, 0); } catch (IOException e1) { e1.printStackTrace(); } appear(nueva); final CardGui finalNueva = nueva; Thread t1 = new Thread( () -> { try { Thread.sleep(1000); } catch (InterruptedException e1) { e1.printStackTrace(); } try { PlayGui.player.hand.draw(finalNueva); } catch (UnsupportedAudioFileException | IOException | LineUnavailableException e1) { e1.printStackTrace(); } repaint(); }); t1.start(); } else { doGameOver(); } } else { JOptionPane.showMessageDialog(null, "Sorry , u can pick only a card per turn"); } } else { JOptionPane.showMessageDialog(null, "Sorry , u can only pick cards on the draw phase"); } } } }