「java抽出纸牌」如何用java实现抽奖功能

博主:adminadmin 2023-03-17 13:27:06 183

今天给各位分享java抽出纸牌的知识,其中也会对如何用java实现抽奖功能进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

纸牌游戏 用java实现

public class Test {

public static void main(String args[]){

int puke[][] = new int[52][2];

for(int i = 0 ; i 52; i++){

puke[i][0] = i+1;//牌面

puke[i][1] = 0;//0表示正面,1表示背面

}

for(int i = 2; i = 52 ;i++){

for(int j = 0 ; j 52; j++){

if(puke[j][0]%i==0){

puke[j][1]=Math.abs(puke[j][1]-1);//1为0,0为1;

}

}

}

for(int i = 0 ; i 52; i++){

if(puke[i][1]==0)//为正面打印

System.out.println(puke[i][0]);

}

}

}

结果为:1,4,9,16,25,36,49

java语言编程扑克牌

一:import java.util.Scanner;

public class Play {

/**

* 玩牌

*/

public static void main(String[] args) {

Poker poker = new Poker();

boolean over = false;

Scanner cin=new Scanner(System.in);

while(!over){

System.out.println("打牌输入1,展示剩余牌输入其他字符:");

String c=cin.nextLine();

if("1".equals(c)){

int index = (int) (Math.random()*poker.getSize());

poker.remove(index);

}else{

poker.ShowPages();

}

}

/*for(int i = 0;i54;i++){

int index = (int) (Math.random()*poker.getSize());

poker.remove(index);

poker.ShowPages();

}

*/

}

}二://牌

public class Page { private String huase = "";

private String haoma = "";

public Page(String huase,String haoma){

this.huase = huase;

this.haoma = haoma;

}

public String show(){

return this.huase+this.haoma;

}

}三:import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

/**

* 一副扑克

*/

public class Poker {

private List pages = new ArrayList();

public Poker(){

String huase[] = new String[]{"黑桃","红桃","草花","方块"};

String haoma[] = new String[]{"A","2","3","4","5","6","7","8","9","10"

,"J","Q","K"};

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

for(int j = 0;jhuase.length;j++){

pages.add(new Page(huase[j],haoma[i]));

}

}

pages.add(new Page("","大王"));

pages.add(new Page("","小王"));

}

public void ShowPages(){

System.out.println("展示剩余牌:");

for(Iterator i = pages.iterator();i.hasNext();){

System.out.println(((Page)i.next()).show());

}

}

//打牌

public void remove(int index){

pages.remove(index);

}

//剩余牌数

public int getSize(){

return pages.size();

}

}

JAVA中随机生成各有13张扑克牌(每张牌从“A”到“K”)的两组,比较两组数对应位置上牌点数大小的程序?

package card;

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怎样从54张扑克牌中随机产生五张 不重复的

例如:有数组a = [1,2,3,4,5,6,7,8,9,10],使用首先产生一个0~10(不包含10)的随机数,用来做数组下标。

Random r = new Random();

int rand = r.nextInt(10);//0~10之间的随机数,但不包含10。

假如rand=3。我们把a[3]放到之前创建好的数组里,你要取5张牌,这个数组就5个长。

然后把a[3]与a[9]的位置交换,交换之后的数组为a=[1,2,3,10,5,6,7,8,9,4]

再次获取随机数,但这里获取的是0~9之间的随机数。

int rand = r.nextInt(9);

rand的值不可能是9,那么下标为9的元素就不可能出现,也就不会重复。

假如这次rand=6,再把a[6]放到之前创建好的数组里。

再把a[6]与a[8]交换,交换之后的数组为a=[1,2,3,10,5,6,9,8,7,4]

再获取随机数时int rand = r.nextInt(8),那么rand就不可能是8或9。以此类推。

===========

import java.util.Arrays;

import java.util.Random;

public class Test {

public static void main(String[] args) {

int[] puKe = new int[54];

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

puKe[i] = i + 1;

}

int[] pai = faPai(puKe, 5);

Arrays.sort(pai);

System.out.println(Arrays.toString(pai));

}

public static int[] faPai(int[] puKe, int num) {

int[] pai = new int[num];//用来装载取出的牌,5个长。

int m = 0;//一共取5张,m表示当前取到第几张

int n = puKe.length;//随机数的范围,默认是0~n之间取随机数

Random r = new Random();

for(int i = 0; i num; i++, n--) {

int rand = r.nextInt(n);//rand为0~n之间的随机数

pai[m++] = puKe[rand];//用随机数做下标,把牌放到pai数组中,然后m++

// rand位置上的牌与n-1位置上的牌交换,因为n再自减,所以n-1也在自减。

int temp = puKe[n - 1];

puKe[n - 1] = puKe[rand];

puKe[rand] = temp;

}

return pai;

}

}

=============

如果你有扑克牌图片,那么就可以把获取到的int[]中的元素做为图片数组的下标了。

用JAVA实现在52张扑克牌中随机抽取一张功能(除大小王),不允许随机抽取的扑克牌出现重复

不想写,只说思路吧

1,用Link当抽取一张后就删除抽取的那个节点

2.用stack,stack里保存的扑克随机生机,那么抽取时也是随便也保存不会抽取到已经抽取的

还有其他的方法我就不说了,够用就行了

java抽出纸牌的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于如何用java实现抽奖功能、java抽出纸牌的信息别忘了在本站进行查找喔。