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

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

基本實現功能

//PokeGame類

package?com.bae;
import?java.util.ArrayList;
import?java.util.Collections;
import?java.util.List;
import?java.util.Scanner;
public?class?PokeGame?{
	List<Player>?player;	
	List<Card>?cards;	
	Player?p1;????//玩家	
	Player?p2;	
	Card?p1max;???//玩家1最大的牌?????
	Card?p2max;???	
	Card?p1min;???	
	Card?p2min;???//玩家2最小的牌	
	
	//創建撲克牌數組	????
	String[]?CardType=new?String[]?{"方塊","梅花","紅桃","黑桃"};	????
	String[]?CardNum=new?String[]?{"2","3","4","5","6","7","8","9","10","J","Q","K","A"};	????	
	public?void?PokeGame(){
			this.player?=?new?ArrayList<Player>();
			this.cards?=?new?ArrayList<Card>();
				}	????
	
	//創建撲克牌并打印	
	public?void?cardShow(){
			System.out.println("########創建撲克牌########");		
			for(int?i=0;i<13;i++)?{????????????
			for(int?j=0;j<4;j++)?{
			?????????????cards.add(new?Card(CardType[j],CardNum[i],i*10+j));
			}???????
			}
	//遍歷打印撲克牌		
	System.out.println("########撲克牌創建成功########");	????
	System.out.print("撲克牌為:");	????
	for(Card?c:cards){	????	
	System.out.print(c.cardType+c.cardNum+",");		????
	}		
	System.out.println("共52張牌");	}			
	
	//洗牌	
	public?void?washCard(){		
	System.out.println("########開始洗牌########");		
	Collections.shuffle(cards);		
	System.out.println("正在努力地洗洗洗洗,請等待");		
	System.out.println("########結束洗牌########");	}		
	
	//創建玩家
	
	public?void?Players()?{????	?
	//創建一個Scanner對象,用來獲取輸入的玩家ID和姓名		
	Scanner?console?=?new?Scanner(System.in);		
	int?rept?=0;		
	int?i=0;		
	while(i<2){
			System.out.println("請輸入玩家的ID:");
			String?ID?=?null;				
			if(console.hasNextInt()){
						ID?=?console.next();
						for(int?j=0;j<player.size();j++){
						Player?pl?=?player.get(j);
						if(ID.equals(pl.id)){
									rept?=1;							
									System.out.println("id"+pl.id+"重復");							
									}else?rept=0;
									}					
						//rept為0則未被占用
						if(rept==0){						
									//提示輸入玩家姓名						
									System.out.println("請輸入玩家姓名:");						
									String?name?=?console.next();						
									//創建新的玩家對象						
									Player?newPlayer?=?new?Player(ID,?name);						
									//通過調用player的add方法,添加ID-玩家						
									player.add(newPlayer);						
									i++;		????????????
									}else{					
									System.out.println("該玩家ID已被占用");		????????????
									}				
									}else{					
									System.out.println("請輸入整數類型的ID!請重新輸入!");					
									console.next();				}				
						}
			}
	//開始游戲
	public?void?startGame(){		
	//開始發牌		
	System.out.println("########開始發牌########");????????
	p1=?player.get(0);????????
	p2=?player.get(1);		
	p1.handCard.add(cards.get(0));		
	System.out.println("————————————玩家:"+p1.name+"————————拿牌————————————");		
	p2.handCard.add(cards.get(1));		
	System.out.println("————————————玩家:"+p2.name+"————————拿牌————————————");		
	p1.handCard.add(cards.get(2));		
	System.out.println("————————————玩家:"+p1.name+"————————拿牌————————————");
	p2.handCard.add(cards.get(3));		
	System.out.println("————————————玩家:"+p2.name+"————————拿牌————————————");		
	System.out.println("########發牌結束########");				
????????
????????//開始游戲		
????????System.out.println("########開始游戲########");		
????????Collections.sort(p1.handCard);//對集合handCard進行排序		
????????Collections.sort(p2.handCard);		
????????p1max?=?p1.handCard.get(1);		
????????p2max?=?p2.handCard.get(1);		
????????System.out.println(p1.name+"最大的手牌:"+p1max.cardType+p1max.cardNum);???
????????//輸出玩家1的最大手牌		
????????System.out.println(p2.name+"最大的手牌:"+p2max.cardType+p2max.cardNum);???
????????//輸出玩家2的最大手牌		
????????if(p1max.rank>p2max.rank){??
????????System.out.println("————————————!?。。⊥婕?+p1.name+"獲勝?。。?!————————————");
????????}
????????else{
??????????System.out.println("————————————!?。?!玩家"+p2.name+"獲勝!?。?!————————————");??
??????????}	
????????//輸出玩家的手牌
????????System.out.println("########玩家各自的手牌########");		
????????p1min?=?p1.handCard.get(0);		
????????p2min?=?p2.handCard.get(0);		
????????System.out.println(p1.name+":"+p1max.cardType+p1max.cardNum+","+p1min.cardType+p1min.cardNum);		
????????System.out.println(p2.name+":"+p2max.cardType+p2max.cardNum+","+p2min.cardType+p2min.cardNum);	????
????????System.out.println("————————————游戲結束————————————");					}?	public?static?void?main(String[]?args){		PokeGame?pg?=?new?PokeGame();		pg.PokeGame();		pg.cardShow();		pg.washCard();		pg.Players();		pg.startGame();	}			}
//Card類

package?com.bae;
public?class?Card?implements?Comparable<Card>{
	String?cardType;	
	String?cardNum;	
	int?rank?;	
	public??Card(String?cardType,String?cardNum,int?rank){
			this.cardType?=?cardType;		
			this.cardNum?=?cardNum;		
			this.rank?=?rank;
	}	????
	public?Card(){
	}	??
	
	@Override	
	public?int?compareTo(Card?o)?{	????
	return?this.rank-o.rank;??????
	//比較rank值的大小	
	}
	
}
//Player類

package?com.bae;
import?java.util.ArrayList;
import?java.util.List;
public?class?Player?{	
String?id;	
String?name;	
List<Card>?handCard;

????public??Player(String?id,String?name){
		this.id?=?id;		
		this.name?=?name;		
		handCard?=?new?ArrayList<Card>();	
????}


????public?Player(){
????}
}

怎么判斷輸入的玩家ID不要是負數呢

原本不會判斷牌大小,參考了qq_冰檸檬_3的作業中,設置rank值!

運行結果:

https://img1.sycdn.imooc.com//5bdabda200010a1713780791.jpg

https://img1.sycdn.imooc.com//5bdabdc8000163e213370140.jpg

正在回答

1 回答

如果輸入的值小于0,可以友好提示下ID不能為負數,并且continue一下

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

舉報

0/150
提交
取消

基本實現功能

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

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

幫助反饋 APP下載

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

公眾號

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