紙牌比大小java代碼 撲克牌比大小java編程

JAVA中隨機(jī)生成各有13張撲克牌(每張牌從“A”到“K”)的兩組,比較兩組數(shù)對(duì)應(yīng)位置上牌點(diǎn)數(shù)大小的程序?

package card;

創(chuàng)新互聯(lián)主營(yíng)達(dá)茂旗網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都App制作,達(dá)茂旗h5小程序設(shè)計(jì)搭建,達(dá)茂旗網(wǎng)站營(yíng)銷(xiāo)推廣歡迎達(dá)茂旗等地區(qū)企業(yè)咨詢

import java.util.Hashtable;

public class Card {

/**

* 0:方塊 3:黑桃 4:王

*/

public static final int DIAMODE=0;

/**1:梅花*/

public static final int CLUB=1;

/**2:紅桃*/

public static final int HEART=2;

/**3:黑桃*/

public static final int SPADE=3;

/**4:王*/

static final int WANG=4;

/**0:方塊 3:黑桃 4:王*/

private static String[] SUIT_NAMES=new String[]{"方塊","梅花","紅桃","黑桃","王"};

public static final int THREE=0;

public static final int FOUR=1;

public static final int FIVE=2;

public static final int SIX=3;

public static final int SEVEN=4;

public static final int EIGHT=5;

public static final int NINE=6;

public static final int TEN=7;

public static final int JACK=8;

public static final int QUEEN=9;

public static final int KING=10;

public static final int ACE=11;

public static final int DUCK=12;

public static final int BALCK=13;

public static final int COLOR=14;

public static String[] RANK_NAMES=new String[]{"3","4","5","6","7"

,"8","9","10","J","Q","K","A","2","小","大"};

private int suit,rank;

// private static class Entry{

// private String name;

// private int value;

// public Entry(String name,int value) {

// this.name=name;

// this.value=value;

// }

// public int getValue() {

// return value;

// }

// public void setValue(int value) {

// this.value = value;

// }

// @SuppressWarnings("unused")

// public String getName() {

// return name;

// }

// @SuppressWarnings("unused")

// public void setName(String name) {

// this.name = name;

// }

// }

//public static Entry[] table = new Entry[120];

static HashtableString, Integer table = new HashtableString,Integer();

static{

for (int i = 0; i SUIT_NAMES.length; i++) {

// Entry entry = new Entry(SUIT_NAMES[i],i);

// table[SUIT_NAMES[i].hashCode()%120]=entry;

table.put(SUIT_NAMES[i], i);

}

for (int i = 0; i RANK_NAMES.length; i++) {

//Entry entry = new Entry(RANK_NAMES[i],i);

//table[RANK_NAMES[i].hashCode()%120]=entry;

table.put(RANK_NAMES[i], i);

}

}

public int getSuit() {

return suit;

}

public void setSuit(int suit) {

this.suit = suit;

}

public int getRank() {

return rank;

}

public void setRank(int rank) {

this.rank = rank;

}

public Card(int suit,int rank) {

setSuit(suit);

setRank(rank);

}

public Card(String strName){

String suitName;

String rankName;

if(strName.endsWith("王")){

suitName=strName.substring(1);

rankName=strName.substring(0,1);

}else{

suitName=strName.substring(0,2);

rankName=strName.substring(2);

}

setSuit(findSuit(suitName));

setRank(findRank(rankName));

}

private int findSuit(String suitName) {

//return table[suitName.hashCode()%120].getValue();

return table.get(suitName);

}

private int findRank(String rankName) {

return table.get(rankName);

}

@Override

public String toString() {

if(suit==Card.WANG)

return RANK_NAMES[rank]+SUIT_NAMES[suit];

return SUIT_NAMES[suit]+RANK_NAMES[rank];

}

@Override

public boolean equals(Object obj) {

if(obj==null)

return false;

if(obj==this)

return true;

if(obj instanceof Card){

Card other=(Card)obj;

return other.rank==rank other.suit==suit;

}

return false;

}

@Override

public int hashCode() {

return rank*10+suit;

}

}

