永发信息网

用java程序编写一个发牌的程序。。。跪求了。。。。

答案:4  悬赏:0  手机版
解决时间 2021-11-10 13:41
用java程序编写一个发牌的程序。。。跪求了。。。。
最佳答案
分少,一点动力都没有,念你初学,给你写一个:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Admin {

public static void main(String... args) {
Deck deck = new Deck();

deck.reset();
deck.shuffle();

for (int i = 0; i < 53; i++) {
deck.drawCard();
}
}
}

class Card {

private String value;

private String suit;

public String getSuit() {
return suit;
}

public void setSuit(String suit) {
this.suit = suit;
}

public String getValue() {
return value;
}

public void setValue(String value) {
this.value = value;
}

public String toString() {
return suit + value;
}
}

class Deck {

private String[] huase = { "红桃", "黑桃", "方片", "梅花" };

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

private Card[] card = null;

private List randomList = new ArrayList();

private int idx = 0;

public void reset() {
List data = new ArrayList();
for (int i = 0; i < huase.length; i++) {
for (int j = 0; j < value.length; j++) {
Card c = new Card();
c.setSuit(huase[i]);
c.setValue(value[j]);
data.add(c);
}
}
card = (Card[]) data.toArray(new Card[0]);

System.out.println(Arrays.deepToString(card));
}

public void shuffle() {

while (randomList.size() < 52) {
int i = (int) (Math.random() * 52);
if (!randomList.contains(i)) {
randomList.add(i);
}
}

for (int i = 0; i < randomList.size(); i++) {
int idx = Integer.parseInt(String.valueOf(randomList.get(i)));
System.out.print(card[idx] + ",");
}
System.out.println();
}

public void drawCard() {
if (idx >= 52) {
System.out.println("已发完毕");
} else {
int a = Integer.parseInt(String.valueOf(randomList.get(idx++)));
System.out.println(card[a]);
}
}
}
全部回答
5分?
1、设计二维数组a[13][4],13代表2,3,4,5,...,K,A , 4代表红黑方梅 13*4=52
2、这样a[0][0]就是红桃2,a[12][3]就是梅花A
按照这么来随机发牌就很简单了,直接随机个一个a[i][j]就可以了。i和j都分别在13和4以内

思路明确了,代码还是自己写比较好
也写一个 用静态方法表示了类
public class Deck {
static String[] values=new String[]{"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
static String[] suits=new String[]{"红桃","黑桃","方片","梅花"};
static int vl=values.length;
static int sl=suits.length;
static int dl=vl*sl;
static String[] decks=new String[dl];
public static String get(int s,int v){
return suits[s]+"-"+values[v];
}
public static void reset(){
for(int i=0,k=0;i for(int j=0;j decks[k++]=get(j,i);
}
}
}
public static void shuffle(){
Random rdm=new Random();
String s;
for(int i=0,j;i j=rdm.nextInt(dl);
s=decks[j];
decks[j]=decks[i];
decks[i]=s;
}
}
public static void drawCard(int i){
System.out.println(decks[i]);
}
public static void main(String[] args) {
reset();
for(int i=0;i drawCard(i);
}
System.out.println("-------洗牌-------");
shuffle();
for(int i=0;i drawCard(i);
}
}

}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
示波器带宽选择问题
気に入る的宾语是を还是が?
kai三声,ge四声,什么词?
万用表测量电流电压时与电路串联并联什么意思
求8月4日谁能百里挑一中,杨昱跳的舞的背景音
我打算购买IDS掌上游戏机请大家给我推荐一套
S.H.E痛快歌词
寻找一种海产品干货 形状跟鱿鱼丝挺像
人为什么要有感情?
photoshop cs3原版正式版下载,不要盗版的
谁有金刚刺的根(金刚藤铁菱角、马加勒、筋骨
立强汽配地址有知道的么?有点事想过去!
帮人推销可以赚钱吗?
大专英语汉译英(9句)
两个人暧昧没说破,被一大堆朋友哄笑怎么办?
推荐资讯
复习2018国网考试的资料有什么?
做梦梦见个男人抓住自己不放是啥意思
7.1的TrueHD转成5.1的DTS会不会丢失另外两个
高考下雨有什么寓意嘛求解
潜伏在黎明之前叶佩秋
上海莘丽网络信息有限公司怎么样?
如何购买工商银行结算套餐?
济宁今年会冷吗
nike kwazi,鉴定真假
蝎子舞蹈工作室(奇山路)地址好找么,我有些事
从邯郸汽车站到招商大酒店坐几路公交车
我要想做一件事想要的结果,然后拿另一件事掩
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?