通過set列表承載玩家的Key值,最后獲取對應的玩家姓名時不知道該怎么實現! 求高手解答!
package com.imooc.carGame;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
public class PlayGame {
public static void main(String[] args) {
PukeList pukeList=new PukeList();
WanjiaMap wjMap=new WanjiaMap();
pukeList.pukesAdd();
pukeList.pukesPrint();
pukeList.xipai();
pukeList.pukesPrint();
wjMap.wanjiaAdd();
System.out.println("----------開始發牌----------");
int k=0;
Set<Integer> wjIds=wjMap.wanjiaMap.keySet();
for (int i = 0; i < 2; i++) {
for (Integer integer : wjIds) {
System.out.println("----玩家:"+wjMap.wanjiaMap.get(integer).name+"-拿牌");
wjMap.wanjiaMap.get(integer).wjPukes.add(pukeList.pukes.get(k));
k++;
}
}
System.out.println("----------發牌結束----------\n----------開始游戲----------");
Puke maxPuke,pk;
List<Puke> maxPukes=new ArrayList<Puke>();
for (Integer integer : wjIds) {
maxPuke=null;
for (int i = 0; i < 2; i++) {
pk=wjMap.wanjiaMap.get(integer).wjPukes.get(i);
if (maxPuke==null) {
maxPuke=pk;
}else if (maxPuke.compareTo(pk)<0) {
maxPuke=pk;
}
}
System.out.println("玩家:"+wjMap.wanjiaMap.get(integer).name+"最大手牌為:"+maxPuke.huase+maxPuke.dianshu);
maxPukes.add(maxPuke);
}
//maxPukes列表中承載的是2個玩家各自的最大值 //想通過下面的判斷獲得對應的玩家,不知道該怎么操作 //wjMap.wanjiaMap.get(1).name?這里用1,2只有玩家ID輸入的是1和2才能成功。
if (maxPukes.get(0).compareTo(maxPukes.get(1))>0) {
System.out.println("----------玩家:"+wjMap.wanjiaMap.get(1).name+"獲勝!----------");
}else {
System.out.println("----------玩家:"+wjMap.wanjiaMap.get(2).name+"獲勝!----------");
}
System.out.println("玩家各自的手牌為:");
for (Integer integer : wjIds) {
System.out.print("玩家:"+wjMap.wanjiaMap.get(integer).name+":[");
for (int i = 0; i < 2; i++) {
System.out.print(wjMap.wanjiaMap.get(integer).wjPukes.get(i).huase+
wjMap.wanjiaMap.get(integer).wjPukes.get(i).dianshu+",");
}
System.out.println("]");
}
}
}
2016-07-14
這代碼看著頭疼