segunda-feira, 20 de junho de 2011

[JAVA] Pedra Papel Tesoura

Código do jogo Pedra Papel Tesoura. Feito por mim como parte integrante da disciplina de Algoritmos. O jogo consiste em 2 jogadores virtuais que duelam entre si. O número de rodadas é dado pelo usuário.


O código:

/* Pedra Papel Tesoura   */
/* Feito por João Marcos */

package PedraPapelTesoura;

import java.util.Scanner;

public class PedraPapelTesoura {

    //Função para retornar a jogada
    public static String ConverteIntParaString(int x){
        String Result = "null";
        switch(x) {
            case 0 :
                Result = "Pedra";
                break;
            case 1 :
                Result = "Papel";
                break;
            case 2 :
                Result = "Tesoura";
                break;
        }
        return Result;
    }

   //Função para retornar número aleatório
    public static int Randomize(int x) {
        int r = (int)Math.floor(Math.random()*x);
        return r;
    }

    //Função para retornar o resultado de acordo com a jogada
    public static String Resultado(String x, String y) {
        if (x.equals(y)) {
            return "Empate";
        } else if(x.equals("Pedra") && y.equals("Tesoura")) {
            return "Jogador 01 Win";
        } else if(x.equals("Tesoura") && y.equals("Papel")) {
            return "Jogador 01 Win";
        } else if(x.equals("Papel") && y.equals("Pedra")) {
            return "Jogador 01 Win";
        } else {
            return "Jogador 02 Win";
        }
    }

    public static void main(String[] args) {
        String[][] Tabela; // Tabela com as jogadas
        Integer Rounds; // Numero de partidas

        //Entrada das partidas
        System.out.println("Digite:");
        Scanner in = new Scanner(System.in);
        Rounds = in.nextInt();

        //Validação do número de partidas
        while(Rounds <= 0){
            System.out.println("Redigite:");
            Rounds = in.nextInt();
        }

        //Inicialização da tabela com as jogadas
        Tabela = new String[3][Rounds];

        //Início do jogo
        for(int i = 0; i < Rounds; i ++){
            String JogadaJogador01 = ConverteIntParaString(Randomize(3));
            String JogadaJogador02 = ConverteIntParaString(Randomize(3));
            String Result = Resultado(JogadaJogador01, JogadaJogador02);
/*
            //Contagem do tempo
            for(int x = 4; x > 0; x--) {
                long t0, t1;
                t0 =  System.currentTimeMillis();
                do{
                    t1 = System.currentTimeMillis();
                } while ((t1 - t0) < (1 * 1000));
                    System.out.println("A partida começa em " + (x-1));
            }
*/
            System.out.println("JÁ! Jogador 01 jogou " + JogadaJogador01 + " e jogador 02 jogou " + JogadaJogador02 + " e o resultado foi " + Result);
            Tabela[0][i] = JogadaJogador01;
            Tabela[1][i] = JogadaJogador02;
            Tabela[2][i] = Result;
        }

        //Contagem dos resultados
            Integer Jogador01Win = 0;
            Integer Jogador02Win = 0;
            Integer Empate = 0;

        for(int i = 0; i < Rounds; i++) {
            if(Tabela[2][i].equals("Jogador 01 Win")) {
                Jogador01Win++;
            } else if(Tabela[2][i].equals("Jogador 02 Win")) {
                Jogador02Win++;
            } else {
                Empate++;
            }
        }

        //Exibição dos resultados
        if(Jogador01Win > Jogador02Win) {
            System.out.println("O jogador 01 venceu de " + Jogador01Win + " a " + Jogador02Win);
        } else if(Jogador01Win < Jogador02Win) {
            System.out.println("O jogador 02 venceu de " + Jogador02Win + " a " + Jogador01Win);
        } else {
            System.out.println("Houve um empate! Ambos os jogadores venceram " + Empate);
        }
    }
}
Lembrando que não possui interface gráfica. Execute com o auxílio de um debugger.

0 comentários:

Postar um comentário