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

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

發現實現炸金花的功能好難,只寫了個簡單的比較大小,請斧正。

package?com.pokergame;

public?class?Poker?implements?Comparable<Poker>?{
	private?String?number;//撲克的點數
	private?String?color;//花色
	private?int?value;
	public?Poker(int?value){
		this.value=value;
		setNumCol();
	}
	
	/**
	?*?102-110代表方片2-10,111-114代表方片J-A
	?*?202-210代表梅花2-10,211-214代表梅花J-A
	?*?302-310代表紅桃2-10,311-314代表紅桃J-A
	?*?402-410代表黑桃2-10,411-414代表黑桃J-A
	?*/
	public?void?setNumCol(){
		switch(value/100){
		case?1:color="方片";
			break;
		case?2:color="梅花";
			break;
		case?3:color="紅桃";
			break;
		case?4:color="黑桃";
		}
		switch(value%100){
		case?2:number="2";
			break;
		case?3:number="3";
			break;
		case?4:number="4";
			break;
		case?5:number="5";
			break;
		case?6:number="6";
			break;
		case?7:number="7";
			break;
		case?8:number="8";
			break;
		case?9:number="9";			
			break;		
		case?10:number="10";
			break;
		case?11:number="J";
			break;
		case?12:number="Q";
			break;
		case?13:number="K";
			break;
		case?14:number="A";
		}
	}
	@Override
	public?int?compareTo(Poker?o)?{//單張牌比較的方法
		//?TODO?Auto-generated?method?stub
		if(value==o.getValue()){
			return?0;
		}
		if(value%100>o.getValue()%100){
			return?1;
		}else?if(value%100<o.getValue()%100){
			return?-1;
		}else{
			if(value/100>o.getValue()/100){
				return?1;
			}else{
				return?-1;
			}
		}

	}

	
	
	/**
	?*?get、set
	?*/
	public?String?getNumber()?{
		return?number;
	}

	public?void?setNumber(String?number)?{
		this.number?=?number;
	}

	public?String?getColor()?{
		return?color;
	}

	public?void?setColor(String?color)?{
		this.color?=?color;
	}

	public?int?getValue()?{
		return?value;
	}

	public?void?setValue(int?value)?{
		this.value?=?value;
	}

	
}
package?com.pokergame;

import?java.util.*;

public?class?Player?{
	private?int?id;
	private?String?name;
	List<Poker>?pokerCatch;

	public?Player(int?id,String?name){
		this.id=id;
		this.name=name;
		pokerCatch=new?ArrayList<Poker>();
	}
	
	/**
	?*?判斷手牌類型的方法
	?*/
	public?void?pokerType(List<Poker>?pokerCatch){
		Collections.sort(pokerCatch);
		//暫時還沒想好。。。
	}
	
	
	/**
	?*?get和set
	?*?@return
	?*/
	public?int?getId()?{
		return?id;
	}
	public?void?setId(int?id)?{
		this.id?=?id;
	}
	public?String?getName()?{
		return?name;
	}
	public?void?setName(String?name)?{
		this.name?=?name;
	}
	public?List<Poker>?getPokerCatch()?{
		return?pokerCatch;
	}
	public?void?setPokerCatch(List<Poker>?pokerCatch)?{
		this.pokerCatch?=?pokerCatch;
	}
	
	
}
package?com.pokergame;


import?java.util.*;

