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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

有那位大神能奉獻(xiàn)出一套撲克牌的代碼嗎

1-3季內(nèi)容的知識(shí),一套完整的代碼

謝謝各位大神

正在回答

6 回答

Card.java
package?com.jiang.cards;

//要比較卡牌的大小,所以要添加比較方法
public?class?Card?implements?Comparable<Card>?{

	public?String?suit;
	//花色
	public?String?number;
	//點(diǎn)數(shù)
	Card(String?suit,?String?number){
		this.suit=suit;
		this.number=number;
	}
	
	//展示卡牌信息用
	public?String?toString(){
		return?suit+number;
	}
	
	//實(shí)現(xiàn)比較方法
	public?int?compareTo(Card?c){
		if(this.getNumberNum()==c.getNumberNum())
			return?this.getSuitNum()-c.getSuitNum();
		else?return?this.getNumberNum()-c.getNumberNum();
	}
	
	//獲取點(diǎn)數(shù)排序
	public?int?getNumberNum(){
		String[]?numbers={"2","3","4","5","6","7","8","9","10",?"J","Q","K","A"};
		for(int?i=0;i<numbers.length;i++){
			if(numbers[i].equals(number))
				return?i;
		}
		return?-1;
	}

	//獲取花色排序
	public?int?getSuitNum(){
		String[]?suits={"黑桃","紅桃","梅花","方片"};
		for(int?i=0;i<suits.length;i++){
			if(suits[i].equals(suit))
				return?i;
		}
		return?-1;
	}
}

Player.java
package?com.jiang.cards;

import?java.util.ArrayList;
import?java.util.List;

//用戶類,為了防止ID重復(fù),重寫了equals,這樣可以調(diào)用contains判斷
public?class?Player?{
	
	public?String?id;
	public?String?name;
	public?List<Card>?cards;
	Player(String?id,?String?name){
		this.id=id;?this.name=name;
		cards=new?ArrayList<Card>();
	}
	public?void?setCards(Card?c){
		cards.add(c);
	}
	//重寫toString只是為了寫程序的時(shí)候測(cè)試用著方便
	public?String?toString(){
		return?"Name:"+name;
	}
	public?boolean?equals(Object?o){
		if(this==o)
			return?true;
		if(o==null)
			return?false;
		if(!(o?instanceof?Player))
			return?false;
		Player?p=(Player)o;
		return?id.equals(p.id);
	}
}

Game.java
package?com.jiang.cards;

import?java.util.ArrayList;
import?java.util.Collections;
import?java.util.InputMismatchException;
import?java.util.List;
import?java.util.Random;
import?java.util.Scanner;

