2016-04-26 51 views
0

我創建了一個簡單遊戲的玩家陣容。我需要在控制檯上顯示它正在播放的內容。我有一個班級「玩家」,我存儲名稱和分數。也是爲每個玩家定義這些值的構造函數。無法弄清楚如何從ArrayList中的索引中的球員只有名稱..如何從僅知道索引ArrayList,Java的對象中獲取一個值?

package Øving5; 

import java.util.ArrayList; 
import java.util.Scanner; 

public class Game { 


    public static void Round() { 
     ArrayList<Player> players = new ArrayList<Player>(); 
     Scanner in = new Scanner(System.in); 
     System.out.print("Write down the number of players: "); 
     int numplayers = in.nextInt(); 

     for (int i = 0; i < numplayers; i++) 
      players.add(new Player()); 

     for (int i = 0; i < numplayers; i++) 
      theplayer = players.get(i); // Don't know what to do here.. 
     System.out.print("It is " + toString(theplayer) + "'s turn."); 

    } 

    public static void main(String[] args) { 

     Round(); 


    } 
} 

回答

0

你所得到的Player對象了ArrayList的,所以就要求它爲它的名字:

for(Player p : players) { 
    System.out.println(p.getName()); 
} 

在這裏,我假設你的玩家類有一個getName()方法返回玩家的名字。

同樣,你可以在一個特定的索引打印球員的名字:

所有的
System.out.println(players.get(2).getName()); 
0

首先您不添加任何信息到您的播放器類。

對於每一個球員,你做

spillerne.add(new Player()); 

它只是創建一個空的類。你必須創建一個類的球員或多或少這樣

class Player { 
    private String name; 
    public Player(String name) { 
    this.name = name; 
    } 

    public String getName() { 
    return this.name 
} 

然後你的代碼變得

for (int i=0; i<numplayers; i++) 
    spillerne.add(new Player("Player " + i)); // Here you can also use user input. This is just an example of giving a name 

for (int i=0; i<numplayers; i++) 
    System.out.print("Det er "+ spillerne.get(i).getName + "sin tur."); 
相關問題