A saída do projeto Roda da Fortuna Versão 2 é feita utilizando o método showMsg(), o qual imprime o texto informando a situação do jogo. A saída mostra quando há um erro ao tentar acertar uma letra da palavra, e assim o próximo jogador agora é o atual jogador.
O programa continua a executar até que o jogador não poder jogar mais porque todas as letras da palavra foram encontradas. O código que irá mostrar essas saídas está na classe GamePanel.java.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
import java.util.ArrayList; import javax.swing.JOptionPane; public classe GamePanel{ private Initializer initializer; private Player[] playerAry; private int numPlayer; private int currPlayer; public GamePanel(){ numPlayer = 3; currPlayer = 0; initComponent(); } private void initComponent(){ initPlayer(); //três jogadores com name, .... initializer = new Initializer(); initializer.initSentece(); startGame(); } public void initPlayer(){ playerAry = new Player[numPlayer]; for(int i = 0; i < numPlayer; i++){ playerAry[i] = new Player(); playerAry[i].setName(initPlayerData(i, "sex")); playerAry[i].setNumPlay(0); playerAry[i].setScore(0); } } public String initPlayerData(int idx, String title){ boolean hasInput = false; String titleStr = ""; char isEmpty; String numTh = "primeiro"; switch(idx){ case 0: numTh = "primeiro"; break; case 1: numTh = "segundo"; break; case 2: numTh = "terceiro"; break; } while(!hasInput){ titleStr = JOptionPane.showInputDialog("Digite " + numTh + " jogador " + title); try{ isEmpty = titleStr.charAt(0); hasInput = true; }catch(StringIndexOutOfBoundsException e){ showMsg("Você digitou algo inválido " + title + ". Digite novamente."); }catch(NullPointerException ex){ showMsg("Você clicou em cancelar."); abortGame(); } } return titleStr; } public void startGame(){ ArrayList<Integer> idxList; //a letra pode ter múltiplos acertos boolean guessValid; char PlayerGuess; while(currPlayer < 3){//habilita o próximo jogador guessValid = true; showMsg("Jogador atual " + playerAry[currPlayer].getName() + " está jogando:"); while(guessValid){//o jogador atual continua a jogar playerGuess = playerAry[currPlayer].inputGuess(); idxList = initializer.receiveGuess(playerGuess); if(idxList.isEmpty()){//o jogador não acertou a letra showMsg("A letra " + playerGuess + " não foi encontrada na frase."); guesseValid = false; //o próximo jogador começa a jogar }else{ showMsg("O palpite do jogador " + playerGuess + " achou " + idxList.size() + " na frase."); } } currPlayer = (currPlayer + 1) % numPlayer; //muda para o próximo jogador } } public void abortGame(){ showMsg("O jogo foi abortado"); System.exit(0); } public void showMsg(String msg){ System.out.pritln(msg); } } |
Não conseguimos ver a saída do jogo porque ele ainda não está executável, mas vai ser mais ou menos ao exemplo mostrado, porque as frases atuais no jogo não são iguais a que mostrarei aqui, mas depois mudarei.
O jogo está pronto. Vamos jogar
O jogador Michel está jogando:
O palpite do jogador foi a letra w e foi encontrada 1 na frase.
O palpite do jogador foi a letra p e foi encontrada 0 na frase.
O jogador Adriano está jogando:
O palpite do jogador foi a letra o e foi encontrada 2 na frase.
O palpite do jogador foi a letra m e foi encontrada 0 na frase.
O jogador Medeiros está jogando:
O palpite do jogador foi a letra l e foi encontrada 3 na frase.
O palpite do jogador foi a letra b e foi encontrada 0 na frase.
O jogador Michel está jogando:
Você clicou em Cancelar. O jogo foi finalizado.
Fonte: Learning Java with Games
Deixe um comentário