2010-12-06 17 views
0
import java.util.Scanner; 

public class Game 

{ 

    private String startYorN; 
    private int generateTestValues; 
    private int rows; 
    private int cols; 
    private int minCanisters; 
    private int maxCanisters; 
    private int numOfDarkies; 
    private int minimumLifePoints; 
    private String name; 
    private String type1; 
    private int sPosition1, sPosition2; 
    private int tPosition1, tPosition2; 
    private int iLifePoints; 
    Scanner scan = new Scanner(System.in); 

    public void gameSetting() 
    { 

     System.out.print ("Would you like to play? (y/n):"); 
     startYorN = scan.nextLine(); 
     //if (startYorN =="n" || startYorN =="N") 
     //quit the game(?) 

     System.out.print ("Would you want to generate test values for world? 1- yes: "); 
     generateTestValues =scan.nextInt(); 
     System.out.println (""); 

     System.out.print ("Enter a number of rows for world: "); 
     rows = scan.nextInt(); 
     System.out.println (""); 

     System.out.print ("Enter a number of cols for world: "); 
     cols = scan.nextInt(); 
     System.out.println (""); 

     System.out.print ("Enter minimum energy canisters in each planet: "); 
     minCanisters = scan.nextInt(); 
     System.out.println (""); 

     System.out.print ("Enter maximum energy canisters in each planet: "); 
     maxCanisters = scan.nextInt(); 
     System.out.println (""); 

     System.out.print ("Enter number of planets with darkies: "); 
     numOfDarkies = scan.nextInt(); 
     System.out.println (""); 

     System.out.print ("Enter minimum life points for players to replenish: "); 
     minimumLifePoints = scan.nextInt(); 
     System.out.print ("\n"); 
     World w = new World(rows,cols,minCanisters, maxCanisters, numOfDarkies); 
     w.display(); 

     Alien[] alien = new Alien [2]; 

     for (int i = 0; i<=1;i++) 
     { 
      name = scan.nextLine(); 
      System.out.print ("\n"); 
      System.out.print ("Enter name for player #" + i + ": "); 
      name = scan.nextLine(); 

      System.out.print ("Enter kind Player #" + i + ", (n- naive, g- greedy, a- aggressive, u- naive user, w-aggressive user): "); 
      type = scan.nextLine(); 

      System.out.print ("Enter: row (space) column for start position for player #" + i + ": "); 
      sPosition1 = scan.nextInt(); 
      sPosition2 = scan.nextInt(); 

      System.out.print ("Enter: row (space) column for target position for player #" + i + ": "); 
      tPosition1 = scan.nextInt(); 
      tPosition2 = scan.nextInt(); 

      System.out.print ("Enter initial life points for player #" + i + ": "); 
      iLifePoints = scan.nextInt(); 
     } 
    } 
    public void setInfo(Alien alien[i], String name, String type, int sPosition1, int sPosition2, 
         int tPosition1, int tPosition2, int iLifePoints) 
    { 
     this.name = name; 
     this.type = type; 
     this.sPosition1 = sPosition1; 
     this.sPosition2 = sPosition2; 
     this.tPosition1 = tPosition1; 
     this.tPosition2 = tPosition2; 
     this.iLifePoints = iLifePoints; 
    } 
} 

Je sais qu'il y a quelque chose qui ne va pas dans la méthode setInfo et probablement aussi dans la méthode gameSetting. Je veux obtenir l'information de chacun des deux joueurs (étrangers). Quelqu'un pourrait-il me dire ce que je devrais faire?Java Erreur de jeu (Array, this., Methods)

+1

Quelle erreur obtenez-vous? Est-ce le code complet? Je suis confus :( –

+0

où vous utilisez alien alien [i] dans setInfo –

+0

Nous avons besoin de plus de code et/ou d'erreurs que vous obtenez pour vous aider. – marcog

Répondre

2

Un problème est que vous devez supprimer le i dans Alien alien[i] dans votre liste d'arguments setInfo(). Vous pouvez également envisager de le supprimer complètement de la liste des arguments car vous ne l'utilisez pas, ou peut-être ne pas l'utiliser est une autre erreur que vous devez corriger. À la place, vous devez également modifier la déclaration de la variable type1 pour l'appeler type, car c'est ce que vous utilisez à plusieurs endroits plus bas. La résolution de ces deux problèmes supprime toutes les erreurs du compilateur à l'exception de la "Classe non trouvée" pour Scanner/Alien/World, mais vous pouvez les corriger, espérons-le. Voir http://ideone.com/PNqb2

2

Essayez ceci:

public void setInfo(Alien alien[], String name, String type, int sPosition1, int 
sPosition2, int tPosition1, int tPosition2, int iLifePoints) 

Vous essayez de transmettre une instance spécifique de Alien du tableau, mais Java ne vous laissez pas faire. Lorsque vous appelez setInfo(), accédez simplement à l'instance Alien appropriée et transmettez-la.

En outre, vous devez ajouter plus d'informations sur les erreurs, de préférence la pile.

2

Supprimer "Alien alien [i]" de setInfo. C'est inutilisé. Si vous l'utilisez, alors déterminez ce que c'est. Si c'est un tableau Alien, il devrait être Alien [] alien, s'il s'agit d'un alien unique, il devrait juste être Alien alien. Si c'est l'index dans un tableau d'instance, il devrait juste être étranger à

De plus, utiliser (position1, position2) va devenir très confus. Stick avec rangée, col ou vous allez oublier dans quel ordre ils vont (avis (x, y) et (ligne, col) sont des ordres opposés et (largeur, hauteur) est le même que (x, y))