在 realpokeToSelect.add(temp);這句代碼中,為何我輸出的temp.number一直都是A?
package SPG;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class SimplePokeGame {
public void testcreatpoke(){
List<Poke> temppokeToSelect= new ArrayList<Poke>();
List<Poke> realpokeToSelect= new ArrayList<Poke>();
String[] x={"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
System.out.println("----------創(chuàng)建撲克牌-------------");
? ?Poke[] poke={new Poke("黑桃",""),new Poke("紅桃",""),new Poke("梅花",""),new Poke("方塊","")};
? ?temppokeToSelect.addAll(Arrays.asList(poke));
? ?Poke temp=new Poke();
? ?for(int i=0;i<4;i++){
? ? temp= temppokeToSelect.get(i);
for(int k=0;k<13;k++){
? temp.number=x[k];
? System.out.println(temp.number);
? System.out.println("撲克牌為:"+temp.color+temp.number);
? ? ? realpokeToSelect.add(temp);
}
}
? ?Poke a= realpokeToSelect.get(0);
? ?Poke b= realpokeToSelect.get(1);
? ?Poke c= realpokeToSelect.get(2);
? ?System.out.println(a.number+":"+b.number+":"+c.number);
? ?System.out.println("---------撲克牌創(chuàng)建成功------------");
? ?for (Poke poke2 : realpokeToSelect) {
System.out.println("撲克牌為:"+poke2.color+poke2.number);
}
// ? ?System.out.println();
? ?}
public static void main(String[] args) {
? ? ? ? SimplePokeGame it = new SimplePokeGame();
? ? ? ? it.testcreatpoke();
}
2016-03-06
不妨試試改realpokeToSelect.add(temp);為?realpokeToSelect.add(new Poke(temp.color,temp.number));
2016-04-11
你這種定義方式很麻煩.對于撲克牌這個對象,其實最簡單的就是分ID,數(shù)值,花色這三個屬性.ID負責用來判斷牌面的大小,花色和數(shù)值就正常.創(chuàng)建起來就很簡單.
String str[]={"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
for (int i = 0; i < str.length; i++) {
Poker pkbm=new Poker(i*4,str[i],"梅花");
Poker pkrf=new Poker(i*4+1,str[i],"方片");
Poker pkrh=new Poker(i*4+2,str[i],"紅桃");
Poker pkbh=new Poker(i*4+3,str[i],"黑桃");
? ?pkList.add(pkrh);
? ? pkList.add(pkrf);
? ? pkList.add(pkbh);
? ? pkList.add(pkbm);
}
System.out.println("創(chuàng)建一副撲克牌,成功!");