package?com.earl;
public?class?Zhipai?implements?Comparable<Zhipai>?{
private?String?name;//紙牌花色+點數(shù)
private?String?value;//紙牌用于比較的值
//getter?and?setter
public?String?getName()?{
return?name;
}
public?void?setName(String?name)?{
this.name?=?name;
}
public?String?getValue()?{
return?value;
}
public?void?setValue(String?value)?{
this.value?=?value;
}
//構(gòu)造方法,提取紙牌的值
public?Zhipai(String?name){
setName(name);
StringBuilder?zpvalue=new?StringBuilder();
zpvalue.append(returnzp(name.substring(2,?name.length())));
zpvalue.append(returnzp(name.substring(0,2)));
setValue(zpvalue.toString());
}
//紙牌花色大小返回char
public?char?returnzp(String?str){
switch(str){
case?"3":return?'0';
case?"4":return?'1';
case?"5":return?'2';
case?"6":return?'3';
case?"7":return?'4';
case?"8":return?'5';
case?"9":return?'6';
case?"10":return?'7';
case?"J":return?'8';
case?"Q":return?'9';
case?"K":return?'a';
case?"A":return?'b';
case?"2":return?'c';
case?"黑桃":return?'0';
case?"紅心":return?'1';
case?"梅花":return?'2';
default:return?'3';//方塊
}
}
@Override
public?int?compareTo(Zhipai?o)?{
//?TODO?Auto-generated?method?stub
return?-(this.value.compareTo(o.value));
}
}
package?com.earl;
import?java.util.ArrayList;
import?java.util.Collections;
import?java.util.List;
public?class?Player?{
private?int?id;
private?String?name;
private?List<Zhipai>?playerzhipai=new?ArrayList<>();
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<Zhipai>?getPlayerzhipai()?{
return?playerzhipai;
}
public?void?setPlayerzhipai(Zhipai?listvalue)?{
playerzhipai.add(listvalue);
Collections.sort(playerzhipai);
}
}
package?com.earl;
import?java.util.ArrayList;
import?java.util.Arrays;
import?java.util.InputMismatchException;
import?java.util.Iterator;
import?java.util.List;
import?java.util.Random;
import?java.util.Scanner;
public?class?Test?{
//紙牌花色大小數(shù)組
Zhipai[]?zparr={new?Zhipai("黑桃A"),new?Zhipai("黑桃2"),new?Zhipai("黑桃3"),new?Zhipai("黑桃4"),new?Zhipai("黑桃5"),new?Zhipai("黑桃6"),new?Zhipai("黑桃7"),
new?Zhipai("黑桃8"),new?Zhipai("黑桃9"),new?Zhipai("黑桃10"),new?Zhipai("黑桃J"),new?Zhipai("黑桃Q"),new?Zhipai("黑桃K"),new?Zhipai("紅心A"),
new?Zhipai("紅心2"),new?Zhipai("紅心3"),new?Zhipai("紅心4"),new?Zhipai("紅心5"),new?Zhipai("紅心6"),new?Zhipai("紅心7"),new?Zhipai("紅心8"),
new?Zhipai("紅心9"),new?Zhipai("紅心10"),new?Zhipai("紅心J"),new?Zhipai("紅心Q"),new?Zhipai("紅心K"),new?Zhipai("梅花A"),new?Zhipai("梅花2"),
new?Zhipai("梅花3"),new?Zhipai("梅花4"),new?Zhipai("梅花5"),new?Zhipai("梅花6"),new?Zhipai("梅花7"),new?Zhipai("梅花8"),new?Zhipai("梅花9"),
new?Zhipai("梅花10"),new?Zhipai("梅花J"),new?Zhipai("梅花Q"),new?Zhipai("梅花K"),new?Zhipai("方塊A"),new?Zhipai("方塊2"),new?Zhipai("方塊3"),
new?Zhipai("方塊4"),new?Zhipai("方塊5"),new?Zhipai("方塊6"),new?Zhipai("方塊7"),new?Zhipai("方塊8"),new?Zhipai("方塊9"),new?Zhipai("方塊10"),
new?Zhipai("方塊J"),new?Zhipai("方塊Q"),new?Zhipai("方塊K")};
//存放紙牌
List<Zhipai>?newlist=new?ArrayList<>();
List<Zhipai>?xipailist=new?ArrayList<>();
//參與者id?and?name
Player?p1=new?Player();
Player?p2=new?Player();
private?Scanner?s0;
//加入紙牌至newlist
public?void?addzp(){
newlist.addAll(Arrays.asList(zparr));
System.out.println("10元一包,拆包不退。開了一包牌!");
}
//洗牌,隨機打亂紙牌newlist->xipailist
public?void?randomzp(){
while(newlist.size()>0){
Random?random=new?Random();
int?rd0=random.nextInt(newlist.size());
xipailist.add(newlist.get(rd0));
newlist.remove(rd0);
}
System.out.println("-------------------------洗牌-------------------------");
for?(Zhipai?xp0?:?xipailist)?{
System.out.print(xp0.getName()+";");
}
System.out.println();
}
//輸入?yún)⑴c者姓名
public?void?addplayer(){
s0?=?new?Scanner(System.in);
while(true){
try{
System.out.println("------------------------請輸入------------------------");
System.out.println("輸入第一個玩家id:");
p1.setId(s0.nextInt());
System.out.println("輸入第二個玩家id:");
p2.setId(s0.nextInt());
if(p1.getId()==p2.getId()){
System.out.println("玩家id不能相同!");
continue;
}
break;
}catch(InputMismatchException?e){
System.out.println("請輸入整數(shù)!");
continue;
}catch(Exception?e){
e.printStackTrace();
}finally{
s0=new?Scanner(System.in);
}
}
while(true){
System.out.println("輸入第一個玩家name:");
p1.setName(s0.next());
System.out.println("輸入第二個玩家name:");
p2.setName(s0.next());
if(p1.getName().equals(p2.getName())){
System.out.println("玩家name不能相同!");
continue;
}
break;
}
System.out.println("玩家ID:"+p1.getId()+"?玩家name:"+p1.getName());
System.out.println("玩家ID:"+p2.getId()+"?玩家name:"+p2.getName());
}
//抽牌
public?void?getzhipai(){
Iterator<Zhipai>?it=xipailist.iterator();
for(int?i=0;i<3;i++){
p1.setPlayerzhipai(it.next());
p2.setPlayerzhipai(it.next());
}
System.out.println("-----------------------發(fā)牌完成-----------------------");
System.out.print("玩家ID:"+p1.getId()+";"+p1.getName()+"手牌:");
for?(Zhipai?pz0?:?p1.getPlayerzhipai())?{
System.out.print(pz0.getName()+";");
}
System.out.println();
System.out.print("玩家ID:"+p2.getId()+";"+p2.getName()+"手牌:");
for?(Zhipai?pz1?:?p2.getPlayerzhipai())?{
System.out.print(pz1.getName()+";");
}
System.out.println();
}
//獲勝者判斷
public?void?winner(){
System.out.println("-------------------------結(jié)果-------------------------");
if(p1.getPlayerzhipai().get(0).getValue().compareTo(p2.getPlayerzhipai().get(0).getValue())>0){
System.out.println("玩家ID:"+p1.getId()+";"+p1.getName()+"獲勝!");
}else?if(p1.getPlayerzhipai().get(0).getValue().compareTo(p2.getPlayerzhipai().get(0).getValue())<0){
System.out.println("玩家ID:"+p2.getId()+";"+p2.getName()+"獲勝!");
}else{
System.out.println("平局!");
}
}
//main
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
Test?mc=new?Test();
mc.addzp();
mc.randomzp();
mc.addplayer();
mc.getzhipai();
mc.winner();
}
}
2017-08-02
厲害啊