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

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

之前寒假寫的,求批評指正。。不太會寫注釋,代碼比較亂

package?pokergame;

import?java.util.ArrayList;
import?java.util.InputMismatchException;
import?java.util.Iterator;
import?java.util.Random;
import?java.util.Scanner;

//使用int來表示撲克,點數(shù)為2-14,花色為100-400,如104即為方片4
class?Poker{
private?int?color;
private?int?num;
private?int?poker;
private?String?colorString;
private?String?numString;

//設(shè)置撲克的花色和點數(shù)
public?Poker(int?color,int?num)?{
this.color?=?color;
this.num?=?num;
this.poker?=?color*100+num;
}

public?Poker(){

}

//將撲克的花色與點數(shù)提取出來
public?Poker(int?pokerint){
this.num?=?pokerint%100;
this.color?=?pokerint/100;
}

public?int?getPoker()?{
return?poker;
}

//將int表示的撲克轉(zhuǎn)換為字符串
public?String?toStringPoker(int?pokerint){
num?=?pokerint%100;
color?=?pokerint/100;
if?(num?==?11)?{
this.numString?=?"J";
}?else?if?(num?==?12)?{
this.numString?=?"Q";
}else?if?(num?==?13)?{
this.numString?=?"K";
}else?if?(num?==?14)?{
this.numString?=?"A";
}else?{
this.numString?=?num+"";
}
switch?(color)?{
case?1:
this.colorString?=?"方片";
break;
case?2:
this.colorString?=?"梅花";
break;
case?3:
this.colorString?=?"紅桃";
break;
case?4:
this.colorString?=?"黑桃";
break;
}
return?(colorString+numString);
}
}

//玩家類,用來表示玩家
class?Player{
private?int?ID;
private?String?name;
//玩家的手牌集合,用ArrayList來表示
ArrayList<Integer>?poker?=?new?ArrayList<>();?
Poker?pk?=?new?Poker();

//用來存儲玩家最大的手牌
private?int?maxPoker;

public?int?getID()?{
return?ID;
}
public?void?setID(int?iD)?{
ID?=?iD;
}
public?String?getName()?{
return?name;
}
public?void?setName(String?name)?{
this.name?=?name;
}

public?ArrayList<Integer>?getPoker()?{
return?poker;
}

public?void?setPoker(ArrayList<Integer>?poker)?{
this.poker?=?poker;
}

//將玩家的手牌轉(zhuǎn)換為字符串并輸出,index代表玩家的第幾張手牌
public?String?getPokerString(int?index){
return?pk.toStringPoker(poker.get(index));
}

public?int?getMaxPoker()?{
return?maxPoker;
}
public?void?setMaxPoker(int?maxPoker)?{
this.maxPoker?=?maxPoker;
}
}


