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

Java實現(xiàn)撲克牌游戲的示例代碼

 更新時間:2022年09月21日 11:32:24   作者:熬夜磕代碼丶  
想不想帶上好朋友來上一局三人撲克呢?這篇文章教你如何利用Java語言實現(xiàn)一個簡單的撲克牌游戲,文中的示例代碼講解詳細,感興趣的可以了解一下

一、三人撲克

想不想帶上好朋友來上一局三人撲克呢。

二、具體實現(xiàn)

Card類

定義一個花色color變量和一個大小rank變量。

public class Card {
    public int rank;
    public String color;

    @Override
    public String toString() {
        return String.format("[%s,%d]",color,rank);
    }
}

生成52張牌

我們先買一副新牌

public class Cards {
    public static final String[] COLORS = {"?","?","?","?"};
    //輸入52張牌
    public static List<Card> buyCard() {
        List<Card> list = new ArrayList<>(52);
        for (int i = 0; i < 4; i++) {
            for (int j = 1; j <= 13; j++) {
                String color = COLORS[i];
                int rank = j;
                Card card = new Card();
                card.color = color;
                card.rank =rank;
                list.add(card);
            }
        }
        return list;
    }
}    

我截取了部分圖片,我們可以發(fā)現(xiàn)這是一副新牌,按照花色大小放著,我們玩撲克的時候肯定要打亂撲克牌。

打亂順序

這個方法負責(zé)將撲克牌打亂

 public static void mixed(List<Card> cards) {
        for (int i = 51; i > 0; i--) {
            Random random = new Random();
            int j = random.nextInt(i);
            Card c = cards.get(i);
            cards.set(i,cards.get(j));
            cards.set(j,c);
        }
    }

發(fā)牌

public static void main(String[] args) {
        List<Card> list = buyCard();//獲取新牌
        mixed(list);//把牌打亂
        List<List<Card>> lists = new ArrayList<>();
        lists.add(new ArrayList<Card>());
        lists.add(new ArrayList<Card>());
        lists.add(new ArrayList<Card>());
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                lists.get(j).add(list.remove(0));
            }
        }
        System.out.println("三個人的牌分別是: ");
        System.out.println(lists.get(0));
        System.out.println(lists.get(1));
        System.out.println(lists.get(2));
    }

三、完整代碼

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class Card {
    public int rank;
    public String color;

    @Override
    public String toString() {
        return String.format("[%s,%d]",color,rank);
    }
}
public class Cards {
    public static final String[] COLORS = {"?","?","?","?"};
    //輸入52張牌
    public static List<Card> buyCard() {
        List<Card> list = new ArrayList<>(52);
        for (int i = 0; i < 4; i++) {
            for (int j = 1; j <= 13; j++) {
                String color = COLORS[i];
                int rank = j;
                Card card = new Card();
                card.color = color;
                card.rank =rank;
                list.add(card);
            }
        }
        return list;
    }
    public static void mixed(List<Card> cards) {
        for (int i = 51; i > 0; i--) {
            Random random = new Random();
            int j = random.nextInt(i);
            Card c = cards.get(i);
            cards.set(i,cards.get(j));
            cards.set(j,c);
        }
    }

    public static void main(String[] args) {
        List<Card> list = buyCard();//獲取新牌
        mixed(list);//把牌打亂
        List<List<Card>> lists = new ArrayList<>();
        lists.add(new ArrayList<Card>());
        lists.add(new ArrayList<Card>());
        lists.add(new ArrayList<Card>());
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                lists.get(j).add(list.remove(0));
            }
        }
        System.out.println("三個人的牌分別是: ");
        System.out.println(lists.get(0));
        System.out.println(lists.get(1));
        System.out.println(lists.get(2));
    }
}

到此這篇關(guān)于Java實現(xiàn)撲克牌游戲的示例代碼的文章就介紹到這了,更多相關(guān)Java撲克牌游戲內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java?File類的概述及常用方法使用詳解

    Java?File類的概述及常用方法使用詳解

    Java?File類的功能非常強大,下面這篇文章主要給大家介紹了關(guān)于Java中File類的概述及常用方法使用,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • Spring Boot 結(jié)合 aop 實現(xiàn)讀寫分離

    Spring Boot 結(jié)合 aop 實現(xiàn)讀寫分離

    這篇文章主要介紹了Spring Boot 結(jié)合 aop 實現(xiàn)讀寫分離的示例,幫助大家更好的理解和使用Spring Boot框架,感興趣的朋友可以了解下
    2020-11-11
  • Spring Data Jpa的四種查詢方式詳解

    Spring Data Jpa的四種查詢方式詳解

    這篇文章主要介紹了Spring Data Jpa的四種查詢方式詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Spring中的BeanFactory與FactoryBean區(qū)別詳解

    Spring中的BeanFactory與FactoryBean區(qū)別詳解

    這篇文章主要介紹了Spring中的BeanFactory與FactoryBean區(qū)別詳解,BeanFactory是一個接口,它是spring中的一個工廠,FactoryBean也是一個接口,實現(xiàn)了3個方法,通過重寫其中方法自定義生成bean,需要的朋友可以參考下
    2024-01-01
  • Java入門教程--帶包的類如何編譯與運行

    Java入門教程--帶包的類如何編譯與運行

    我們一般都是通過IDE(如Eclipse、Intellij Idea,STS等)來開發(fā),調(diào)試java項目。在不借助IDE的情況下,如何編譯、運行Java程序。打包編譯時,會自動創(chuàng)建包目錄,不需要自己新建包名文件夾。
    2022-12-12
  • Spring框架如何使用P命名空間進行注入

    Spring框架如何使用P命名空間進行注入

    這篇文章主要介紹了Spring框架如何使用P命名空間進行注入,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Spring深入分析講解BeanUtils的實現(xiàn)

    Spring深入分析講解BeanUtils的實現(xiàn)

    java知識體系統(tǒng)有很多數(shù)據(jù)實體,比較常用的DTO、BO、DO、VO等,其他類似POJO概念太老了現(xiàn)在基本廢棄掉了,本篇幅直接忽略,對于這幾種數(shù)據(jù)實體各自代表的含義和應(yīng)用場景先做一下簡單描述和分析
    2022-06-06
  • 基于springboot微信公眾號開發(fā)(微信自動回復(fù))

    基于springboot微信公眾號開發(fā)(微信自動回復(fù))

    這篇文章主要介紹了基于springboot微信公眾號開發(fā)(微信自動回復(fù)),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 圖解Java?ReentrantLock公平鎖和非公平鎖的實現(xiàn)

    圖解Java?ReentrantLock公平鎖和非公平鎖的實現(xiàn)

    ReentrantLock是Java并發(fā)中十分常用的一個類,具備類似synchronized鎖的作用。但是相比synchronized,?它具備更強的能力,同時支持公平鎖和非公平鎖。本文就來聊聊ReentrantLock公平鎖和非公平鎖的實現(xiàn),需要的可以參考一下
    2022-10-10
  • Spring Boot詳細打印啟動時異常堆棧信息詳析

    Spring Boot詳細打印啟動時異常堆棧信息詳析

    這篇文章主要給大家介紹了關(guān)于Spring Boot詳細打印啟動時異常堆棧信息的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10

最新評論