2013-03-30 4 views
1

J'ai créé une classe qui fait Paper Rock Scissors.Créer une nouvelle classe pour lancer le jeu

public class RPS { 

    private char cAns; 

    public RPS() 
    { 
     reset(); 
    } 

    public String promptShoot() 
    { 
     return "Rock, Paper, Scissors, Shoot! (r/p/s)\n"; 
    } 

    public void AI() 
    { 
     double temp = Math.random(); 
     int num = (int)(temp * 2.99); 

     switch(num) 
     { 
      case 0: 
       cAns = 'r'; 
       break; 
      case 1: 
       cAns = 'p'; 
       break; 
      case 2: 
       cAns = 's'; 
       break; 
     } 
    } 

La classe choisit au hasard pour l'ordinateur. puis il demande l'entrée humaine en utilisant un scanner.

public int shoot(char hAns) 
    { 
     if(hAns == cAns) 
      return 0; 
     else if((cAns == 'r' && hAns == 'p') 
       || (cAns == 'p' && hAns == 's') 
       || (cAns == 's' && hAns == 'r')) 
      return 1; 
     else 
      return -1; 
    } 

Une fois que les deux ont choisi leur sélection, il déclare un gagnant:

public String winner(int won) 
    { 
     if(won == 1) 
      return "The human won!!! All hail the human!!!"; 
     else if(won == -1) 
      return "The computer won!!! Humans must die!!!"; 
     else 
      return "Tie!"; 
    } 

    public void reset() 
    { 
     cAns = 'a'; 
    } 
} 

Je pense que cela fonctionne et tout, mais je ne savais pas que je devais créer une catégorie distincte pour exécuter cette classe RPS .

J'ai ce jusqu'à

import java.util.Scanner; 

public class game 
{ 
    public static void main(String[] args) 
    { 
     Scanner scan = new Scanner(System.in); 

     RPS choice = new RPS(); 

     choice.AI(); 

     System.out.print(choice.promptShoot()); 
     choice.hAns(scan.nextInt()); 

     scan.close(); 
    } 
} 

Je pensais que ce serait initialiser le jeu, mais sa ne fonctionne pas. Avez-vous des suggestions ou puis-je être orienté dans la bonne direction?

Répondre

0

Ajouter static aux méthodes winner et shoot. Mettre cela en principal à la fin:

System.out.println(winner(shoot(scan.nextLine().charAt(0)))); 

Retirez choice.hAns(scan.nextInt());

+0

J'ai essayé, mais il serait toujours pas travailler – user2227728

+0

Il a été édité. Devrait fonctionner maintenant. –

+0

J'ai demandé à mon professeur de m'aider avec la classe RPS et il m'a dit que je ne devais pas changer quoi que ce soit. Ça devrait marcher comme il me l'a donné. Im juste censé créer une classe qui dirige le jeu. Im juste confus depuis Im nouveau à Java .. – user2227728

Questions connexes