package?puke;
public?class?Cards?{
??public?String?name;
??public?String?color;
??public?Cards(String?name,String?color){
???this.name=name;
???this.color=color;
??}
}
package?puke;
import?java.util.HashSet;
import?java.util.Set;
public?class?Players?{
???????public?int?num;
???????public?String?name;
???????public?Set<Cards>playercard;
???????public?Players(int?num,String?name){
????????this.num=num;
????????this.name=name;
????????this.playercard=new?HashSet<Cards>();
???????}
}
package?puke;
import?java.util.ArrayList;
import?java.util.Collections;
import?java.util.List;
import?java.util.Scanner;
public?class?Set?{
????????public?static?String?name[]={"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
????????public?static?String?color[]={"黑桃","紅桃","梅花","方片"};
????????public?static?List<Cards>card=new?ArrayList<Cards>();
????????static?Scanner?input?=new?Scanner(System.in);
????????//輸入撲克牌中的每一個(gè)元素?并輸出
????????public??void?setcard(){
?????????for(int?i=0;i<name.length;i++){
??????????for(int?j=0;j<color.length;j++){
???????????Cards?a=new?Cards(name[i],color[j]);
???????????card.add(a);
??????????}
?????????}
?????????for?(Cards?cards?:?card)?{
????System.out.print(cards.color+cards.name+",");
???}
????????}
????????public?void?cardshow(){
?????????for?(Cards?cards?:?card)?{
????System.out.println(cards.color+cards.name+",");
???}
????????}
????????//輸入玩家ID
????????public?int?setplayers(){
?????????int?nums;
?????????while(true){
??????????System.out.println("請(qǐng)輸入玩家ID");
???????????nums=inputCommand();
??????????if(nums==-1){
???????????System.out.println("輸入類型錯(cuò)誤請(qǐng)輸入整型!");
???????????continue;
??????????}
??????????break;
?????????}
???return?nums;
?????????
????????}
????????//輸入玩家姓名
????????public?String?playername(){
?????????System.out.println("請(qǐng)輸入玩家姓名:");
?????????String?name=input.next();
???return?name;
????????}
??????//從控制臺(tái)輸入命令,用于判斷輸入玩家ID是否為整數(shù)
?????private?static?int?inputCommand(){
??????int?command;
??????try?{
???????command?=?input.nextInt();
???????return?command;
??????}?catch?(Exception?e)?{
???????//若輸入字符型或者字符串,則拋出異常,捕獲該異常,拋出”錯(cuò)誤命令異?!?
???????input=new?Scanner(System.in);
???????//返回-1
???????return?-1;
??????}
?????}
?????//比較撲克牌面大小
?????public?Cards??Whobigger(String?name[],String?color[],Cards?one1,Cards?one2){
??????int?l=0;
??????int?m=0;
??????int?n=0;
??????int?o=0;
??????for(int?i=0;i<name.length;i++){
???????if(name[i].equals(one1.name)){
????????l=i;
???????}
???????if(name[i].equals(one2.name)){
????????m=i;
???????}
??????}
??????for(int?j=0;j<color.length;j++){
????if(color[j].equals(one1.color)){
?????n=j;
????}
????if(color[j].equals(one2.color)){
?????o=j;
????}
???}
??????if(l<m){
???????return?one2;
??????}
??????if(l>m){
???????return?one1;
??????}
??????if(l==m){
???????if(n<o){
????????return?one1;
???????}
???????if(n>o){
????????return?one2;
???????}
??????}
???return?one2;??????
?????}
?????public?static?void?main(String[]?args)?{
???Set??t=new?Set();
???System.out.println("------開始創(chuàng)建撲克牌------");
???System.out.println("------撲克牌創(chuàng)建成功------");
???System.out.print("為");
???t.setcard();
???System.out.println("---------開始洗牌---------");??
???Collections.shuffle(card);
???System.out.println("---------洗牌結(jié)束---------");
???System.out.println("---------創(chuàng)建玩家---------");
???
???System.out.println("創(chuàng)建第一位玩家");
???int?b=t.setplayers();
???Players?player1=new?Players(b,t.playername());
???Players?player2;
???while(true){
????System.out.println("創(chuàng)建第二位玩家");
????int?a=t.setplayers();
????if(a==b){
?????System.out.println("ID重復(fù)!");
?????continue;
????}
?????player2=new?Players(a,t.playername());
????break;
???}
??????
???System.out.println("歡迎玩家:"+player1.name);
???System.out.println("歡迎玩家:"+player2.name);
???System.out.println("---------開始發(fā)牌---------");
???
???Cards?player1card1=card.get(0);
???player1.playercard.add(player1card1);
???System.out.println("玩家"+player1.name+"拿牌");
??
???Cards?player2card1=card.get(1);
???player2.playercard.add(player2card1);
???System.out.println("玩家"+player2.name+"拿牌");
???
???Cards?player1card2=card.get(2);
???player1.playercard.add(player1card2);
???System.out.println("玩家"+player1.name+"拿牌");
???
???Cards?palyer2card2=card.get(3);
???player2.playercard.add(palyer2card2);
???System.out.println("玩家"+player2.name+"拿牌");
???
???System.out.println("---------開始游戲---------");
???Cards??player1big=t.Whobigger(name,?color,?player1card1,player1card2?);
???Cards??player2big=t.Whobigger(name,?color,?player2card1,?palyer2card2);
???Cards?big=t.Whobigger(name,?color,?player1big,?player2big);
???if(big.name.equals(player2big.name)){
????System.out.println("玩家"+player2.name+"獲勝");
???}else{
????System.out.println("玩家"+player1.name+"獲勝");
???}
???System.out.println("---------雙方手牌---------");
???System.out.println("玩家"+player1.name);
???for(Cards?one1:player1.playercard){
????System.out.println(one1.color+one1.name);
???}
???System.out.println("玩家"+player2.name);
???for(Cards?one1:player2.playercard){
????System.out.println(one1.color+one1.name);
???}
??}
}
2019-07-12
牛批!