package?com.pokergame;
public?class?Poker?implements?Comparable<Poker>?{
private?String?number;//撲克的點數
private?String?color;//花色
private?int?value;
public?Poker(int?value){
this.value=value;
setNumCol();
}
/**
?*?102-110代表方片2-10,111-114代表方片J-A
?*?202-210代表梅花2-10,211-214代表梅花J-A
?*?302-310代表紅桃2-10,311-314代表紅桃J-A
?*?402-410代表黑桃2-10,411-414代表黑桃J-A
?*/
public?void?setNumCol(){
switch(value/100){
case?1:color="方片";
break;
case?2:color="梅花";
break;
case?3:color="紅桃";
break;
case?4:color="黑桃";
}
switch(value%100){
case?2:number="2";
break;
case?3:number="3";
break;
case?4:number="4";
break;
case?5:number="5";
break;
case?6:number="6";
break;
case?7:number="7";
break;
case?8:number="8";
break;
case?9:number="9";
break;
case?10:number="10";
break;
case?11:number="J";
break;
case?12:number="Q";
break;
case?13:number="K";
break;
case?14:number="A";
}
}
@Override
public?int?compareTo(Poker?o)?{//單張牌比較的方法
//?TODO?Auto-generated?method?stub
if(value==o.getValue()){
return?0;
}
if(value%100>o.getValue()%100){
return?1;
}else?if(value%100<o.getValue()%100){
return?-1;
}else{
if(value/100>o.getValue()/100){
return?1;
}else{
return?-1;
}
}
}
/**
?*?get、set
?*/
public?String?getNumber()?{
return?number;
}
public?void?setNumber(String?number)?{
this.number?=?number;
}
public?String?getColor()?{
return?color;
}
public?void?setColor(String?color)?{
this.color?=?color;
}
public?int?getValue()?{
return?value;
}
public?void?setValue(int?value)?{
this.value?=?value;
}
}
package?com.pokergame;
import?java.util.*;
public?class?Player?{
private?int?id;
private?String?name;
List<Poker>?pokerCatch;
public?Player(int?id,String?name){
this.id=id;
this.name=name;
pokerCatch=new?ArrayList<Poker>();
}
/**
?*?判斷手牌類型的方法
?*/
public?void?pokerType(List<Poker>?pokerCatch){
Collections.sort(pokerCatch);
//暫時還沒想好。。。
}
/**
?*?get和set
?*?@return
?*/
public?int?getId()?{
return?id;
}
public?void?setId(int?id)?{
this.id?=?id;
}
public?String?getName()?{
return?name;
}
public?void?setName(String?name)?{
this.name?=?name;
}
public?List<Poker>?getPokerCatch()?{
return?pokerCatch;
}
public?void?setPokerCatch(List<Poker>?pokerCatch)?{
this.pokerCatch?=?pokerCatch;
}
}
package?com.pokergame;
import?java.util.*;
public?class?PokerGame?{
private?List<Poker>?pokers;
private?List<Player>?players;
Scanner?input=new?Scanner(System.in);
public?PokerGame(){//創建牌組
pokers=new?ArrayList<Poker>();
int[]?p={102,103,104,105,106,107,108,109,110,111,112,113,114,
202,203,204,205,206,207,208,209,210,211,212,213,214,
302,303,304,305,306,307,308,309,310,311,312,313,314,
402,403,404,405,406,407,408,409,410,411,412,413,414};
for(int?i=0;i<52;i++){
Poker?poke=new?Poker(p[i]);
pokers.add(poke);
}
System.out.println("-------------------牌組創建完畢-------------------");
}
/**
?*?開始游戲
?*/
public?void?run(){
flag:while(true){
createPlayer();//創建玩家
System.out.println("-------------------洗牌中-------------------");
Collections.shuffle(pokers);//洗牌
distribute();//發牌
consequence();//比大小
System.out.println("你想繼續體驗這個精致的游戲嗎?");
System.out.println("是:?1\t否:?2");
while(true){
try{
int?num=input.nextInt();
if(num==2){
break?flag;
}else?if(num==1){
break;
}else{
System.out.println("您輸入的命令有誤,請重新輸入!");
input.next();
}
}catch(Exception?e){
System.out.println("您輸入的命令有誤,請重新輸入!");
input.next();
}
}
}
System.out.println("游戲愉快,再見。");
}
/**
?*?創建玩家
?*/
public?void?createPlayer(){
players=new?ArrayList<Player>();
for(int?i=0;i<2;i++){
int?id;
String?name;
System.out.println("請輸入玩家的ID:");
while(true){
try{
id=input.nextInt();
break;
}catch(Exception?e){
System.out.println("您輸入的ID有誤,請重新輸入:");
input.next();
}
}
System.out.println("請輸入玩家的用戶名:");
while(true){
try{
name=input.next();
break;
}catch(Exception?e){
System.out.println("您輸入的用戶名有誤,請重新輸入:");
input.next();
}
}
players.add(new?Player(id,name));
}
System.out.println("-------------------玩家創建完畢!-------------------");
System.out.println("歡迎玩家"+players.get(0).getId()+":?"+players.get(0).getName());
System.out.println("歡迎玩家"+players.get(1).getId()+":?"+players.get(1).getName());
}
/**
?*?發牌
?*/
public?void?distribute(){
System.out.println("-------------------發牌,請等待-------------------");
for(int?i=0;i<6;i++){
players.get(0).pokerCatch.add(pokers.get(i));
i++;
players.get(1).pokerCatch.add(pokers.get(i));
}
}
/**
?*?比大小結束游戲
?*/
public?void?consequence(){
System.out.println("-------------------游戲結束-------------------");
Collections.sort(players.get(0).pokerCatch);
Collections.sort(players.get(1).pokerCatch);
System.out.println("------------"+players.get(0).getId()+"號玩家的牌從小到大依次是:"+"------------");
for(Poker?poke:players.get(0).pokerCatch){
System.out.println(poke.getColor()+poke.getNumber());
}
System.out.println("------------"+players.get(1).getId()+"號玩家的牌從小到大依次是:"+"------------");
for(Poker?poke:players.get(1).pokerCatch){
System.out.println(poke.getColor()+poke.getNumber());
}
for(int?i=2;i>=0;i--){
if(players.get(0).pokerCatch.get(i).compareTo(players.get(1).pokerCatch.get(i))>0){
System.out.println("獲得勝利的是:"+players.get(0).getName());
break;
}else?if(players.get(0).pokerCatch.get(i).compareTo(players.get(1).pokerCatch.get(i))<0){
System.out.println("獲得勝利的是:"+players.get(1).getName());
break;
}else{
if(i>0){
continue;
}else{
System.out.println("兩家一樣大,請重新比過。");
}
}
}
}
public?static?void?main(String[]?args)?{
System.out.println("*********歡迎來到不完整版炸金花!*********");
PokerGame?pokerGame=new?PokerGame();
pokerGame.run();
}
}
2015-06-27
不可能用兩家一樣大的吧,
2015-05-27
寫的很好了,學習了!btw,不會玩炸金花,所以幫不到你了。