欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java實現(xiàn)撲克牌發(fā)牌器

 更新時間:2020年04月22日 17:09:31   作者:Keme聯(lián)盟  
這篇文章主要為大家詳細介紹了java實現(xiàn)撲克牌發(fā)牌器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

Java練習(xí)——撲克牌發(fā)牌器,供大家參考,具體內(nèi)容如下

聲明:學(xué)習(xí)自其他博主,感謝分享

實現(xiàn)思路

  • 構(gòu)建一張撲克牌
  • 構(gòu)建一套撲克牌
  • 測試

構(gòu)建一張撲克牌

 /**
 * @author 冬冬
 * 定義一個單張撲克牌類
 * 有花型,大小
 */
public class Card {
 
  private String flower; // 花型
  private int daxiao;  // 點數(shù)
 
  /**構(gòu)造方法
   * @param flower
   * @param daxiao
   */
  public Card(String flower, int daxiao) {
   this.flower = flower;
   this.daxiao = daxiao;
  }
 

  /* (non-Javadoc)
   * @see java.lang.Object#toString()
   * 獲取本張卡牌的花型與大小,對于特殊的大小,如1——A,輸出時進行轉(zhuǎn)換
   */
  public String toString() {
   String daxiaoStr = "";
   switch(daxiao) {
   case 1: daxiaoStr = "A"; break;
   case 11: daxiaoStr = "J"; break;
   case 12: daxiaoStr = "Q"; break;
   case 13: daxiaoStr = "K"; break;
   default: daxiaoStr = String.valueOf(daxiao);
   }
   return flower + daxiaoStr;
  }
}

構(gòu)建一套撲克牌

public class Poker {
 
 private static String[] flowers = {"黑桃", "紅桃", "草花", "方塊"};
 private static int[] daxiaos = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
 private Card[] cards;//卡片數(shù)組,應(yīng)該有54張,這里去掉大小王,只52張
 
 /**
  * 構(gòu)造器
  * 按順序?qū)嵗?2張撲克牌
  */
 public Poker() {
  cards = new Card[52];
  for(int i = 0; i < flowers.length; i++) {
   for(int j = 0; j < daxiaos.length; j++) {
    cards[i * 13 + j] = new Card(flowers[i], daxiaos[j]);
   }
  }
 }
 
 /**
  * 洗牌 (隨機亂序)
  * 對于52個Card實例數(shù)組隨機亂序排列
  */
 public void shuffle() {
  for(int i = 0, len = cards.length; i < len; i++) {
   int index = (int) (Math.random() * len);
   Card temp = cards[index];
   cards[index] = cards[i];
   cards[i] = temp;
  }
 }
 
 /**
  * 發(fā)牌
  * @param index 發(fā)牌的位置
  * 
  */
 public Card deal(int index) {
  return cards[index];
 }
 
}

測試

public class Test {
 
 public static void main(String[] args) {
  Poker poker = new Poker();//生成撲克牌
  poker.shuffle();   // 洗牌(亂序)
  Card c1 = poker.deal(0); // 發(fā)第一張牌
  //創(chuàng)建四個玩家,每個玩家13張空牌
  Card [] person1=new Card[13];
  Card [] person2=new Card[13];
  Card [] person3=new Card[13];
  Card [] person4=new Card[13];
  //為玩家的的空牌賦值
  for(int i=1;i<=52;i++)
  {
   if(i<=13) person1[i-1]=poker.deal(i-1);
   if(i>13&&i<=26) person2[i-1-13]=poker.deal(i-1);
   if(i>26&&i<=39) person3[i-1-26]=poker.deal(i-1);
   if(i>39&&i<=52) person4[i-1-39]=poker.deal(i-1); 
  }
  //打印
  System.out.println("玩家1");
  for (Card card : person1) {
 System.out.print(card+" ");
  }
  System.out.println("");
  System.out.println("玩家2");
  for (Card card : person2) {
  System.out.print(card+" ");
  }
  System.out.println("");
  System.out.println("玩家3");
  for (Card card : person3) {
  System.out.print(card+" ");
  }
  System.out.println("");
  System.out.println("玩家4");
  for (Card card : person4) {
  System.out.print(card+" ");
  }
 }
}

結(jié)果:

