Java程式設計之撲克牌

來源:互聯網
上載者:User

標籤:

  這段代碼的主要實現功能撲克牌的洗牌和發牌功能,一副牌,紅桃,黑桃,梅花,方片,A~K,不含大小王。

  構造一個class。

  首先是聲明花色:

private String[] sign={"方片","紅桃","黑桃","梅花"};//撲克的四種花色

  然後是洗牌功能,意味花色與A~K結合構造成順序的52張撲克牌,構造一個ArrayListObject Storage Service撲克牌的值。

private static ArrayList<String> List;

  接下來再類中實現此方法,構造出一副撲克牌。

public void Init(){        List = new ArrayList();        for(String str:sign){            for(int i = 1;i<=13;i++){                String extra_sign = ""; //將數字與撲克匹配                if(i == 1){                    extra_sign = "A";                    List.add(str+extra_sign);                }else if(i == 11){                    extra_sign = "J";                    List.add(str+extra_sign);                }else if(i == 12){                    extra_sign = "Q";                    List.add(str+extra_sign);                }else if(i == 13){                    extra_sign = "K";                    List.add(str+extra_sign);                }else{                    List.add(str+i);                }            }        }    }

  此時衣服撲克牌已經構造完成,接下來通過方法實現撲克牌的亂序發放到四人的手中。

public void Hands(){         int i = 0,j=0;        Collections.shuffle(List);//Collection類中的shuffle方法將<List>亂序排列        for(String str:List){            if(j == 4)                break;            if(i == 0){                hands[j] = str+" ";                i++;            }                        //這裡不使用for(i<13){            //    hands[j] = str+" ";            //    i++;            //}是因為第一個下標為0的元素為null,所以多了一步判斷            if(0<i && i<13){                hands[j] +=str+" " ;                 i++;            }else{                i = 0;                j++;            }        }    }

  洗牌和分牌步驟已經完成,下面貼上完整代碼:

  

package com;import java.util.ArrayList;import java.util.Collections;import java.util.Iterator;public class Pokes {        private String[] sign={"方片","紅桃","黑桃","梅花"};    private static String[] hands = new String[4];    private static ArrayList<String> List;        Pokes(){    }        public void Init(){        List = new ArrayList();        for(String str:sign){            for(int i = 1;i<=13;i++){                String extra_sign = "";                if(i == 1){                    extra_sign = "A";                    List.add(str+extra_sign);                }else if(i == 11){                    extra_sign = "J";                    List.add(str+extra_sign);                }else if(i == 12){                    extra_sign = "Q";                    List.add(str+extra_sign);                }else if(i == 13){                    extra_sign = "K";                    List.add(str+extra_sign);                }else{                    List.add(str+i);                }            }        }    }        public void Hands(){        int i = 0,j=0;        Collections.shuffle(List);        for(String str:List){            if(j == 4)                break;            if(i == 0){                hands[j] = str+" ";                i++;            }            if(0<i && i<13){                hands[j] +=str+" " ;                 i++;            }else{                i = 0;                j++;            }        }    }    public static void main(String[] args) {        Pokes p = new Pokes();        p.Init();        p.Hands();            System.out.println(hands[0]);            System.out.println(hands[1]);            System.out.println(hands[2]);            System.out.println(hands[3]);    }}

通過debug結果如下:

第一次輸出結果:黑桃2 黑桃2 紅桃A 紅桃8 黑桃9 黑桃7 梅花4 梅花8 黑桃5 梅花3 紅桃10 方片Q 方片K 黑桃6 黑桃6 方片8 紅桃4 紅桃7 黑桃3 梅花K 紅桃J 黑桃J 梅花2 梅花10 紅桃Q 方片9 方片A 方片A 梅花Q 黑桃8 梅花J 紅桃3 方片3 紅桃6 紅桃2 方片7 梅花9 紅桃5 梅花5 方片6 方片6 梅花A 紅桃K 黑桃K 方片10 黑桃A 梅花7 方片J 梅花6 方片5 黑桃10 紅桃9 第二次輸出結果:黑桃10 黑桃10 紅桃5 黑桃7 方片3 方片Q 紅桃8 方片6 梅花5 方片9 方片2 紅桃Q 紅桃9 黑桃5 黑桃5 黑桃2 紅桃2 黑桃K 梅花8 梅花2 黑桃9 紅桃7 黑桃8 紅桃6 梅花9 黑桃6 紅桃10 紅桃10 梅花3 黑桃A 梅花10 方片7 方片10 黑桃4 黑桃Q 梅花7 紅桃K 黑桃3 紅桃3 梅花6 梅花6 梅花A 梅花K 紅桃A 梅花J 方片8 紅桃J 黑桃J 方片4 方片A 紅桃4 方片5 

  簡單的Java撲克牌程式,初始化構造一副撲克牌,利用Collection.shuffle(<List>)將List中的元素打亂順序,依次分配給四個String[]。

Java程式設計之撲克牌

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.