public?class?Poke?{
????public?String?num;
????public?String?kind;
????public?Poke(String?num,?String?kind)?{
????????this.num?=?num;
????????this.kind?=?kind;
????}
????public?Poke(){
????}
}
public?class?Player?{
????public?Integer?id;
????public?String?name;
????public?List<Poke>?hold;
????public?Player(Integer?id,?String?name)?{
????????this.id?=?id;
????????this.name?=?name;
????????this.hold?=new?ArrayList<Poke>();
????}
}
public?class?MainTest?{
????//1.創(chuàng)建衣服撲克牌,包括黑紅梅方,2-10,jqka
????//2.創(chuàng)建兩個(gè)玩家,id,姓名,手牌(撲克牌的集合)
????//3.洗牌,打亂創(chuàng)建好的撲克牌的順序(所以要用list集合)
????//4.發(fā)牌,江西好的撲克牌集合,從第一個(gè)開始,發(fā)給兩個(gè)人各一張,每人一共兩張
????//5.比大小.兩個(gè)人取手中最大的牌進(jìn)行比較,若大小一樣,則比對花色,黑紅梅方
????//異常處理:創(chuàng)建用戶id輸入不為整書時(shí),提示重新輸入整數(shù)類型
????private?List<Poke>?pokeList=new?ArrayList<Poke>();
????private?List<Player>?playersList=new?ArrayList<Player>();
????//創(chuàng)建撲克牌
????public?void?PokeBuild(){
????????System.out.println("————?jiǎng)?chuàng)建撲克牌————");
????????String[]?kind={"方塊","梅花","紅桃","黑桃"};
????????for?(int?i=2;i<11;i++){
????????????for?(int?j=0;j<4;j++){
????????????????String?k=String.valueOf(i);
????????????????Poke?poke=new?Poke(k,kind[j]);
????????????????pokeList.add(poke);
????????????}}
????????//創(chuàng)建jqka
????????????List<Poke>?pokelistjqka=new?ArrayList<Poke>();
????????????for?(int?j=0;j<4;j++){
????????????????Poke?poke1=new?Poke("J",kind[j]);
????????????????pokelistjqka.add(poke1);
????????????}
????????for?(int?j=0;j<4;j++){
????????????Poke?poke1=new?Poke("Q",kind[j]);
????????????pokelistjqka.add(poke1);
????????}
????????for?(int?j=0;j<4;j++){
????????????Poke?poke1=new?Poke("K",kind[j]);
????????????pokelistjqka.add(poke1);
????????}
????????for?(int?j=0;j<4;j++){
????????????Poke?poke1=new?Poke("A",kind[j]);
????????????pokelistjqka.add(poke1);
????????}
????????????pokeList.addAll(pokelistjqka);
????????System.out.println("————撲克牌創(chuàng)建完畢————");
????????System.out.println("全部撲克牌如下");
????????for?(Poke?poke:pokeList.subList(0,13)?)?{
????????????System.out.print(poke.kind+poke.num+"?");
????????}
????????System.out.println();
????????for?(Poke?poke:pokeList.subList(13,26)?)?{
????????????System.out.print(poke.kind+poke.num+"?");
????????}
????????System.out.println();
????????for?(Poke?poke:pokeList.subList(26,39)?)?{
????????????System.out.print(poke.kind+poke.num+"?");
????????}
????????System.out.println();
????????for?(Poke?poke:pokeList.subList(39,52)?)?{
????????????System.out.print(poke.kind+poke.num+"?");
????????}
????????System.out.println(
???????????????????????);
????}
????//洗牌
????public?void?PokeRandom(){
????????System.out.println("————開始洗牌————");
????????Collections.shuffle(pokeList);
????????System.out.println("————洗牌完成————");
????}
????//創(chuàng)建玩家
????public?void?ManBuilde(){
????????System.out.println("開始創(chuàng)建玩家");
????????int?i=1;
????????while(true){
????????????while?(i<3){
????????????try{
????????????????????Player?player;
????????????????????System.out.println("請輸入第"?+?i?+?"個(gè)玩家id");
????????????????????Scanner?console?=?new?Scanner(System.in);
????????????????????Integer?id?=?console.nextInt();
????????????????????System.out.println("請輸入第"?+?i?+?"個(gè)玩家名字");
????????????????????String?name=console.next();
????????????????????player=new?Player(id,name);
????????????????????playersList.add(player);
????????????????????System.out.println("成功創(chuàng)建玩家"+playersList.get(i-1).name);
???????????????????i++;
????????????}catch?(Exception?e){
????????????????System.out.println("請輸入整數(shù)");
????????????????continue;
????????????}
????????}
????????????System.out.println("——?jiǎng)?chuàng)建玩家成功——");
????????????break;
????}}
????//發(fā)牌給玩家
????public?void?GivePoke(){
????????System.out.println("———開始發(fā)牌———");
????????Poke?poke1=new?Poke(pokeList.get(0).num,pokeList.get(0).kind);
????????Poke?poke2=new?Poke(pokeList.get(1).num,pokeList.get(1).kind);
????????Poke?poke3=new?Poke(pokeList.get(2).num,pokeList.get(2).kind);
????????Poke?poke4=new?Poke(pokeList.get(3).num,pokeList.get(3).kind);
????????????playersList.get(0).hold.add(poke1);
????????????playersList.get(1).hold.add(poke2);
????????????playersList.get(0).hold.add(poke3);
????????????playersList.get(1).hold.add(poke4);
????????System.out.println("——兩個(gè)玩家的手牌——");
????????for?(int?i=0;i<2;i++){
????????????//媽的,hold也是一個(gè)list,也要選擇讀其中的第幾個(gè)?。。?!操
????????????System.out.println(playersList.get(i).name+"???"+playersList.get(i).hold.get(0).kind+playersList.get(i).hold.get(0).num
????????????+playersList.get(i).hold.get(1).kind+playersList.get(i).hold.get(1).num);
????????}
????}
????//比大小,先玩家自己對比手牌中的大小,選大的和別人比
????public?void?PokeCompare(){
????????System.out.println("————接下來比大小————");
????????//通過手中牌的索引位置比較大小
????????int?oneMax,twoMax;
????????Poke?poke1=playersList.get(0).hold.get(0);
????????Poke?poke2=playersList.get(0).hold.get(1);
????????Poke?poke3=playersList.get(1).hold.get(0);
????????Poke?poke4=playersList.get(1).hold.get(1);
????????int?poke1Index=playersList.indexOf(poke1);
????????int?poke2Index=playersList.indexOf(poke2);
????????int?poke3Index=playersList.indexOf(poke3);
????????int?poke4Index=playersList.indexOf(poke4);
????????if?(poke1Index>poke2Index){
????????????oneMax=poke1Index;
????????????System.out.println("玩家"+playersList.get(0).name+"??最大的手牌為"+poke1.kind+poke1.num);
????????}else?{
????????????oneMax=poke2Index;
????????????System.out.println("玩家"+playersList.get(0).name+"??最大的手牌為"+poke2.kind+poke2.num);
????????}
????????if?(poke3Index>poke4Index){
????????????twoMax=poke3Index;
????????????System.out.println("玩家"+playersList.get(0).name+"??最大的手牌為"+poke3.kind+poke3.num);
????????}else?{
????????????twoMax=poke4Index;
????????????System.out.println("玩家"+playersList.get(1).name+"??最大的手牌為"+poke4.kind+poke4.num);
????????}
????????System.out.println("——比賽結(jié)果為——");
????????if?(oneMax>twoMax){
????????????System.out.println("玩家"+playersList.get(0).name+"勝出");
????????}
????????else?{
????????????System.out.println("玩家"+playersList.get(1).name+"勝出");
????????}
????}
????public?static?void?main(String[]?args)?{
????????MainTest?mt=new?MainTest();
????????mt.PokeBuild();
????????mt.PokeRandom();
????????mt.ManBuilde();
????????mt.GivePoke();
????????mt.PokeCompare();
????}
}
2018-05-24
2018-05-18
咸魚點(diǎn)贊