第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

簡(jiǎn)易撲克牌游戲:求大佬告知為什么調(diào)用同一個(gè)方法,玩家一能獲得最大手牌,玩家二卻不一定。

簡(jiǎn)易撲克牌游戲:求大佬告知為什么調(diào)用同一個(gè)方法,玩家一能獲得最大手牌,玩家二卻不一定。

leexiaoxiao 2017-07-08 10:35:22
package?com.xiaoyuexiaos; import?java.util.ArrayList; import?java.util.List; import?java.util.Random; import?java.util.Scanner; public?class?TestGame?{ //定義一個(gè)List來(lái)存儲(chǔ)撲克牌 public?List<Pukepai>?aPuKePai; public?List<Player>?aPlayer; //初始化List public?TestGame(){ this.aPuKePai?=?new?ArrayList<Pukepai>();? this.aPlayer?=?new?ArrayList<Player>(); } /** ?*?添加撲克牌 ?*?*/ public?void?addPuKePai(){ String[]?PuKePaitype?=?{"黑桃","紅桃","梅花","方片"}; String[]?PuKePaipoints?=?{"2","3","4","5","6","7","8","9","10","J","Q","K","A"}; int?typeSize?=?PuKePaitype.length; int?pointsSize?=?PuKePaipoints.length; for(int?i=0;i<typeSize;i++){ for(int?j=0;j<pointsSize;j++){ Pukepai?one?=?new?Pukepai(PuKePaitype[i],PuKePaipoints[j]); aPuKePai.add(one); //System.out.println("添加了牌:"+?PuKePaitype[i]?+?PuKePaipoints[j]); } } } /** ?*?添加玩家 ?*?*/ public?void?addPlayer(){ Scanner?input?=?new?Scanner(System.in); for(int?i?=?0;?i<2?;?i++){ System.out.println("請(qǐng)輸入玩家id:"); int?id?=?input.nextInt(); System.out.println("請(qǐng)輸入玩家姓名:"); String?name?=?input.next(); List<Pukepai>?handPukepai?=?new?ArrayList<Pukepai>(); Player?p1?=?new?Player(name,id,handPukepai); aPlayer.add(p1); System.out.println("添加了玩家:"?+?p1.getName()); // for(Player?p:aPlayer){ // if(id?==?p.getId()){ // System.out.println("該ID已被占用?。?!"); // i--; // break; // } // else{ // // } // } //System.out.println("請(qǐng)輸入玩家姓名:"); //name?=?input.next(); } input.close(); } /** ?*?洗牌 ?*?*/ public?void?mixPukepai(){ Random?random?=?new?Random(); // System.out.println("洗牌前為:"); // for(Pukepai?p2:aPuKePai){ // System.out.println(p2.getType()+p2.getPoints()); // } for(Pukepai?pkp:aPuKePai){ int?a?=?random.nextInt(52); Pukepai?p1?=?aPuKePai.get(a); aPuKePai.set(a,?pkp); int?index?=?aPuKePai.indexOf(pkp); aPuKePai.set(index,?p1); } // System.out.println("洗牌后為:"); // for(Pukepai?p2:aPuKePai){ // System.out.println(p2.getType()+p2.getPoints()); // } } /** ?*?發(fā)牌 ?*?*/ public?void?givePlayPukepai(){ Player?player1?=?aPlayer.get(0); Player?player2?=?aPlayer.get(1); System.out.println("給玩家"+player1.getName()+"發(fā)第一張牌"); Pukepai?p1?=?aPuKePai.get(0); player1.getHandPukepai().add(p1); System.out.println("給玩家"+player2.getName()+"發(fā)第一張牌"); Pukepai?p2?=?aPuKePai.get(1); player2.getHandPukepai().add(p2); System.out.println("給玩家"+player1.getName()+"發(fā)第二張牌"); Pukepai?p3?=?aPuKePai.get(2); player1.getHandPukepai().add(p3); System.out.println("給玩家"+player2.getName()+"發(fā)第二張牌"); Pukepai?p4?=?aPuKePai.get(1); player2.getHandPukepai().add(p4); System.out.println("發(fā)牌結(jié)束??!"); } /** ?*?得到玩家手中最大的一張手牌 ?*?傳入一個(gè)玩家作為參數(shù) ?*?取得他的手牌 ?*?進(jìn)行比較大小 ?*?*/ public?Pukepai?getMaxHandPukepai(Player?p){ List<Pukepai>?handPukepaiList?=?p.getHandPukepai(); Pukepai?p1?=?handPukepaiList.get(0); Pukepai?p2?=?handPukepaiList.get(1); return?getMaxPukepai(p1,p2); } /** ?*?比較兩張牌誰(shuí)更大 ?*?*/ public?Pukepai?getMaxPukepai(Pukepai?p1,Pukepai?p2){ String[]?PuKePaitype?=?{"方片","梅花","紅桃","黑桃"}; String[]?PuKePaipoints?=?{"2","3","4","5","6","7","8","9","10","J","Q","K","A"}; int?indexType1?=?0; int?indexType2?=?0; int?indexPoint1?=?0; int?indexPoint2?=?0; //得到手牌Points對(duì)應(yīng)的索引 for(int?i?=0;i<PuKePaipoints.length;i++){ if(p1.getPoints()==PuKePaipoints[i]){ indexPoint1?=?i; } if(p2.getPoints()==PuKePaipoints[i]){ indexPoint2?=?i?; } } //得到手牌type對(duì)應(yīng)的索引 for(int?i?=0;i<PuKePaitype.length;i++){ if(p1.getType()==PuKePaitype[i]){ indexType1?=?i; } if(p2.getType()==PuKePaitype[i]){ indexType2?=?i?; } } //先進(jìn)行大小的比較如果大小一樣就進(jìn)行類型的比較 if(indexPoint1>indexPoint2){ return?p1; } else?if(indexPoint1<indexPoint2){ return?p2; } else//類型的比較 { if(indexType1>indexType2){ return?p1; } else{ return?p2; } } } /** ?*?比較大小游戲開(kāi)始 ?*?*/ public?void?playGame(){ System.out.println("開(kāi)始游戲!"); //得到添加的兩個(gè)玩家 Player?player1?=?aPlayer.get(0); Player?player2?=?aPlayer.get(1); //輸出他們手中的撲克牌 System.out.println(player1.getName()+"獲得了"+aPuKePai.get(0).getTypeAndPoints()+ "和"+aPuKePai.get(2).getTypeAndPoints()); System.out.println(player2.getName()+"獲得了"+aPuKePai.get(1).getTypeAndPoints()+ "和"+aPuKePai.get(3).getTypeAndPoints()); //獲得他們手中最大的一張 Pukepai?max1?=?getMaxHandPukepai(player1); Pukepai?max2?=?getMaxHandPukepai(player2); //分別輸出最大的一張 System.out.println("玩家"+player1.getName()+"最大的手牌為:"+ max1.getType()+max1.getPoints()); System.out.println("玩家"+player2.getName()+"最大的手牌為:"+ max2.getType()+max2.getPoints()); Pukepai?max12?=?getMaxPukepai(max1,max2); if(max12.getPoints()==max1.getPoints()&&?max12.getType()==max1.getType()){ System.out.println("-----恭喜玩家"+player1.getName()+"獲得勝利?。?!-----"); } else{ System.out.println("-----恭喜玩家"+player2.getName()+"獲得勝利?。?!-----"); } } public?static?void?main(String[]?args)?{ //?TODO?Auto-generated?method?stub TestGame?tg?=?new?TestGame(); tg.addPuKePai(); tg.addPlayer(); tg.mixPukepai(); tg.givePlayPukepai(); tg.playGame(); } } //玩家類 package?com.xiaoyuexiaos; import?java.util.ArrayList; import?java.util.List; public?class?Player?{ private?String?name; private?int?id; private?List<Pukepai>?handPukepai; public?Player(String?name,int?id,List<Pukepai>?handPukepai){ this.name?=?name; this.id?=?id; this.handPukepai?=?new?ArrayList<Pukepai>(); } public?String?getName()?{ return?name; } public?void?setName(String?name)?{ this.name?=?name; } public?int?getId()?{ return?id; } public?void?setId(int?id)?{ this.id?=?id; } public?List<Pukepai>?getHandPukepai()?{ return?handPukepai; } public?void?setHandPukepai(List<Pukepai>?handPukepai)?{ this.handPukepai?=?handPukepai; } } //撲克牌類 package?com.xiaoyuexiaos; public?class?Pukepai?implements?Comparable<Pukepai>{ private?String?type; private?String?points; public?Pukepai(){} public?Pukepai(String?type,String?points){ this.type?=?type; this.points?=points; } public?int?compareTo(Pukepai?o){ return?this.getPoints().compareTo(o.getPoints()); } public?String?getType()?{ return?type; } public?void?setType(String?type)?{ this.type?=?type; } public?String?getPoints()?{ return?points; } public?void?setPoints(String?points)?{ this.points?=?points; } public?String?getTypeAndPoints(){ return?type?+?points; } }
查看完整描述

1 回答

?
MR帽子先生

TA貢獻(xiàn)245條經(jīng)驗(yàn) 獲得超106個(gè)贊

如果你值得是一次運(yùn)行的話是因?yàn)橥婕乙幌冗\(yùn)行的緣故,所以導(dǎo)致提前獲取數(shù)字,雖然兩者獲取同一個(gè)數(shù)的概率是一樣的,倒是由于程序中的優(yōu)先執(zhí)行順序?qū)е碌谝晃煌婕耀@取的是最大值。第二位玩家執(zhí)行的時(shí)候應(yīng)為數(shù)字已經(jīng)不夠了所以就沒(méi)有了。

查看完整回答
反對(duì) 回復(fù) 2017-07-08
  • 1 回答
  • 1 關(guān)注
  • 1253 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)