public class Game {
private ArrayList<Player> players;
private ArrayList<Card> deck;
private ArrayList<Card> pool;
**private ArrayList<Capture> capture;**
private int currentPlayer;
private int playDirection;
int index;
int count = 0;
int passNo = 0;
Scanner input = new Scanner(System.in);
Scanner input2 = new Scanner(System.in);
Scanner input3 = new Scanner(System.in);
public Game()
{
deck = new ArrayList<Card>();
pool = new ArrayList<Card>();
capture = new ArrayList<Capture>();
for(int c=0; c<4; c++){
for(int i=0; i<13; i++){
deck.add(new Card(c,i));
}
Collections.shuffle(deck);
}
}
public Player play() {
Player player = getCurrentPlayer();
int pass = -1;
int option =0;
int count =0;
boolean play = false;
boolean check = true;
capture = new ArrayList<Capture>();
System.out.println();
System.out.println(player + ":" + player.getCards());
do{
System.out.println("Please select an option: ((1) Capture (2) Discard a card)");
option = input2.nextInt();
play=player.isPlayable();
switch(option)
{
case 1:
if(play == true){
System.out.print("HandCard:" + player.getCards());
System.out.print(" Choose a Number from 0 to " + (player.getCards().size()-1)+ " : ");
int num = input.nextInt();
player.getCards().remove(num);
//after prompting user for entering the cards they wanted
//the following sentence has following error
**capture.add(player.getCards().get(num));**
//"The method add(Capture) in the type ArrayList<Capture> is
//not applicable for the arguments (Card)"
System.out.print("How many card you want capture from pool: (Choose 1 number from 1 to " + pool.size()+ ")" + " : ");
option = input.nextInt();
System.out.println("Please choose your card in the pool:");
System.out.println("Pool");
for(int j=0; j<pool.size(); j++)
{
System.out.print("(" + j + ")" + pool.get(j) + " ");
}
for(int i=0; i<option;i++)
{
count = input.nextInt();
System.out.print(pool.get(count) + " ");
pool.remove(count);
//same problem as the above error
**capture.add(pool.get(count));**
}
System.out.print(player.getCards().get(num) + " is selected");
System.out.println();
System.out.println("=================================================");
check=false;
}
else
System.out.println("Invalid Capture, Please choose either (1) Capture or (2) Discard a Card");
break;
case 2:
if(play == true){
Card discard = player.cardDiscard();
System.out.println(discard + " has been added to pool");
pool.add(discard);
player.removeCard(discard);
check=false;
}
else
System.out.println("Invalid Capture Please choose either (1) Capture or (2) Discard a Card");
break;
default:
System.out.println("Invalid option choose");
}
}while(check);
if(pass==currentPlayer)
{
passNo++;
}
else{
passNo = 0;
}
if(player.getCards().size() == 0){
int i = 1;
int [] point = new int[players.size()+1];
point[0] = 100;
int lowest = 0;
System.out.println();
for(Player p : players){
System.out.println(p + ":" + p.getTotalScores() + " points");
point[i] = p.getTotalScores();
if(point[i] < point[i-1]){
lowest = point[i];
}
i++;
}
for(Player p:players){
if(p.getTotalScores()==lowest)
{
player = p;
}
}
return player;
}
goToNextPlayer();
System.out.println();
System.out.println("=========================================================================");
System.out.println("Pool");
for(int i=0; i<pool.size(); i++)
System.out.print("(" + i + ")" + pool.get(i) + " ");
return null;
}
//捕獲類 import java.util.ArrayList;另一個arraylist到另一個不同類型的arraylist
public abstract class Capture {
private static ArrayList<Capture> capture;
private static ArrayList<Card> card;
boolean result = false;
public Capture()
{
// leave bank
}
// this part is the functions that hv to implement in pair , run , combo class
public abstract boolean formCapture(ArrayList<Capture> c);
public abstract double getScore();
public abstract void showMessage();}
對不起,長職位,但我的問題就出在部分評論中,出現錯誤讓我無法給玩家手牌和游泳池卡添加到ArrayList<Capture> Capture
名單,但不能刪除這個名單,因爲它是被另一個類用於檢測其他子類使用的其他特徵。我如何解決錯誤並將ArrayList捕獲添加到新的類型數組列表中?
**編輯,採集類已被添加,但還
'Capture'和'Card'之間的關係是什麼? – shmosel
您只能添加帶有Capture成員函數的列表。 –
Omore
你想添加Card descendats到ArrayList?捕獲Capture的後代嗎?因爲您可以將這樣的對象添加到類型符合的泛型列表(它們具有共同的祖先或通用接口)到列表項類型中。 –