2010-12-06 68 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; 
    } 
} 

我知道setInfo方法有问题,也可能是在gameSetting方法中。我想从两名球员(外星人)的每一个获得信息。有人可以告诉我该怎么办?Java Game error(Array,this。,methods)

+1

你有什么错误?这是完整的代码吗?我很困惑:( – 2010-12-06 00:45:13

回答

2

一个问题是,你应该删除i在你的setInfo()参数列表中的Alien alien[i]。您可能还想考虑从参数列表中完全删除它,因为您不使用它,或者可能不使用它是另一个需要修复的错误。

您还需要更改变量type1的声明,将其命名为type,因为这就是您在下面几处使用的内容。

修复这两个问题会除去扫描仪/外星人/世界中“未找到类”的所有编译器错误,但您可以修复这些错误。见http://ideone.com/PNqb2

2

试试这个:

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

你正在尝试通过从阵列外国人的具体实例,但Java没有让你这样做。当调用setInfo()时,只需访问适当的Alien实例并将其传递。

另外,您应该添加更多关于错误的信息,最好是stacktrace。

2

从setInfo中删除“Alien alien [i]”。它没有用。如果你正在使用它,然后找出它是什么。如果它是一个外星阵列,它应该是外星人[],如果它是一个单一的外星人,它应该是外星人外星人。如果它是一个实例数组的索引,它应该是int外部的

此外,使用(position1,position2)会变得非常快速地混淆。 (x,y)和(row,col)是相反的顺序,并且(宽度,高度)与(x,y)相同)