日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java入门第三季—简易扑克牌游戏

發布時間:2023/12/18 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java入门第三季—简易扑克牌游戏 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?一,Java入門第三季—簡易撲克牌游戲

  • 創建一副撲克牌

  • 四種花色:黑桃,紅桃,梅花,方片
  • 十三種點數:2-10,J,Q,K,A,不包含大小王
    • 創建兩名玩家

  • 有ID,姓名,手牌(為玩家擁有的撲克牌集合)
    • 洗牌

  • 將牌的順序打亂
    • 發牌

  • 從第一張開始發牌
  • 按照一人一張的方式
    • 游戲

  • 比較玩家手中的撲克牌
  • 先比較出自己手中最大的牌
  • 再互相比較,點數大的獲勝
  • 點數相同,比較花色
  • 這里我的花色最大是黑桃,然后是紅桃,梅花,方片


    二,

    1,下面public void pokerComp() 中寫的不夠簡潔,感覺還能改進,不過現在腦子知識不足,并且有點混亂,不夠熟悉沒改出來

    2,創建玩家ID沒有用try...catch,防止輸入字符時出錯

    Test.java?

    package com.scy.poker;import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Random; import java.util.Scanner; import java.util.Set;/*** 花色順序:黑桃,紅桃,梅花,方片* 十三種點數:2——10,J,Q,K,A,不考慮大小王* @author scy**/ public class Test {//用于存放撲克的List,poker1按順序存儲,poker2存放洗牌之后的public List poker1= new ArrayList();public List poker2 =new ArrayList();;//存放玩家的Listpublic static List player=new ArrayList();;Scanner sc=new Scanner(System.in);//定義兩個數組用來存放,花色,字母(數字),用來添加進poker1中String[] suit= new String[]{"黑桃","紅桃","梅花","方片"};String[] num1= new String[]{"A","2","3","4","5","6","7","8","9","10","J","Q","K"};//創建撲克public void createPoker() {System.out.println("----------------創建撲克牌...----------------");int s=0;//for(int j=0;j<4;j++) {for(int i=0;i<13;i++) { //將編號,花色,數字 添加進去Poker p=new Poker(s++,suit[j],num1[i]);poker1.add(p);} }System.out.println("----------------撲克牌創建成功!-------------");}//輸出按順序排列的撲克public void testSys() {System.out.println("為以下:");for(int i=0;i<52;i++) {//每13個換一行if(i%13==0&&i!=0) { System.out.println();}//用get(),,并輸出Poker po= (Poker) poker1.get(i);System.out.print(po.suits+po.num+" ");} System.out.println("\n");}//洗牌public void washPoker() {System.out.println("------------------開始洗牌...----------------");//定義隨機數Random random=new Random();//從第一張牌,循環到最后一張for(int i=0;i<52;i++) {//用隨機來獲取某個隨機的位置,將該位置的數,添加到poker2中int ran= random.nextInt(52);Poker po=(Poker) poker1.get(ran);//if,,contains()判斷此隨機數是否已經放進poker2中if(poker2.contains(po)) {i--;continue;}poker2.add(po);}System.out.println("------------------洗牌結束...----------------");}//創建兩名玩家public void createPlayer() {System.out.println("------------------創建玩家...----------------");for(int i=0;i<2;i++) {System.out.println("請輸入第"+(i+1)+"位玩家的ID和姓名:");//System.out.println("輸入ID:");int id=sc.nextInt();//System.out.println("輸入姓名:");String name=sc.next();//Player p=new Player(id,name);//player.add(p);}}//開始發牌public void startPlay() {for(Object p:player) {Player po=(Player) p;System.out.println("歡迎玩家:"+po.name);}//System.out.println("------------------開始發牌...----------------");for(int i=0;i<4;i=i+2) { Poker po1= (Poker) poker2.get(i); Poker po2= (Poker) poker2.get(i+1);//給1號玩家1,3位置的牌Player p1=(Player) player.get(0);System.out.println("玩家:"+p1.name+"拿牌");p1.pok.add(po1);//給2號玩家2,4位置的牌Player p2=(Player) player.get(1);System.out.println("玩家:"+p2.name+"拿牌");p2.pok.add(po2); }System.out.println("------------------發牌結束...----------------");}/*** 比較兩個玩家牌的大小* 先比數字大小* 如果數字相同比較花色,花色大小我定義為,,大小從黑桃開始依此減小(黑桃,紅桃,梅花,方片)*/public void pokerComp() {System.out.println("------------------開始游戲...----------------");//用兩個pok1,pok2分別 放兩個玩家最大的牌Poker pok1=new Poker();Poker pok2=new Poker();//用max1,max2放最大牌的數字,在num1中位置int max1,max2;//將num1數組,變成ListList list=new ArrayList(Arrays.asList(num1));//找玩家1手里的最大牌Player p1=(Player) player.get(0);Poker po11=(Poker) p1.pok.get(0);Poker po12=(Poker) p1.pok.get(1);int pos1=list.indexOf(po11.num);int pos2=list.indexOf(po12.num);if(pos1>pos2) {pok1=po11;max1=pos1;System.out.println("玩家:"+p1.name+"最大的手牌為:"+po11.suits+po11.num);}else if(pos1<pos2){pok1=po12;max1=pos2;System.out.println("玩家:"+p1.name+"最大的手牌為:"+po12.suits+po12.num);}else {if(po11.id>po12.id) {pok1=po12;max1=pos2;System.out.println("玩家:"+p1.name+"最大的手牌為:"+po12.suits+po12.num);}else {pok1=po11;max1=pos2;System.out.println("玩家:"+p1.name+"最大的手牌為:"+po11.suits+po11.num);}}//找玩家2手里的最大牌Player p2=(Player) player.get(1);Poker po21=(Poker) p2.pok.get(0);Poker po22=(Poker) p2.pok.get(1);int pos3=list.indexOf(po21.num);int pos4=list.indexOf(po22.num);if(pos3>pos4) {pok2=po21;max2=pos3;System.out.println("玩家:"+p2.name+"最大的手牌為:"+po21.suits+po21.num);}else if(pos3<pos4){pok2=po22;max2=pos4;System.out.println("玩家:"+p2.name+"最大的手牌為:"+po22.suits+po22.num);}else {if(po21.id>po22.id) {pok2=po22;max2=pos4;System.out.println("玩家:"+p2.name+"最大的手牌為:"+po22.suits+po22.num);}else {pok2=po21;max2=pos4;System.out.println("玩家:"+p2.name+"最大的手牌為:"+po21.suits+po21.num);}}//玩家1,2,比較手里的最大牌,找出最大的,輸出該玩家名字if(max2>max1) {System.out.println("------------------玩家:"+p2.name+"獲勝----------------");}else if(max2<max1) {System.out.println("------------------玩家:"+p1.name+"獲勝----------------");}else {//數字相等時,通過花色比大小,用序號來比較,花色大的序號小if(pok1.id>pok2.id) {System.out.println("------------------玩家:"+p2.name+"獲勝----------------");}else {System.out.println("------------------玩家:"+p1.name+"獲勝----------------");}}}//public static void main(String[] args) {Test te=new Test();//創建撲克te.createPoker();te.testSys();//洗牌te.washPoker();//創建2個玩家te.createPlayer(); //開始游戲te.startPlay();//比較那位玩家擁有的牌最大te.pokerComp();//輸出2名玩家手里擁有的牌for(int i=0;i<2;i++) {Player b=(Player) player.get(i);System.out.print(b.name+":");for(Poker p:b.pok) {System.out.print(p.suits+p.num+" ");}System.out.println();}} }

    ?Player.java

    package com.scy.poker;import java.util.ArrayList; import java.util.List; import java.util.Set;public class Player {public String name;//姓名public int id;//編號public List<Poker> pok; //玩家的牌public Player(int id,String name) { this.id=id;this.name=name;this.pok=new ArrayList<Poker>();} }

    Poker.java

    package com.scy.poker;import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set;public class Poker implements Comparable<Poker>{public int id; //序號public String suits;//花色public String num; //數字(字母)public Poker(int id,String suits, String num) {this.id=id;this.suits=suits;this.num=num;}public Poker() {}public boolean contains(String suits2) {// TODO Auto-generated method stubreturn false;}//@Overridepublic int compareTo(Poker o) {// TODO Auto-generated method stubreturn this.num.compareTo(o.num);}}

    ?

    三,運行結果?

    總結

    以上是生活随笔為你收集整理的Java入门第三季—简易扑克牌游戏的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。