亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

撲克牌游戲-交作業

package?com.imooc.pukepai;
import?java.util.ArrayList;
import?java.util.Collection;
import?java.util.Collections;
import?java.util.HashMap;
import?java.util.HashSet;
import?java.util.InputMismatchException;
import?java.util.List;
import?java.util.Map;
import?java.util.Map.Entry;
import?java.util.Scanner;
import?java.util.Set;
public?class?PuKeTest?{		
?????public?Set<PuKe>??si;	
?????public?List<PuKe>?puke;	
?????public?List<Player>?player;	
?????/**	
?????*?創建一副撲克牌	
?????*/	
????????public?void?creatPuke(){
????????		puke=new?ArrayList<PuKe>();
????????		String[]?li={"2","3","4","5","6","7","8","9","10","J","Q","K","A"};		
????????		String[]?lis={"黑桃","紅桃","方塊","梅花"};		
????????		//創建集合中的對象		
????????		PuKe?pu;		
????????		for(int?i=0;i<lis.length;i++){	
????????			???for(int?j=0;j<li.length;j++){	
????????			???			pu=new?PuKe();				
????????			???			pu.colour=lis[i];				
????????			???			pu.num=li[j];				
????????			???			puke.add(pu);			
????????			}					
????????		}			???
????????		?System.out.println("-------創建撲克牌成功--------");	???	??
????????		??for?(PuKe?p?:?puke)?{		
????????		????System.out.print(p.colour+p.num+"?");	
????????		????}			
???????		}	
???????		/**	
???????		*?洗牌	
???????		*?@return?	
???????		*/	
???????		public?void?xiPai(){
???????				System.out.println("-----開始洗牌------");		
???????				si=new?HashSet<PuKe>();		
???????				PuKe?pu;		
???????				for(int?i=0;i<puke.size();i++){		
???????					pu=new?PuKe();			
???????					pu.colour=puke.get(i).colour;			
???????					pu.num=puke.get(i).num;			
???????					si.add(pu);		
???????				}		
???????				?System.out.println();		
???????				?System.out.println("-------洗牌成功-------");		
???????		for?(PuKe?p?:?si)?{		
???????				System.out.print(p.colour+p.num+"?");			
???????				}
???????							
???????				}	
???????/**	
???????*?創建兩個player	
???????*/	
???????public?void?creatPlayer(int?a){	
????????	System.out.println("--------開始創建玩家--------");	????
????????	player=new?ArrayList<Player>();		
????????	Scanner?sc=new?Scanner(System.in);		
????????	Player?players;		
????????	for(int?i=1;i<=a;i++){		
????????		try?{			
????????			players=new?Player();				
????????			System.out.println("請輸入第"+i+"個人的ID:");				
????????			players.id=sc.nextInt();				
????????			System.out.println("請輸入第"+i+"個人的名字:");				
????????			players.name=sc.next();				
????????			player.add(players);		
????????				}catch(InputMismatchException?e){		
????????			System.out.println("您輸入的ID有誤,請重新輸入!");				
????????			this.creatPlayer(a);		
????????				}catch?(NumberFormatException?e)?{				
????????				//?TODO:?handle?exception				
????????			System.out.println("程序有誤,請重新開始!");		
????????					e.printStackTrace();		
????????					}			
???????		}		
???????		????????System.out.println("這個游戲參加的玩家有"+a+"個人,他們分別是:");	
???????		????????	for?(Player?p?:?player)?{		
???????		????????		System.out.println("玩家:"+p.id+"號"+p.name);	
???????		????????			}		
???????		????????	}	
???????	/**	
???????	*?玩家從洗完牌的集合中獲取撲克牌	
???????	*/	
???????	public?void?getPuke(int?b){	
???????		System.out.println("---------獲取"+b+"張手牌--------");		
???????		List<PuKe>?puk=new?ArrayList<PuKe>();		
???????		puk.addAll(si);
???????		//		for?(PuKe?puKe?:?puk)?{
???????		//			System.out.print(puKe.colour+puKe.num+"?");
???????		//		}		
???????		???int?c=player.size();		
???????		???List<PuKe>?ps;		
???????		???for(int?i=0;i<c;i++){			
???????		???ps=new?ArrayList<PuKe>();			
???????		???player.get(i).pukes=new?ArrayList<PuKe>();			
???????		???System.out.println("玩家"+player.get(i).name+"選的牌為:");			
???????		???	for(int?j=0;j<b;j++){		
???????		???			ps.add(puk.get(i+j*c));				
???????		???			System.out.print(puk.get(i+j*c).colour+puk.get(i+j*c).num+"");	
???????		?		}		
???????		?			System.out.println();		
???????		?			????player.get(i).pukes.addAll(ps);
???????		//		????for?(PuKe?puKe?:?player.get(i).pukes)?{
???????		//				System.out.println(puKe.colour+puKe.num+"");
???????		//			}	
???????			}		
???????	}???
???????	?/**???
???????	???*?將玩家的撲克牌進行比較??
???????	???*/	
???????	????public?void?vsMax(){	
???????	????	System.out.println("-------開始進行比較------");
???????	????	//		player=new?ArrayList<Player>();		
???????	????	Map<String,PuKe>?map=new?HashMap<String,PuKe>();		
???????	????	List<PuKe>?lis=new?ArrayList<PuKe>();		
???????	????	for(int?i=0;i<player.size();i++){		
???????	????		int?b=player.get(i).pukes.size();			
???????	????		Collections.sort(player.get(i).pukes,new?CardComparator());			
???????	????		System.out.println(player.get(i).name+"的最大牌為:"+player.get(i).pukes.get(b-1));	
???????	????		lis.add(player.get(i).pukes.get(b-1));			
???????	????		map.put(player.get(i).name,?player.get(i).pukes.get(b-1));	
???????	????	}		
???????	????	//對各個人的最大值進行整合排序		
???????	????	Collections.sort(lis,new?CardComparator());		
???????	????	int?c=lis.size();		
???????	????	Set<Entry<String,PuKe>>?entrySet=map.entrySet();		
???????	????	for(Entry<String,PuKe>?entry:entrySet){		
???????	????		if(entry.getValue().equals(lis.get(c-1))){		
???????	????				System.out.println(entry.getKey()+"獲得了勝利!其最大值為:"+entry.getValue());	
???????	????					}	
???????	????			}		
???????	???	}	
???????	?/**	
???????	?*?@param?args	
???????	?*/	
???????	?public?static?void?main(String[]?args)?{	
???????	?	//?TODO?Auto-generated?method?stub				
???????	?	PuKeTest?pt=new?PuKeTest();		
???????	?	pt.creatPuke();		
???????	?	pt.xiPai();		
???????	?	pt.creatPlayer(3);	???
???????	?	?pt.getPuke(4);	????
???????	?	?pt.vsMax();	
???????	?	?
???????	?	?}
???????	?	?}
???????	?	?
???????	?	?
package?com.imooc.pukepai;
????public?class?PuKe?{
????	public?String?colour;	
????	public?String?num;	
????public?PuKe(){		
????
????	}????
????public?PuKe(String?colour,String?num){??
??????	this.colour=colour;????	
??????	this.num=num;???
??????	?}	
?????@Override	
????public?int?hashCode()?{	
????	final?int?prime?=?31;		
????	int?result?=?1;		
????	result?=?prime?*?result?+?((colour?==?null)???0?:?colour.hashCode());		
????	result?=?prime?*?result?+?((num?==?null)???0?:?num.hashCode());		
????	return?result;
????		}	
????@Override	
????public?boolean?equals(Object?obj)?{	
????	if?(this?==?obj)			
????	return?true;		
????	if?(obj?==?null)			
????	return?false;		
????	if?(!(obj?instanceof?PuKe))			
????	return?false;		
????	PuKe?other?=?(PuKe)?obj;		
????	if?(colour?==?null)?{			
????	if?(other.colour?!=?null)				
????	return?false;		
????	??}?else?if?(!colour.equals(other.colour))		
????	??	return?false;		
????	??	if?(num?==?null)?{			
????	??	if?(other.num?!=?null)				
????	??	return?false;		
????	??	}?else?if?(!num.equals(other.num))		
????	??		return?false;		return?true;
????	??	}	
????@Override	
????public?String?toString()?{		
????????return?colour+num;	
????????}	??
??????????}
??????????
package?com.imooc.pukepai;
import?java.util.List;
???public?class?Player?{	
???	public?String?name;	
???	public?int?id;????
???	public?List<PuKe>?pukes;	
???	}
???	
package?com.imooc.pukepai;
import?java.util.Comparator;
???public?class?CardComparator?implements?Comparator<PuKe>?{	
???@Override	
???public?int?compare(PuKe?o1,?PuKe?o2)?{	
???	//?TODO?Auto-generated?method?stub		
???	if(o1.num.equals(o2.num)){		
???		return?o1.colour.compareTo(o2.colour);		
???		}else{		
???			return?o1.num.compareTo(o2.num);	
???		}	
???		}
???		}

寫的頭蒙

正在回答

舉報

0/150
提交
取消
Java入門第三季
  • 參與學習       409767    人
  • 解答問題       4543    個

Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧

進入課程

撲克牌游戲-交作業

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號