/*************************************************************************************/

package card;

import java.util.ArrayList;

import java.util.Collections;

import java.util.Iterator;

import java.util.List;

public class CardDemo {

/**

* @param args

*/

public static void main(String[] args) {

// Card c=new Card(Card.HEART,Card.THREE);

// System.out.println(c.toString());

// c=new Card("黑桃A");

// System.out.println(c.toString());

ListCard cards = new ArrayListCard();

for (int i = 0; i = Card.DUCK; i++) {

for (int j = 0; j = Card.SPADE; j++) {

cards.add(new Card(j, i));

}

}

cards.add(new Card("小王"));

cards.add(new Card("大王"));

// Random r = new Random();

// for (int i =1; i cards.size(); i++) {

// int j=r.nextInt(i);

// Card temp=cards.get(i);

// cards.set(i, cards.get(j));

// cards.set(j, temp);

// }

Collections.shuffle(cards);

System.out.println(cards.toString());

Player[] players = new Player[3];

players[0] = new Player(0, "蕭炎");

players[1] = new Player(1, "羅峰");

players[2] = new Player(2, "小胖");

// for (int i = 0; i cards.size();i++) {

// players[i%players.length].add(cards.get(i));

// }

// for (int i = 0; i players.length; i++) {

// System.out.println(players[i].toString());

// }

IteratorCard ite = cards.iterator();

int c=0;

while(ite.hasNext()){

players[(c++)%players.length].add(ite.next());

ite.remove();

}

for (int i = 0; i players.length; i++) {

System.out.println(players[i]);

}

}

}

JAVA編程判斷撲克牌大小

import?java.util.*;

public?class?Main?{

public?static?void?main(String[]?args)?{

Scanner?scanner?=?new?Scanner(System.in);

ListString?list?=?new?ArrayListString();

while?(scanner.hasNextLine())?{

String?string?=?scanner.nextLine();

list.add(string);

if?(list.size()?==?5)?{

int?r?=?getCard(list);

System.out.println(r);

list.clear();

}

}

}

private?static?int?getCard(ListString?list)?{

int?temp?=?7;

int?size?=?list.size();

ListString?numList?=?new?ArrayListString();

SetString?numSet?=?new?TreeSetString();

ListString?colourList?=?new?ArrayListString();

SetString?colourSet?=?new?TreeSetString();

for?(int?i?=?0;?i??list.size();?i++)?{

String?num?=?list.get(i).split("?")[0];

String?colour?=?list.get(i).split("?")[1];

if?(num.equals("J"))?{

numList.add("11");

numSet.add("11");

}?else?if?(num.equals("Q"))?{

numList.add("12");

numSet.add("12");

}?else?if?(num.equals("K"))?{

numList.add("13");

numSet.add("13");

}?else?if?(num.equals("A"))?{

numList.add("14");

numSet.add("14");

}?else?{

numList.add(num);

numSet.add(num);

}

colourList.add(colour);

colourSet.add(colour);

}

//?同花順,或者同花

if?(colourSet.size()?==?1)?{

Collections.sort(numList);

for?(int?i?=?0;?i??numList.size()?-?1;?i++)?{

if?(Integer.parseInt(numList.get(i?+?1))?-?Integer.parseInt(numList.get(i))?==?1)?{

if?(i?==?numList.size()?-?2)?{

temp?=?1;

}

continue;

}?else?{

if?(temp??4)?{

temp?=?4;

}

}

}

}

//?四條或者葫蘆

if?(numSet.size()?==?2)?{

Collections.sort(numList);

//?四條

if?(!numList.get(0).equals(numList.get(1))?||?!numList.get(size?-?1).equals(numList.get(size?-?2)))?{

if?(temp??2)?{

temp?=?2;

}

}?else?{

if?(temp??3)?{

temp?=?3;

}

}

}

//?三條

if?(numSet.size()?==?3)?{

if?(temp??6)?{

temp?=?6;

}

}

//?順子

if?(colourSet.size()??1)?{

Collections.sort(numList);

for?(int?i?=?0;?i??numList.size()?-?1;?i++)?{

if?(Integer.parseInt(numList.get(i?+?1))?-?Integer.parseInt(numList.get(i))?==?1)?{

if?(i?==?numList.size()?-?2)?{

if(temp5){

temp?=?5;

}

}

}?else?{

break;

}

}

}

return?temp;

}

}

