package xly04;
成都創(chuàng)新互聯(lián)公司長(zhǎng)期為成百上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為興國(guó)企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),興國(guó)網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
import java.util.Random;
public class ArrayDemo3 {
/**
* 數(shù)組應(yīng)用:
* 1 隨機(jī)洗牌
* 2 順序發(fā)牌
*/
public static void main(String[] args) {
String[] cards=new String[]{"黑桃A","黑桃2","黑桃3","黑桃4",
"黑桃5","黑桃6","黑桃7","黑桃8","黑桃9","黑桃10","黑桃J","黑桃Q","黑桃K",
"紅桃A","紅桃2","紅桃3","紅桃4","紅桃5","紅桃6","紅桃7","紅桃8","紅桃9",
"紅桃10","紅桃J","紅桃Q","紅桃K","方塊A","方塊2","方塊3","方塊4","方塊5",
"方塊6","方塊7","方塊8","方塊9","方塊10","方塊J","方塊Q","方塊K","梅花A",
"梅花2","梅花3","梅花4","梅花5","梅花6","梅花7","梅花8","梅花9","梅花10",
"梅花J","梅花Q","梅花K","大王","小王"};
//Random random=new Random();.......(1)
//int index=random.nextInt(10);//[0,10) %10
//System.out.println(index);
//String card=cards[random.nextInt(cards.length)];//長(zhǎng)度為8,隨機(jī)下標(biāo)[0,8)
//System.out.println(card);//隨機(jī)的某張牌
for(int i=cards.length-1;i=1;i--){
int j=new Random().nextInt(i);//或者(1)不注銷用int j=random.nextInt(i);
String t=cards[i];
cards[i]=cards[j];
cards[j]=t;
}
for(int i=0;icards.length;i++){
System.out.print(cards[i]+",");
}
System.out.println();//輸出回車字符
//順序發(fā)牌:順序的將每個(gè)牌發(fā)給每個(gè)人
String[] players=new String[]{"馬伊琍","文章","六六"};
//int i=0;
//System.out.println(players[i++%players.length]);
//System.out.println(players[i++%players.length]);
//System.out.println(players[i++%players.length]);
//System.out.println(players[i++%players.length]);
//System.out.println(players[i++%players.length]);
//System.out.println(players[i++%players.length]);
for(int i=0;icards.length;i++){
//i=0,1,2,3,4,5,6,7
String card=cards[i];//card 代表每張撲克牌
String player=players[i%players.length];
//player代表每個(gè)玩游戲的人
System.out.println(player+":"+card);
}
}
}
package?zhidao;
import?java.util.Arrays;
import?java.util.Collections;
import?java.util.Comparator;
import?java.util.Scanner;
/**
*?發(fā)牌游戲
*/
public?class?PokerGame
{
/**
?*?共有1幅撲克牌,不包括大王和小王共52張牌。
?*/
public?static?final?int?POKER_NUMBER?=?52;
/**
?*?特殊分隔符?_
?*/
private?static?final?String?T?=?"_";
/**
?*?52張牌br?/
?*?順序?yàn)楹谔摇⒓t心、草花、方塊
?*/
public?static?final?String[]?POKERS?=?
{
"A"?+?T?+?"0",?"A"?+?T?+?"1",?"A"?+?T?+?"2",?"A"?+?T?+?"3",
"2"?+?T?+?"0",?"2"?+?T?+?"1",?"2"?+?T?+?"2",?"2"?+?T?+?"3",
"3"?+?T?+?"0",?"3"?+?T?+?"1",?"3"?+?T?+?"2",?"3"?+?T?+?"3",
"4"?+?T?+?"0",?"4"?+?T?+?"1",?"4"?+?T?+?"2",?"4"?+?T?+?"3",
"5"?+?T?+?"0",?"5"?+?T?+?"1",?"5"?+?T?+?"2",?"5"?+?T?+?"3",
"6"?+?T?+?"0",?"6"?+?T?+?"1",?"6"?+?T?+?"2",?"6"?+?T?+?"3",
"7"?+?T?+?"0",?"7"?+?T?+?"1",?"7"?+?T?+?"2",?"7"?+?T?+?"3",
"8"?+?T?+?"0",?"8"?+?T?+?"1",?"8"?+?T?+?"2",?"8"?+?T?+?"3",
"9"?+?T?+?"0",?"9"?+?T?+?"1",?"9"?+?T?+?"2",?"9"?+?T?+?"3",
"10"?+?T?+?"0",?"10"?+?T?+?"1",?"10"?+?T?+?"2",?"10"?+?T?+?"3",
"J"?+?T?+?"0",?"J"?+?T?+?"1",?"J"?+?T?+?"2",?"J"?+?T?+?"3",
"Q"?+?T?+?"0",?"Q"?+?T?+?"1",?"Q"?+?T?+?"2",?"Q"?+?T?+?"3",
"K"?+?T?+?"0",?"K"?+?T?+?"1",?"K"?+?T?+?"2",?"K"?+?T?+?"3"
};
/**
?*?原始的撲克牌
?*/
public?static?final?String[]?ORIAL_POKERS?=?POKERS.clone?();
/**
?*?發(fā)到哪張牌?0
?*/
public?static?int?currentIndex?=?0;
/**
?*?四種花色
?*/
public?static?final?String?POKER_COLOR?=?"黑桃"?+?T?+?"紅心"?+?T?+?"草花"?+?T?+?"方塊";
/**
?*?發(fā)牌
?*?@param?n?int?一共幾個(gè)人玩牌
?*?@param?results?儲(chǔ)存發(fā)牌結(jié)果的數(shù)組
?*/
public?static?void?drawPoker?(int?n,?String[][]?results)
{
int?m?=?n?-?1;
if?(n?==?0)
{
return;
}
int?number?=?(POKER_NUMBER?-?currentIndex)?/?n;
while?(number??0)
{
String?current?=?POKERS[currentIndex++];
String?pk?=?current.split?("\\"?+?T)[0].trim?();
int?col?=?Integer.parseInt?(current.split?("\\"?+?T?)[1].trim?());
if?(null?==?results[m][col])
{
results[m][col]?=?pk?+?"?";
}
else?
{
results[m][col]?+=?pk?+?"?";
}
number--;
}
for?(?int?i?=?0;?i??results.length;?i++?)
{
for?(?int?j?=?0;?j??results[i].length;?j++?)
{
if?(null?==?results[i][j])
{
results[i][j]?=?"";
}
}
}
drawPoker?(--n,?results);
}
/**
?*?給牌排序
?*?@param?orialPokers?String?原始撲克牌
?*?@param?temp?String[]?每張花色的撲克牌數(shù)組
?*/
private?static?void?sortPokers?(?final?String?orialPokers,?String[]?temp?)
{
Arrays.sort?(temp,?new?ComparatorString?()
{
@Override
public?int?compare?(?String?o1,?String?o2?)
{
int?index1?=?orialPokers.indexOf?(o1?+?T);
int?index2?=?orialPokers.indexOf?(o2?+?T);
if?(index1??index2)
{
return?-1;
}
else?if?(index1??index2)
{
return?1;
}
else
{
return?0;
}
}
});
}
/**
?*?洗牌
?*/
private?static?void?shufflePokers?(?String[]?POKERS?)
{
Collections.shuffle?(Arrays.asList?(POKERS));
}
public?static?void?main?(?String[]?args?)
{
System.out.print?("輸入人數(shù):");
Scanner?scanner?=?new?Scanner?(System.in);
int?n?=?scanner.nextInt?();
scanner.close?();
String[]?pColors?=?POKER_COLOR.split?("\\"?+?T?);
String[][]?results?=?new?String[n][pColors.length];
shufflePokers?(POKERS);
drawPoker?(n,?results);
final?String?poker?=?Arrays.toString?(ORIAL_POKERS);
System.out.println?("\n輸出如下:\n");
for?(int?i?=?0;?i??results.length;?i++)
{
System.out.println?("第"?+?(?i?+?1?)?+?"個(gè)人:");
for?(?int?j?=?0;?j??results[i].length;?j++?)
{
String[]?temp?=?results[i][j].trim?().split?("\\s+");
sortPokers?(poker,?temp);
System.out.println?(pColors[j]?+?":"?+?Arrays.toString?(temp).replaceAll?("[\\,\\[\\]]",?""));
}
System.out.println?();
}
}
}
//牌類
public?class?Card?{
private?int?face;?//牌的面值
private?int?suit;??//牌的花色
public?Card(int?face,?int?suit)?{
super();
this.face?=?face;
this.suit?=?suit;
}
public?int?getFace()?{
return?face;
}
public?void?setFace(int?face)?{
this.face?=?face;
}
public?int?getSuit()?{
return?suit;
}
public?void?setSuit(int?suit)?{
this.suit?=?suit;
}
}
//模擬洗牌和發(fā)牌
public?class?Test?{
public?static?void?main(String[]?args)?{
Card[]?deck?=?new?Card[52];
fillDeck(deck);
deal(deck);
System.out.println();
}
private?static?void?fillDeck(Card[]?deck)?{
int?i,?j=0;
for?(i?=?0;?i??52;?i++)?{
j?=?(int)?(Math.random()?*?52);
deck[i]=new?Card(j%13,j/13);?
}
}
private?static?void?deal(Card[]?deck)?{
int?k1,?k2;
System.out.println();
for?(k1?=?0,?k2?=?k1?+?26;?k1??26;?k1++,?k2++)?{
if?(k1?%?13?==?0)
System.out.println("\n第"?+?(k1?/?13?+?1)?+?
"組牌:\t\t\t第"+?(k1?/?13?+?3)?+?"組牌:");
System.out.print("\nCard:??"?+?deck[k1].getFace()?+?
"??Suit:??"+?deck[k1].getSuit());
System.out.print("\t\t\tCard:??"?+?deck[k2].getFace()?+?
"??Suit:??"+?deck[k2].getSuit());
}
}
}
import java.util.ArrayList;
import java.util.Random;
public class PokerDemo {
ArrayListCard poker = new ArrayListCard();
Player[] players;
int n = 4;
String[] name = {"Wang", "Zhang", "Li", "Yuan"};
public PokerDemo() {
players = new Player[n];
for(int i = 0; i players.length; i++)
players[i] = new Player(name[i]);
for(int i = 0; i 4; i++)
for(int j = 0; j 13; j++)
poker.add(new Card(i, j));
System.out.println("洗牌前: " + poker);
xipai();
System.out.println("洗牌后: " + poker);
fapai();
System.out.println("發(fā)牌后: ");
for(int i = 0; i players.length; i++)
System.out.println(players[i]);
}
public void xipai() {
Random r = new Random();
ArrayListCard tmp = new ArrayListCard();
while(!poker.isEmpty()) {
int index = r.nextInt(poker.size());
Card card = poker.get(index);
tmp.add(card);
poker.remove(index);
}
poker = new ArrayListCard(tmp);
}
public void fapai() {
int p = 0;
while(!poker.isEmpty()) {
Card card = poker.get(0);
players[p].add(card);
p = (p + 1) % n;
poker.remove(0);
}
}
public static void main(String[] args) {
new PokerDemo();
}
}
class Card {
int val, sty;
final String[] value = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};
final String[] style = {"黑桃", "紅心", "梅花", "方塊"};
public Card(int s, int v) {
sty = s;
val = v;
}
public String toString() {
return style[sty]+ " " + value[val];
}
}
class Player {
ArrayListCard cards = new ArrayListCard();
String name;
public Player(String n) {
name = n;
}
public void add(Card card) {
cards.add(card);
}
public String toString() {
return name + ":\t" + cards;
}
}
網(wǎng)頁(yè)名稱:java撲克牌洗牌代碼 java 撲克牌
標(biāo)題路徑:http://chinadenli.net/article4/dogsjoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、自適應(yīng)網(wǎng)站、網(wǎng)站導(dǎo)航、網(wǎng)站營(yíng)銷、網(wǎng)頁(yè)設(shè)計(jì)公司、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)