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

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

交作業(yè)~~~

交作業(yè)!~~~

package?gameEzPoker;
/**
?*?此為撲克牌類,定義撲克牌的屬性:
?*?1.四種花色:黑桃、紅桃、梅花、方片
?*?2.13種點數:2-10,J、Q、K、A,不考慮大小王
?*?@author?sys
?*
?*/
public?class?Poker?{
//定義撲克牌屬性
//花色
private?String?color;
//點數大小
private?String?num;
//構造方法初始化屬性
public?Poker(String?color,String?num){
//初始化類屬性
this.color?=?color;
this.num?=?num;
}
//無參構造方法
public?Poker(){
}
//屬性的getter和setter方法
//獲取color屬性
public?String?getColor()?{
return?color;
}
//修改color屬性
public?void?setColor(String?color)?{
this.color?=?color;
}
//獲取num屬性
public?String?getNum()?{
return?num;
}
//修改num屬性
public?void?setNum(String?num)?{
this.num?=?num;
}
}


package?gameEzPoker;
import?java.util.ArrayList;
import?java.util.List;
/**
?*?玩家類需要具備的屬性:
?*?1.玩家ID
?*?2.玩家姓名
?*?3.玩家所持有的的手牌
?*?@author?sys
?*/
public?class?Player?{
//創(chuàng)建玩家ID屬性
private?String?ID;
//創(chuàng)建玩家名稱屬性
private?String?name;
//創(chuàng)建玩家所持手牌集合
public?List<Poker>?playerPoker;
//構造方法初始化屬性
public?Player(String?ID,String?name){
this.ID?=?ID;
this.name?=?name;
}
public?Player(){
this.playerPoker?=?new?ArrayList<Poker>();
}
//getter和setter方法
//獲取ID屬性
public?String?getID()?{
return?ID;
}
//為ID賦值
public?void?setID(String?iD)?{
ID?=?iD;
}
//獲取name屬性
public?String?getName()?{
return?name;
}
//為name賦值
public?void?setName(String?name)?{
this.name?=?name;
}
}

package?gameEzPoker;
import?java.util.ArrayList;
import?java.util.Arrays;
import?java.util.Collections;
import?java.util.Comparator;
import?java.util.InputMismatchException;
import?java.util.List;
import?java.util.Random;
import?java.util.Scanner;