用java如何判斷撲克牌同花順

撲克牌有兩個(gè)屬性,花色和牌面大小,可以分別比較花色和牌面大小是否遞增或遞減來(lái)確定是不是同花順.但是由于撲克牌會(huì)有JQKA,所以牌面大小最好以數(shù)組或者字符串的方式實(shí)現(xiàn),通過(guò)比較下標(biāo)來(lái)比較大小,以下是大概的代碼

public?class?PuKe?{

private?String?color;

private?String?num;

public?String?getColor()?{

return?color;

}

public?void?setColor(String?color)?{

this.color?=?color;

}

public?String?getNum()?{

return?num;

}

public?void?setNum(String?num)?{

this.num?=?num;

}

public?PuKe(String?color,?String?num)?{

super();

this.color?=?color;

this.num?=?num;

}

public?static?void?main(String[]?args)?{

ListPuKecard?=?new?ArrayListPuKe();

card.add(new?PuKe("black",?"2"));

card.add(new?PuKe("black",?"3"));

card.add(new?PuKe("black",?"4"));

card.add(new?PuKe("black",?"5"));

card.add(new?PuKe("black",?"6"));

//這里因?yàn)?0是兩位數(shù)且牌面里面用不到1,所以直接用1代替10

String?check?=?"234567891JQKA";

boolean?flage?=true;

//自定義比較器,用num在check里的下標(biāo)大小作為比較依據(jù)排序

Collections.sort(card,?new?ComparatorObject()?{

@Override

public?int?compare(Object?o1,?Object?o2)?{

PuKe?er1?=?(PuKe)?o1;

PuKe?er2?=?(PuKe)?o2;

Integer?org1?=?(int)(er1.getNum()?==?null???0.0?:?check.indexOf(er1.getNum()));

Integer?org2?=?(int)(er1.getNum()?==?null???0.0?:?check.indexOf(er2.getNum()));

return?org1.compareTo(org2);

}

});

for?(int?i?=?0;?i??card.size()-1;?i++)?{

//遍歷所有的牌,如果顏色不一樣直接跳出循環(huán),不是同花順

if(!card.get(i).getColor().equals(card.get(i+1).getColor())){

flage?=false;

break;

}

//如果上一張減去下一張的差值不是1,說(shuō)明牌面不是順子,也不是同花順,跳出循環(huán)

if((int)check.indexOf(card.get(i+1).getNum())-(int)check.indexOf(card.get(i).getNum())!=1){

flage?=?false;

break;

}

}

if(flage){

System.out.println("牌面是同花順");

}else{

System.out.println("牌面不是同花順");

}

}

}

不過(guò)這種方法唯一不好的地方是check中不能直接用10,將來(lái)展示的時(shí)候需要判定,展示的是1時(shí)直接改成10.

其實(shí)實(shí)現(xiàn)方法很多,我這么寫(xiě)是因?yàn)樽罱趶?fù)習(xí),這么寫(xiě)用到的知識(shí)點(diǎn)相對(duì)會(huì)多一點(diǎn).

本文題目:紙牌比大小java代碼 撲克牌比大小java編程
標(biāo)題網(wǎng)址:http://muchs.cn/article20/doeiijo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、靜態(tài)網(wǎng)站、、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)站排名

廣告

聲明:本網(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)

搜索引擎優(yōu)化