2010-12-06 38 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)相同)