Pedra Papel Tesoura

Por recomendações, criei um blog para registrar minha experiência como programador, ainda não sou um, mas estou estudando para ser. A minha primeira postagem foi sobre um código que criei para um jogo de Pedra Papel Tesoura em texto. Disponibilizei o código nesse post: http://monkodev.blogspot.com.br/2014/01/primeiro-update-e-pedra-papel-tesoura.html

Gostaria que você deixassem uma opinião de como ficou, em que eu poderia melhorar e sugestões.

Muito legal sua iniciativa.

Minha sugestão é que você use orientação a objetos no seu exemplo, ficou com cara de programa estruturado.

Outra coisa, quando você vai obter a jogada do computador, você calcula diversas vezes um número randômico. Calcule apenas uma vez.

Math.random(); //esse random aqui pode cair fora if(Math.random() <= 0.33){ // esse pcresp = 1; System.out.println("O computador escolheu PEDRA"); } else{ if(Math.random() <= 0.67){ // e esse pcresp = 2; System.out.println("O computador escolheu PAPEL"); } else{ pcresp = 3; System.out.println("O computador escolheu TESOURA"); } }

Você pode armazenar em uma variável e, em vez de comparar com um double, fazer um cast para inteiro. Algo como:

int escolha = (int) (Math.random * 3); // irá gerar um número no intervalo [0,2] - ou [0,3[

Dessa forma você pode tratar o computador e o jogador de maneira semelhante, a diferença é que o jogador escolhe a jogada baseado em um input e o computador baseado em um número aleatório (aqui é uma dica de onde você pode usar orientação a objetos).

O outro ponto onde você pode usar OO é na parte das jogadas. Pedra, Papel e Tesoura podem ser objetos (talvez parte de um enum) e poderiam ter um método em comum que verificasse se ele é ou não mais “forte” do que outro (algo semelhante ao compareTo da interface Comparable).

Claro que isso pode ser um monte de coisa pra você agora, já que começou os estudos, mas tente evoluir esse programa enquanto estuda e aprende novas técnicas, você vai se surpreender com o que pode fazer em um exemplo tão simples como esse.

Muito obrigado cara, ainda não comecei com Orientação a Objetos, mas assim que eu tiver uma noção irei modificando o código. Obrigado por tomar um pouco do seu tempo para ajudar novatos como eu :slight_smile: Seguirei seu exemplo