public?class?Game?{
	
	private?List<Card>?cards;
	private?List<Player>?players;
	Game(){
		cards=new?ArrayList<Card>();
		players=new?ArrayList<Player>();
	}
	//初始化卡牌?
	public?void?setCards(){
		System.out.println("-----------創(chuàng)建撲克牌--------------");
		String[]?suits={"黑桃","紅桃","梅花","方片"};//花色?
		String[]?numbers={"2","3","4","5","6","7","8","9","10",?"J","Q","K","A"};//點(diǎn)數(shù)?
		for(int?i=0;i<suits.length;i++){
			for(int?j=0;j<numbers.length;j++){
				cards.add(new?Card(suits[i],numbers[j]));
			}
		}
		System.out.println("-----------撲克牌創(chuàng)建成功!--------------");
		System.out.println(cards);
	}
	//洗牌,第一個(gè)對(duì)象插入隨機(jī)位置
	public?void?shuffle(){
		System.out.println("-----------開(kāi)始洗牌!--------------");
		Random?random=new?Random();
		for(int?i=0;i<cards.size();i++){
			//洗牌次數(shù)我隨便設(shè)的,沒(méi)有科學(xué)依據(jù)?
			Card?c=cards.get(0);
			//獲取第一個(gè)元素
			cards.add(random.nextInt(cards.size()),c);
			//將第一個(gè)元素再次添加在任意位置?
			cards.remove(0);
			//移除第一個(gè)元素
		}
		System.out.println("-----------洗牌結(jié)束!--------------");
		//System.out.println(cards);?}
	}
	//初始化玩家2人
	public?void?setPlayers(){
		Scanner?in=new?Scanner(System.in);
		int?i=1;
		do{
			System.out.println("請(qǐng)輸入第"+i+"位玩家的ID和姓名:");
			while(true){
				try{
					System.out.println("請(qǐng)輸入ID:");
					int?id=in.nextInt();
					if(players.contains(new?Player(id+"",null)))
						throw?new?Exception();
					//ID已存在,拋出異常?System.out.println("請(qǐng)輸入玩家姓名:");
					System.out.println("請(qǐng)輸入姓名:");
					String?name=in.next();
					players.add(new?Player(id+"",name));
					break;
					//新建信息成功,跳出循環(huán)
				}catch(InputMismatchException?e){
					in=new?Scanner(System.in);
					//這個(gè)必須有,不然就是死循環(huán)了
					System.out.println("請(qǐng)輸入整數(shù)類型的ID!");
				}catch(Exception?e){
					System.out.println("該ID已存在,請(qǐng)重新輸入!");
				}
			}
				i++;
		}while(i<3);
		for(int?j=0;j<players.size();j++){
			System.out.println("---歡迎玩家:"+players.get(j).name);
		}
	}
		
	//發(fā)牌
	public?void?dealCards(){
		System.out.println("-----------開(kāi)始發(fā)牌!--------------");
		for(int?i=0;i<2;i++){//每人發(fā)牌數(shù)i
			for(int?j=0;j<players.size();j++){//玩家數(shù)j
				System.out.println("---玩家"+players.get(j).name+"-拿牌");
				players.get(j).setCards(cards.get(0));?cards.remove(0);
			}?
		}
		System.out.println("-----------發(fā)牌結(jié)束!--------------");
	}
	
	//比較卡牌大小
	public?void?playCards(){
		System.out.println("-----------游戲開(kāi)始!--------------");
		for(int?i=0;i<players.size();i++){
			Collections.sort(players.get(i).cards);
			System.out.println("玩家:"+players.get(i).name+"最大的手牌為"+players.get(i).cards.get(1));
			int?judge=players.get(0).cards.get(1).compareTo(players.get(1).cards.get(1));
			String?name=judge>0???players.get(0).name:players.get(1).name;
			//條件語(yǔ)句,相當(dāng)于if...else
			System.out.println("-----------玩家:"+name+"獲勝!--------------");
		}
	}

	//展示手牌?
	public?void?showCards(){
		System.out.println("-----------玩家手牌展示--------------");
		System.out.println(players.get(0)+""+players.get(0).cards);
		System.out.println(players.get(1)+""+players.get(1).cards);
	}

}

PlayCard.java
package?com.jiang.cards;

public?class?PlayCard?{
	
	public?static?void?main(String[]?args)?{
		Game?gm=new?Game();
		gm.setCards();//獲取卡牌
		gm.shuffle();//洗牌
		gm.setPlayers();//獲取用戶
		gm.dealCards();//發(fā)牌
		gm.playCards();//開(kāi)始游戲
		gm.showCards();//展示卡牌

	}

}
1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

鄧一格 提問(wèn)者

謝謝兄臺(tái)
2017-11-15 回復(fù) 有任何疑惑可以回復(fù)我~
#2

慕蓋茨6838563

判斷誰(shuí)獲勝應(yīng)該在for循環(huán)的外面吧?
2018-07-09 回復(fù) 有任何疑惑可以回復(fù)我~

沒(méi)有名字重復(fù)的try'catch語(yǔ)句啊,少考慮了這種情況把


0 回復(fù) 有任何疑惑可以回復(fù)我~

public void setPlayers()這個(gè)函數(shù)是不是有問(wèn)題呀,為什么我在創(chuàng)建第一個(gè)ID之后再創(chuàng)建ID就顯示該ID已存在,請(qǐng)重新輸入!

0 回復(fù) 有任何疑惑可以回復(fù)我~

大神,要學(xué)多久可以自己敲出這樣的代碼?

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

Jonas1995

只要你肯練,把基礎(chǔ)的知識(shí)點(diǎn)熟練了,這點(diǎn)代碼就要不了多久了
2018-02-05 回復(fù) 有任何疑惑可以回復(fù)我~

public class Card implements Comparable<Card>

//Card下面為什么出現(xiàn)了波浪線

0 回復(fù) 有任何疑惑可以回復(fù)我~

沒(méi)事兒

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

qq_拂面微涼_0

大神,要學(xué)多久可以自己敲出這樣的代碼?
2018-01-23 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
Java入門第三季
  • 參與學(xué)習(xí)       409775    人
  • 解答問(wèn)題       4546    個(gè)

Java中你必須懂得常用技能,不容錯(cuò)過(guò)的精彩,快來(lái)加入吧

進(jìn)入課程

有那位大神能奉獻(xiàn)出一套撲克牌的代碼嗎

我要回答 關(guān)注問(wèn)題
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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