public?class?PlayGame?{

ArrayList<Integer>?poker;

//用來存放洗牌后的撲克
int?poker1[];

//創(chuàng)建兩個玩家的對象
Player?player1;
Player?player2;

public?PlayGame(){
this.poker?=??new?ArrayList<>();
this.poker1?=?new?int[52];
this.player1?=?new?Player();
this.player2?=?new?Player();
}

//創(chuàng)建一副撲克,將其放在ArrayList集合中
public?void?makePoker(){
for?(int?i?=?1;?i?<=?4;?i++)?{
for?(int?j?=?2;?j?<=?14;?j++)?{
poker.add(new?Poker(i,j).getPoker());
}
}
}

//將創(chuàng)建好的撲克輸出到屏幕上
public?void?getPoker(){
Poker?pk?=?new?Poker();
System.out.print("為:[");
for?(Iterator<Integer>?iterator?=?poker.iterator();?iterator.hasNext();)?{
Integer?integer?=?(Integer)?iterator.next();
System.out.print(pk.toStringPoker(integer)+"?");
}
System.out.println("]");
}

//用來將排序后的ArrayList的撲克打亂順序并放在poker1數(shù)組中
public?void?shuffle(){

//將ArrayList的撲克先全部復(fù)制到poker1數(shù)組中
for?(int?i?=?0;?i?<?poker1.length;?i++)?{
poker1[i]?=?poker.get(i);
}

//打亂poker1中撲克
Random?rd?=?new?Random();
for?(int?i?=?0;?i?<?52;?i++)?{
int?rdnum?=?rd.nextInt(52);
poker1[i]?=?poker1[i]?+?poker1[rdnum];
poker1[rdnum]?=?poker1[i]?-?poker1[rdnum];
poker1[i]?=?poker1[i]?-?poker1[rdnum];
}

}

//用來創(chuàng)建玩家的方法
public?void?makePlayer(Player?player){
int?ID;
System.out.print("輸入ID:");
@SuppressWarnings("resource")
Scanner?scanner?=?new?Scanner(System.in);
while?(true)?{
try?{
if?(scanner.hasNext())?{
ID?=?scanner.nextInt();
player.setID(ID);
}
break;
}?catch?(InputMismatchException?e)?{
scanner.next();
System.out.println("ID應(yīng)該為整數(shù)");
}
}
System.out.print("輸入姓名:");
if?(scanner.hasNext())?{
player.setName(scanner.next());
}
}

//找出一個玩家手中最大的牌
public?String?comparPoker(Player?player){
if?(player.poker.get(0)%100?>?player.poker.get(1)%100)?{
player.setMaxPoker(player.poker.get(0));
return?player.pk.toStringPoker(player.poker.get(0));
}else?if?(player.poker.get(0)%100?<?player.poker.get(1)%100)?{
player.setMaxPoker(player.poker.get(1));
return?player.pk.toStringPoker(player.poker.get(1));
}else?if?(player.poker.get(0)/100?>?player.poker.get(1)/100)?{
player.setMaxPoker(player.poker.get(0));
return?player.pk.toStringPoker(player.poker.get(0));
}else?if?(player.poker.get(0)/100?<?player.poker.get(1)/100)?{
player.setMaxPoker(player.poker.get(1));
return?player.pk.toStringPoker(player.poker.get(1));
}else?{
player.setMaxPoker(player.poker.get(0));
return?player.pk.toStringPoker(player.poker.get(0));
}
}

//將兩個玩家手中最大的牌做比較,找出其中的贏家
public?String?comparPoker(Player?player1,Player?player2){
if?(player1.getMaxPoker()%100?>?player2.getMaxPoker()%100)?{
return?player1.getName();
}else?if?(player1.getMaxPoker()%100?<?player2.getMaxPoker()%100)?{
return?player2.getName();
}else?if?(player1.getMaxPoker()/100?>?player2.getMaxPoker()/100)?{
return?player1.getName();
}else?if?(player1.getMaxPoker()/100?<?player2.getMaxPoker()/100)?{
return?player2.getName();
}else?{
return?"平手";
}
}

public?static?void?main(String[]?args)?{
PlayGame?pg?=?new?PlayGame();
System.out.println("----------創(chuàng)建一副撲克牌----------");
pg.makePoker();?
System.out.println("----------撲克牌創(chuàng)建成功---------");
pg.getPoker();
System.out.println("--------開始洗牌---------");
pg.shuffle();
System.out.println("--------洗牌結(jié)束---------");
System.out.println("--------創(chuàng)建玩家---------");
System.out.println("請輸入第一位玩家的ID和姓名:");
pg.makePlayer(pg.player1);
System.out.println("請輸入第二位玩家的ID和姓名:");
pg.makePlayer(pg.player2);
System.out.println("\n歡迎玩家"+pg.player1.getName());
System.out.println("歡迎玩家"+pg.player2.getName());
System.out.println("\n--------開始發(fā)牌---------");
pg.player1.poker.add(pg.poker1[0]);
System.out.println("玩家"+pg.player1.getName()+"拿牌");
pg.player2.poker.add(pg.poker1[1]);
System.out.println("玩家"+pg.player2.getName()+"拿牌");
pg.player1.poker.add(pg.poker1[2]);
System.out.println("玩家"+pg.player1.getName()+"拿牌");
pg.player2.poker.add(pg.poker1[3]);
System.out.println("玩家"+pg.player2.getName()+"拿牌");
System.out.println("--------發(fā)牌結(jié)束----------");
System.out.println("--------開始游戲----------");
System.out.println("玩家"+pg.player1.getName()+"的最大的手牌為"+pg.comparPoker(pg.player1));
System.out.println("玩家"+pg.player2.getName()+"的最大的手牌為"+pg.comparPoker(pg.player2));
String?resultString?=?pg.comparPoker(pg.player1,?pg.player2);
if?(resultString?!=?"平手")?{
System.out.println("----------玩家"+resultString+"獲勝----------");
}else?{
System.out.println("------------平手-------------");
}
System.out.println("玩家各自的手牌為:");
System.out.println(pg.player1.getName()+"["+pg.player1.pk.toStringPoker(pg.player1.poker.get(0))+","+pg.player1.pk.toStringPoker(pg.player1.poker.get(1))+"]");
System.out.println(pg.player2.getName()+"["+pg.player2.pk.toStringPoker(pg.player2.poker.get(0))+","+pg.player2.pk.toStringPoker(pg.player2.poker.get(1))+"]");
}

}


正在回答

1 回答

for?(int?i?=?0;?i?<?4;?i++)?{
????????????if(i%2==0){
????????????System.out.println("玩家"+p1.getName()+"拿牌!");
????????????p1.setMyPoker(pokerList.get(i));
????????????}else{
????????????????System.out.println("玩家"+p2.getName()+"拿牌!");
????????????????p2.setMyPoker(pokerList.get(i));
????????????}
????????}

拿牌那里我覺得這樣寫好點,可擴展性大些,比如要拿10張牌,只需要改 for循環(huán)中 i<10就可以了。? 還有 那個異常處理,直接scanner.next()不會報錯? 我試了一下,我的要報錯。

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

Youngguava 提問者

額。。。異常處理那塊我的電腦上沒有報錯誒。
2015-04-22 回復(fù) 有任何疑惑可以回復(fù)我~
#2

Youngguava 提問者

} catch (InputMismatchException e) { scanner.next(); System.out.println("ID應(yīng)該為整數(shù)"); } 這里面必須得加上這么一句,把之前輸入錯誤的字符吸收掉,不然的話會陷入死循環(huán)。 其實這塊我也覺得可以優(yōu)化下,寒假想了一陣子沒想通,就放那沒管了~~~~
2015-04-22 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

之前寒假寫的,求批評指正。。不太會寫注釋,代碼比較亂

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

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

幫助反饋 APP下載

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

公眾號

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