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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

JAVA实现网页版斗地主_Java实现斗地主案例

發(fā)布時(shí)間:2023/12/10 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA实现网页版斗地主_Java实现斗地主案例 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文實(shí)例為大家分享了Java實(shí)現(xiàn)斗地主的具體代碼,供大家參考,具體內(nèi)容如下

import java.util.ArrayList;

import java.util.Collections;

public class DemoPoker {

public static void main(String[] args) {

/**

*一、準(zhǔn)備牌

普通牌:2 A K...3

花色:? ? ? ?

王牌:大王 小王

創(chuàng)建一個(gè)集合,把牌組裝之后存進(jìn)去

*/

String[] numbers = {"2", "A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3"};

String[] colors = {"?", "?", "?", "?"};

ArrayList pokerBox = new ArrayList<>();

for (String color : colors) {

for (String number : numbers) {

pokerBox.add(color + number);

}

}

pokerBox.add("大王");

pokerBox.add("小王");

/**

* 二、洗牌

static void shuffle?(List> list) 使用默認(rèn)的隨機(jī)源隨機(jī)置換指定的列表。

此處為了輸出結(jié)果工整所以沒(méi)有直接輸出集合

*/

Collections.shuffle(pokerBox);

for (int i = 0; i < pokerBox.size(); i++) {

System.out.print(pokerBox.get(i)+"\t");

if (i==26) {

System.out.println();

}

}

System.out.println();

/**

* 三、發(fā)牌

遍歷集合,用索引%3發(fā)牌,余0給玩家1,余1給玩家2,余2給玩家3

索引0-50是玩家的牌,51-53是底牌

*/

//玩家一

ArrayList player01 = new ArrayList<>();

//玩家二

ArrayList player02 = new ArrayList<>();

//玩家三

ArrayList player03 = new ArrayList<>();

//底牌

ArrayList diPai = new ArrayList<>();

for (int i = 0; i < pokerBox.size(); i++) {

String faces = pokerBox.get(i);

if (i>=51) {

diPai.add(faces);

} else if (i%3==0) {

player01.add(faces);

} else if (i%3==1) {

player02.add(faces);

} else if (i%3==2) {

player03.add(faces);

}

}

/**

* 四、看牌

直接輸出每位玩家的集合

*/

System.out.println("張無(wú)忌"+player01);

System.out.println("張翠山"+player02);

System.out.println("殷素素"+player03);

System.out.println("底牌"+diPai);

}

}

帶排序版的

package com.demo_2.poker;

import java.util.Collections;

import java.util.HashMap;

import java.util.LinkedList;

import java.util.List;

public class Poker {

/**

*一共要四步。一、備牌 二、洗牌 三、發(fā)牌 四、看牌

目的:練習(xí)集合的用法

*/

public static void main(String[] args) {

/**

* 第一步:備牌

使用List接口中的of()方法添加并分別創(chuàng)建numbers和colors集合

*/

//numbers:存儲(chǔ)普通牌 2、A、K...3從大到小

List numbers = List.of("2", "A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3");

//colors:存儲(chǔ)四種花色 ?、?、?、?

List colors = List.of("?", "?", "?", "?");

//創(chuàng)建一個(gè)Map集合存儲(chǔ)索引和組裝好的牌

HashMap pokerBox = new HashMap<>();

//創(chuàng)建一個(gè)List集合儲(chǔ)存牌的索引

LinkedList pokerIndex = new LinkedList<>();

//先把大王、小王和下標(biāo)分別放進(jìn)Map的鍵和值里面,再向LinkedList里面存儲(chǔ)下標(biāo),下標(biāo)增加1

int index = 0;

pokerBox.put(index, "大王");

pokerIndex.add(index);

index++;

pokerBox.put(index, "小王");

pokerIndex.add(index);

index++;

//組裝牌:遍歷兩個(gè)List集合,使用Map接口中的put()方法給pokerBox添加鍵和值,并給LinkedList傳下標(biāo)

for (String number : numbers) {

for (String color : colors) {

pokerBox.put(index, color + number);

pokerIndex.add(index);

index++;

}

}

/**

* 第二步:洗牌

使用Collocations類中的shuffler方法,傳遞參數(shù)pokerIndex

*/

Collections.shuffle(pokerIndex);

/**

* 第三步:發(fā)牌

創(chuàng)建四個(gè)List集合,分別存儲(chǔ)三位玩家和底牌

使用for循環(huán)遍歷pokerIndex,i%3結(jié)果為0的給玩家1,1的給玩家2,2的給玩家3

*/

LinkedList player01 = new LinkedList<>();

LinkedList player02 = new LinkedList<>();

LinkedList player03 = new LinkedList<>();

LinkedList diPai = new LinkedList<>();

for (int i = 0; i < pokerIndex.size(); i++) {

Integer in = pokerIndex.get(i);

if (i >= 51) {

diPai.add(in);

} else if (i % 3 == 0) {

player01.add(in);

} else if (i % 3 == 1) {

player02.add(in);

} else if (i % 3 == 2) {

player03.add(in);

}

}

//給玩家的牌排序,使用Collocations接口中的sort()方法排序

Collections.sort(player01);

Collections.sort(player02);

Collections.sort(player03);

Collections.sort(diPai);

/**

*第四步:看牌

遍歷排過(guò)序的List集合作為Map集合的鍵值獲取對(duì)應(yīng)的值

為提高代碼復(fù)用性定義一個(gè)方法代替

*/

print("令狐沖",player01,pokerBox);

print("諸葛瑾",player02,pokerBox);

print("司馬懿",player03,pokerBox);

print("底牌",diPai,pokerBox);

}

/**

*看牌的方法:

參數(shù):

String name

LinkedList list

HashMap map

*/

public static void print(String name,LinkedList list,HashMap map){

System.out.print(name+":");

for (Integer key : list) {

System.out.print(map.get(key)+" ");

}

System.out.println();

}

}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持聚米學(xué)院。

總結(jié)

以上是生活随笔為你收集整理的JAVA实现网页版斗地主_Java实现斗地主案例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。