玩家1
紅桃6 方塊4 方塊A 黑桃4 草花2 紅桃Q 紅桃J 紅桃K 方塊3 黑桃K 方塊8 黑桃7 黑桃5
玩家2
草花A 黑桃2 紅桃7 草花3 草花5 方塊J 方塊9 草花9 草花K 黑桃8 草花J 黑桃10 紅桃8
玩家3
方塊7 紅桃4 紅桃2 草花6 方塊2 黑桃Q 黑桃9 黑桃A 草花10 草花7 紅桃10 紅桃A 方塊Q
玩家4
紅桃9 方塊5 草花8 方塊10 方塊K 草花Q 黑桃3 紅桃5 黑桃6 黑桃J 紅桃3 方塊6 草花4

注意事項

不要忘記在Poker類里導(dǎo)入Card類,在Test類里面導(dǎo)入Poker和Card;
自己想想,動手做一做才能真正理解。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot控制配置類加載順序方式

    SpringBoot控制配置類加載順序方式

    這篇文章主要介紹了SpringBoot控制配置類加載順序方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 詳解Java的MyBatis框架中的緩存與緩存的使用改進

    詳解Java的MyBatis框架中的緩存與緩存的使用改進

    很多人在使用MyBatis的緩存后經(jīng)常會遇到MySQL分頁查詢的顯示問題,針對于此,這里我們就來詳解Java的MyBatis框架中的緩存與緩存的使用改進,首先來回顧一下MyBatis的緩存機制與執(zhí)行:
    2016-06-06
  • 解決Spring Mvc中對象綁定參數(shù)重名的問題

    解決Spring Mvc中對象綁定參數(shù)重名的問題

    最近在工作中遇到了參數(shù)綁定的一個問題,發(fā)現(xiàn)網(wǎng)上這方面的資料較少,索性自己來總結(jié)下,下面這篇文章主要給大家介紹了關(guān)于如何解決Spring Mvc中對象綁定參數(shù)重名問題的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08
  • Java源碼解析之HashMap的put、resize方法詳解

    Java源碼解析之HashMap的put、resize方法詳解

    這篇文章主要介紹了Java源碼解析之HashMap的put、resize方法詳解,文中有非常詳細的代碼示例,對正在學(xué)習(xí)java的小伙伴們有很大的幫助,需要的朋友可以參考下
    2021-04-04
  • 如何用IDEA調(diào)試BUG的幾種方法

    如何用IDEA調(diào)試BUG的幾種方法

    這篇文章主要介紹了如何用IDEA調(diào)試BUG的幾種方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2020-03-03
  • Java后端接收前端數(shù)據(jù)的五種方法

    Java后端接收前端數(shù)據(jù)的五種方法

    本文概述了前后端分離中Vue與Java的數(shù)據(jù)交互方式,包括JSON、表單、URL參數(shù)、文件上傳及路徑參數(shù),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-08-08
  • ES多條件查詢寫法舉例

    ES多條件查詢寫法舉例

    這篇文章主要給大家介紹了關(guān)于ES多條件查詢的相關(guān)資料,Elasticsearch多條件查詢是指在查詢數(shù)據(jù)時,可以同時使用多個條件來篩選數(shù)據(jù),文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • Java基于FFmpeg實現(xiàn)Mp4視頻轉(zhuǎn)GIF

    Java基于FFmpeg實現(xiàn)Mp4視頻轉(zhuǎn)GIF

    FFmpeg是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計算機程序。本文主要介紹了在Java中如何基于FFmpeg進行Mp4視頻到Gif動圖的轉(zhuǎn)換,感興趣的小伙伴可以了解一下
    2022-11-11
  • Spring Gateway自定義請求參數(shù)封裝的實現(xiàn)示例

    Spring Gateway自定義請求參數(shù)封裝的實現(xiàn)示例

    這篇文章主要介紹了Spring Gateway自定義請求參數(shù)封裝的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java?精煉解讀數(shù)據(jù)結(jié)構(gòu)的順序表如何操作

    Java?精煉解讀數(shù)據(jù)結(jié)構(gòu)的順序表如何操作

    程序中經(jīng)常需要將一組數(shù)據(jù)元素作為整體管理和使用,需要創(chuàng)建這種元素組,用變量記錄它們,傳進傳出函數(shù)等。一組數(shù)據(jù)中包含的元素個數(shù)可能發(fā)生變化,順序表則是將元素順序地存放在一塊連續(xù)的存儲區(qū)里,元素間的順序關(guān)系由它們的存儲順序自然表示
    2022-03-03

最新評論