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

1.Card类,代表一张牌,value域代表其值,suit域代表其花色。为该类定义构造方法,设置这两个域。为成员域设计getXXX方法,返回成员域的值。为该类设计方法返回... 1.Card类,代表一张牌,value域代表其值,suit域代表其花色。为该类定义构造方法,设置这两个域。为成员域设计getXXX方法,返回成员域的值。为该类设计方法返回代表一张牌花色和值的字符串。如“梅花K”。

2.Deck类,代表一副牌,包含52个Card对象(用数组实现)。
为其设计reset方法,恢复牌的原始顺序(如梅花A、梅花2、梅花3、……梅花K、红桃A、红桃2、红桃3…………)。
为其设计shuffle方法,实现洗牌,即随意打乱以上顺序。Random
设计发牌方法drawCard,每调用一次该方法发出一张手中的牌,并返回发出牌的信息。需要对发出的牌计数,防止无牌可发。

3.DeckDemo类,测试以上类。先发一副原始顺序的牌,并显示。然后洗牌一次,再发出洗过的牌,并显示。
展开
 我来答
狂暎8j
2012-05-03 · TA获得超过723个赞
知道小有建树答主
回答量:313
采纳率:0%
帮助的人:275万
展开全部
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以内

思路明确了,代码还是自己写比较好
YugOppop6QSJ0
2012-05-03 · TA获得超过425个赞
知道小有建树答主
回答量:233
采纳率:0%
帮助的人:204万
展开全部
也写一个 用静态方法表示了类
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<vl;i++){
for(int j=0;j<sl;j++){
decks[k++]=get(j,i);
}
}
}
public static void shuffle(){
Random rdm=new Random();
String s;
for(int i=0,j;i<dl;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<dl;i++){
drawCard(i);
}
System.out.println("-------洗牌-------");
shuffle();
for(int i=0;i<dl;i++){
drawCard(i);
}
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
历盆郁7
推荐于2017-11-25 · TA获得超过4277个赞
知道大有可为答主
回答量:1795
采纳率:100%
帮助的人:958万
展开全部
分少,一点动力都没有,念你初学,给你写一个:
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]);
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
言三言
2012-05-03 · 超过23用户采纳过TA的回答
知道答主
回答量:216
采纳率:0%
帮助的人:110万
展开全部
5分?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式