public?class?PokerGame?{
	private?List<Poker>?pokers;
	private?List<Player>?players;
	Scanner?input=new?Scanner(System.in);
	public?PokerGame(){//創建牌組
		pokers=new?ArrayList<Poker>();
		int[]?p={102,103,104,105,106,107,108,109,110,111,112,113,114,
				202,203,204,205,206,207,208,209,210,211,212,213,214,
				302,303,304,305,306,307,308,309,310,311,312,313,314,
				402,403,404,405,406,407,408,409,410,411,412,413,414};
		for(int?i=0;i<52;i++){
			Poker?poke=new?Poker(p[i]);
			pokers.add(poke);
		}
		System.out.println("-------------------牌組創建完畢-------------------");
	}
	/**
	?*?開始游戲
	?*/
	public?void?run(){
		flag:while(true){
			createPlayer();//創建玩家
			System.out.println("-------------------洗牌中-------------------");
			Collections.shuffle(pokers);//洗牌
			distribute();//發牌
			consequence();//比大小
			System.out.println("你想繼續體驗這個精致的游戲嗎?");
			System.out.println("是:?1\t否:?2");
			while(true){
				try{
					int?num=input.nextInt();
					if(num==2){
						break?flag;
					}else?if(num==1){
						break;
					}else{
						System.out.println("您輸入的命令有誤,請重新輸入!");
						input.next();
					}
				}catch(Exception?e){
					System.out.println("您輸入的命令有誤,請重新輸入!");
					input.next();
				}
			}
		}
		System.out.println("游戲愉快,再見。");
	}
	
	/**
	?*?創建玩家
	?*/
	public?void?createPlayer(){
		players=new?ArrayList<Player>();
		for(int?i=0;i<2;i++){
			int?id;
			String?name;
			System.out.println("請輸入玩家的ID:");
			while(true){
				try{
					id=input.nextInt();
					break;
				}catch(Exception?e){
					System.out.println("您輸入的ID有誤,請重新輸入:");
					input.next();
				}
			}
			System.out.println("請輸入玩家的用戶名:");
			while(true){
				try{
					name=input.next();
					break;
				}catch(Exception?e){
					System.out.println("您輸入的用戶名有誤,請重新輸入:");
					input.next();
				}
			}
			players.add(new?Player(id,name));
		}
		System.out.println("-------------------玩家創建完畢!-------------------");
		System.out.println("歡迎玩家"+players.get(0).getId()+":?"+players.get(0).getName());
		System.out.println("歡迎玩家"+players.get(1).getId()+":?"+players.get(1).getName());
	}
	
	/**
	?*?發牌
	?*/
	public?void?distribute(){
		System.out.println("-------------------發牌,請等待-------------------");
		for(int?i=0;i<6;i++){	
			players.get(0).pokerCatch.add(pokers.get(i));
			i++;
			players.get(1).pokerCatch.add(pokers.get(i));
		}
	}
	
	/**
	?*?比大小結束游戲
	?*/
	public?void?consequence(){
		System.out.println("-------------------游戲結束-------------------");
		Collections.sort(players.get(0).pokerCatch);
		Collections.sort(players.get(1).pokerCatch);
		System.out.println("------------"+players.get(0).getId()+"號玩家的牌從小到大依次是:"+"------------");
		for(Poker?poke:players.get(0).pokerCatch){
			System.out.println(poke.getColor()+poke.getNumber());
		}
		System.out.println("------------"+players.get(1).getId()+"號玩家的牌從小到大依次是:"+"------------");
		for(Poker?poke:players.get(1).pokerCatch){
			System.out.println(poke.getColor()+poke.getNumber());
		}
		for(int?i=2;i>=0;i--){
			if(players.get(0).pokerCatch.get(i).compareTo(players.get(1).pokerCatch.get(i))>0){
				System.out.println("獲得勝利的是:"+players.get(0).getName());
				break;
			}else?if(players.get(0).pokerCatch.get(i).compareTo(players.get(1).pokerCatch.get(i))<0){
				System.out.println("獲得勝利的是:"+players.get(1).getName());
				break;
			}else{
				if(i>0){
					continue;
				}else{
					System.out.println("兩家一樣大,請重新比過。");
				}
			}
		}
	}
	
	public?static?void?main(String[]?args)?{
		System.out.println("*********歡迎來到不完整版炸金花!*********");
		PokerGame?pokerGame=new?PokerGame();
		pokerGame.run();

	}

}


正在回答

2 回答

不可能用兩家一樣大的吧,

0 回復 有任何疑惑可以回復我~

寫的很好了,學習了!btw,不會玩炸金花,所以幫不到你了。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

發現實現炸金花的功能好難,只寫了個簡單的比較大小,請斧正。

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

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

幫助反饋 APP下載

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

公眾號

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