package?com.poker;
public?class?Poker?implements?Comparable<Poker>?{
private?String?type;
????private?String?num;
????public?Poker(String?type?,String?num){
this.setType(type);
this.setNum(num);
}
public?String?getType()?{
return?type;
}
public?void?setType(String?type)?{
this.type?=?type;
}
public?String?getNum()?{
return?num;
}
public?void?setNum(String?num)?{
this.num?=?num;
}
@Override
public?int?hashCode()?{
final?int?prime?=?31;
int?result?=?1;
result?=?prime?*?result?+?((num?==?null)???0?:?num.hashCode());
result?=?prime?*?result?+?((type?==?null)???0?:?type.hashCode());
return?result;
}
@Override
public?boolean?equals(Object?obj)?{
if?(this?==?obj)
return?true;
if?(obj?==?null)
return?false;
if?(getClass()?!=?obj.getClass())
return?false;
Poker?other?=?(Poker)?obj;
if?(num?==?null)?{
if?(other.num?!=?null)
return?false;
}?else?if?(!num.equals(other.num))
return?false;
if?(type?==?null)?{
if?(other.type?!=?null)
return?false;
}?else?if?(!type.equals(other.type))
return?false;
return?true;
}
@Override
public?int?compareTo(Poker?o)?{
String?pokernum="2,3,4,5,6,7,8,9,10,J,Q,K,A";
String?pokertype="方塊,梅花,紅桃,黑桃";
int?result;
result=pokernum.indexOf(this.getNum())-pokernum.indexOf(o.getNum());
if(result==0){
result=pokertype.indexOf(this.getType())-pokertype.indexOf(o.getType());
}
return?result;
}
}
package?com.poker;
public?class?Player?{
private?String?ID;
private?String?name;
public?Poker?handpoker;
public?Player(String?ID,String?name){
this.ID=ID;
this.name=name;
}
public?String?getID()?{
return?ID;
}
public?void?setID(String?iD)?{
ID?=?iD;
}
public?String?getName()?{
return?name;
}
public?void?setName(String?name)?{
this.name?=?name;
}
}
package?com.poker;
import?java.util.ArrayList;
import?java.util.Collection;
import?java.util.Collections;
import?java.util.HashMap;
import?java.util.Iterator;
import?java.util.List;
import?java.util.Map;
import?java.util.Scanner;
public?class?Gameplay?{
List<Poker>pokerlist=new?ArrayList<Poker>();
List<Player>playerlist=new?ArrayList<Player>();
List<Poker>player1handpoker=new?ArrayList<Poker>();
List<Poker>player2handpoker=new?ArrayList<Poker>();
String[]type={"方塊","梅花","紅桃","黑桃"};
String[]point={"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
/**
?*?首先創(chuàng)建的是一副撲克牌
?*/
public?void?creatPoker(){
System.out.println("開始創(chuàng)建撲克牌");
for(int?i=0;i<type.length;i++){
for(int?j=0;j<point.length;j++){
pokerlist.add(new?Poker(type[i],point[j]));
}
}
System.out.println("撲克牌創(chuàng)建成功");
}
/**
?*?檢驗(yàn)撲克牌是否完成
?*/
public?void?testCreatPoker(){
for(Poker?pk:pokerlist){
System.out.println("有如下牌:"+pk.getType()+pk.getNum()+"?");}
}
/**
?*?然后是創(chuàng)建2個(gè)玩家
?*/
public?void?creatPlayer(){
for(int?n=0;n<2;n++){
System.out.println("請(qǐng)輸入玩家ID");
String?playerID=new?Scanner(System.in).next();
System.out.println("請(qǐng)輸入玩家姓名");
String?playerName=new?Scanner(System.in).next();
playerlist.add(new?Player(playerID,playerName));
}
System.out.println("玩家添加成功!"+"現(xiàn)有玩家是:");
for(Player?player:playerlist){
System.out.println(player.getID()+":"+player.getName());
}
}
/**
?*?接下來的步驟是洗牌
?*/
public?void?shufflepoker(){
System.out.println("開始洗牌咯~~"+"?????.....");
Collections.shuffle(pokerlist);
System.out.println("洗牌完成!");
}
/**
?*?下面是發(fā)牌步驟
?*/
public?void?deliverPoker(){
System.out.println("開始發(fā)牌!");
for(int?i=0;i<4;i++){
Poker?newpoker=pokerlist.get(i);
if(i%2!=0){
player1handpoker.add(newpoker);
System.out.println("玩家1抓了一張牌");
}else
{
player2handpoker.add(newpoker);
System.out.println("玩家2抓了一張牌");
}
}
for(Poker?Poker1:player1handpoker){
System.out.println(playerlist.get(0).getName()+"手里的牌是"
+Poker1.getType()+Poker1.getNum());
}
for(Poker?Poker2:player2handpoker){
System.out.println(playerlist.get(1).getName()+"手里的牌是"
+Poker2.getType()+Poker2.getNum());
}
}
/**
?*?最后的環(huán)節(jié)是比較大小
?*/
public?void?compare(){
Collections.sort(player1handpoker);
Poker?pk1Max=player1handpoker.get(player1handpoker.size()-1);
System.out.println("玩家1手里最大的牌是"+pk1Max.getType()+pk1Max.getNum());
Collections.sort(player2handpoker);
Poker?pk2Max=player2handpoker.get(player2handpoker.size()-1);
System.out.println("玩家2手里最大的牌是"+pk2Max.getType()+pk2Max.getNum());
????List<Poker>maxpkList=new?ArrayList<Poker>();
????maxpkList.add(pk1Max);
????maxpkList.add(pk2Max);
????Collections.sort(maxpkList);
????Poker?Maxpk=maxpkList.get(maxpkList.size()-1);
????if(player1handpoker.contains(Maxpk)){
???? System.out.println("玩家"+playerlist.get(0).getName()+"獲勝!");
????}else{
???? System.out.println("玩家"+playerlist.get(1).getName()+"獲勝!");
????}
}
/**
?*?
?*?@param?args
?*/
public?static?void?main(String?[]?args){
Gameplay?t1=new?Gameplay();
t1.creatPlayer();
t1.creatPoker();
t1.testCreatPoker();
t1.shufflepoker();
t1.deliverPoker();
t1.compare();
}?
}
2016-04-12
這個(gè)比較類型的對(duì)嗎?我遇到一個(gè)紅桃5和黑桃5,輸出卻是黑桃5大,這是怎么回事???
2016-04-12
你這個(gè)異常怎么捕獲的?
2016-04-12
這塊的比較我一直不太理解,this和o的都指的是哪個(gè)???哪個(gè)是傳進(jìn)來的,哪個(gè)是原有的!我知道這問題很簡(jiǎn)單,可我就是想不透,麻煩說一下唄,謝謝了!
2016-04-05
謝謝分享~
2016-02-12
看了你的代碼,很有啟發(fā)??!謝謝,有幾個(gè)方法我都沒見過,學(xué)習(xí)了
2016-01-17
首先感謝分享,萌新表示很有幫助!
有一個(gè)小問題,就是前面要求輸入玩家ID,但是后面所有的輸出全部是玩家1玩家2,根本不是我輸入的數(shù)字。
還有幾個(gè)import說沒被使用過,但這不算問題吧?
2016-01-12
初學(xué)的就不要計(jì)較了,經(jīng)驗(yàn)多了自然就會(huì)了,再說了,java相對(duì)于其它語(yǔ)言本來就比較多。
2015-12-14
? 有報(bào)錯(cuò)什么的么?!