/**
*??開始游戲
*/
public?class?GameStarter?implements?Comparator<Poker>{
//創(chuàng)建玩家集合
private?List<Player>?player;

//撲克牌集合
private?static?List<Poker>?poker;

//洗牌后的撲克牌集合
private?List<Poker>?pokerAfterShuffle;

//發(fā)牌時臨時存放Poker
private?Poker?getPoker;

//創(chuàng)建Scanner對象
private?static?Scanner?input;

static{//靜態(tài)初始化塊,代碼只需要初始化一次
input?=?new?Scanner(System.in);
//創(chuàng)建一副撲克牌
poker?=?new?ArrayList<Poker>();
//花色
final?String[]?color?={"方片","梅花","紅桃","黑桃"};
//創(chuàng)建撲克牌點數字符串
String?s?=?"2345678910JQKA";
//根據4種不同花色創(chuàng)建點數
System.out.println("--------撲克牌創(chuàng)建中...----------");
for(int?j?=?0;j<4;j++){
for(int?i?=?0;i?<?14;i++){
StringBuilder?s2?=?new?StringBuilder();//接收點數
if(i==8){
s2.append(s.charAt(i));
s2.append(s.charAt(i+1));
poker.add(new?Poker(color[j],s2.toString()));
continue;
}
if(i==9)
continue;
s2.append(s.charAt(i));
poker.add(new?Poker(color[j],s2.toString()));
}
}
//撲克牌集合的另一種創(chuàng)建方法foreach方法
////點數
//final?String[]?num?=?{"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
////花色
//final?String[]?color?={"方片","梅花","紅桃","黑桃"};
//for?(String?str1?:?color)?{
//for?(String?str2?:?num)?{
//Poker?p?=?new?Poker(str1,str2);
//poker.add(p);?
//}
//}

System.out.println("--------撲克牌創(chuàng)建成功!----------");
System.out.print("牌面為:"+"\n"+"[?");
for?(Poker?p?:?poker)?{
System.out.print(p.getColor()+p.getNum()+"?");
}
System.out.println("]");
}
/**
*?構造方法初始化屬性
*/
public?GameStarter(){
this.player?=?new?ArrayList<Player>();
this.pokerAfterShuffle?=?new?ArrayList<Poker>();
this.getPoker?=?new?Poker();
}
/**
*?@param?args
*/
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
GameStarter?gs?=?new?GameStarter();
gs.shuffle();//洗牌
gs.printList();
gs.createPlayers();//添加玩家
gs.dealPoker();
}
/**
*?洗牌方法原理:
*?利用遍歷,使用生成的隨機數字位置,將元素從有序的撲克集合中取出
*?再放入pokerAfterShuffle集合中即可
*?要求:元素不可重復添加
*/
public?void?shuffle(){
//創(chuàng)建Random對象
Random?random?=?new?Random();
Poker?p?=?new?Poker();
System.out.println("---------開始洗牌...---------");
//取出poker中的元素
for(int?i?=?0;i?<?poker.size();i++){
do{
p?=?poker.get(random.nextInt(poker.size()));
}while(pokerAfterShuffle.contains(p));
pokerAfterShuffle.add(p);
}
System.out.println("---------洗牌結束...---------");
}
/**
*?打印輸出List方法
*/
public?void?printList(){
System.out.print("洗牌后:"+"\n"+"[?");
for(Poker?p:pokerAfterShuffle){
System.out.print(p.getColor()+p.getNum()+"?");
}
System.out.println("]");
}
/**
*?創(chuàng)建玩家(兩個)
*?
*/
public?void?createPlayers(){
try{
for(int?i?=?0;i?<?2;?i++){
Player?p?=?new?Player();
//提示輸入玩家ID
System.out.println("請輸入第"+(i+1)+"位玩家的ID:");
System.out.println("請輸入玩家ID:");
p.setID(input.next());
if(p.getID().charAt(0)<'0'||p.getID().charAt(0)>'9')
throw?new?InputMismatchException("輸入有誤!請輸入10以內的整數??!");
System.out.println("請輸入玩家姓名:");
p.setName(input.next());
//System.out.println(player.contains(new?Player(p.getID(),p.getName())));
player.add(p);
}
}catch(InputMismatchException?e){
System.out.println(e.getMessage());
createPlayers();
}
}
/**
*?發(fā)牌并比較牌大小
*/
public?void?dealPoker(){
//提示開始發(fā)牌
System.out.println("---------開始發(fā)牌...---------");
for(int?i?=?0;i?<?2;i++){//控制取牌數
for(int?j?=?0;j?<?2;j++){//控制玩家數
System.out.println("玩家"+player.get(j).getName()+"取牌");
getPoker?=?pokerAfterShuffle.get(2*i+j);
player.get(j).playerPoker.add(getPoker);
System.out.println("牌為:"+player.get(j).playerPoker.get(i).getColor()+
player.get(j).playerPoker.get(i).getNum());
}
}
for(int?i?=?0;i?<?2;i++){//玩家
for(int?j?=?0;j?<?2;j++){//牌數
System.out.println(player.get(i).getName()+":"+
player.get(i).playerPoker.get(j).getColor()+
player.get(i).playerPoker.get(j).getNum());
}
}
System.out.println("---------發(fā)牌結束!---------");
//開始比較牌面大小
Collections.sort(player.get(0).playerPoker,new?GameStarter());
Collections.sort(player.get(1).playerPoker,new?GameStarter());
System.out.println("各自最大的手牌為:"+"\n"+player.get(0).getName()+":"+
player.get(0).playerPoker.get(1).getColor()
+player.get(0).playerPoker.get(1).getNum());
System.out.println(player.get(1).getName()+":"+player.get(1).playerPoker.get(1).getColor()
+player.get(1).playerPoker.get(1).getNum());
System.out.println("---------兩位玩家各持的手牌為---------");
for(int?i?=?0;i?<?2;i++){//玩家
for(int?j?=?0;j?<?2;j++){//牌數
System.out.println(player.get(i).getName()+":"+
player.get(i).playerPoker.get(j).getColor()+
player.get(i).playerPoker.get(j).getNum());
}
}
System.out.println("-------------比較大小------------");
if(compare(player.get(0).playerPoker.get(1),player.get(1).playerPoker.get(1))==1)
System.out.println("玩家"+player.get(0).getName()+"獲勝!");
else
System.out.println("玩家"+player.get(1).getName()+"獲勝!");
System.out.println("---------------游戲結束--------------");
}
@Override
/**
*?用到Collections工具類的sort方法
*?需要重寫comparator方法,對泛型為Poker的List進行排序
*/
public?int?compare(Poker?o1,?Poker?o2)?{
String[]?s?=?{"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
if(Arrays.asList(s).indexOf(o1.getNum())?>?Arrays.asList(s).indexOf(o2.getNum()))
return?1;
else
if(Arrays.asList(s).indexOf(o1.getNum())?==?Arrays.asList(s).indexOf(o2.getNum())){
if(poker.indexOf(o1)?>?poker.indexOf(o2))
return?1;
else
return?-1;
}
else
return?-1;
}
}



正在回答

2 回答

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

getPoker?=?pokerAfterShuffle.get(2*i+j);怎么理解??

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

精慕門7595355 提問者

這個代碼的邏輯就是給兩個玩家交替發(fā)牌
2019-07-19 回復 有任何疑惑可以回復我~

運行結果:

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

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

舉報

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

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

進入課程

交作業(yè)~~~

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

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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