永发信息网

用java设计一个纸牌程序。

答案:3  悬赏:50  手机版
解决时间 2021-11-24 23:01
用java设计一个纸牌程序。
最佳答案
用一个list放这52个元素,每个人随机一个数作为list下标发牌,发掉的牌就从list中remove掉
小写了个来耍:
public static void main(String[] args) {
ArrayList list = new ArrayList();
for (int i = 1; i <= 13; i++) {//生成牌堆
list.add("红心" + i);
list.add("黑桃" + i);
list.add("梅花" + i);
list.add("方块" + i);
}
ArrayList lista = new ArrayList();//生成牌友
ArrayList listb = new ArrayList();
ArrayList listc = new ArrayList();
ArrayList listd = new ArrayList();
while (list.size() > 1) {
lista.add(find(list));
listb.add(find(list));
listc.add(find(list));
listd.add(find(list));
}
System.out.println("甲:" + lista.toString());
System.out.println("乙:" + listb.toString());
System.out.println("丙:" + listc.toString());
System.out.println("丁:" + listd.toString());
}

public static String find(ArrayList list) {
Random random = new Random();
int m = list.size() - 1;//随机数范围为0到剩余牌数量-1
if (m == 0)//对最后一张牌处理
return list.get(0);
int index = Math.abs(random.nextInt()) % m;
String str = list.get(index);
list.remove(index);
return str;
}
全部回答
import java.util.ArrayList;
import java.util.Random;
public class Test {

public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList list = new ArrayList();
String[] str1 = {"桃心","梅花","方片","黑桃"};
String[] str2 = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
for (int i = 0; i < str1.length; i++) {
for (int j = 0; j < str2.length; j++) {
list.add(str1[i]+str2[j]);
}
}
Random random = new Random();
int count = 1;
String r1 ="";
String r2 ="";
String r3 ="";
String r4 ="";
while(list.size() > 0){
int j = random.nextInt(list.size());
if(count == 1){
r1 += list.remove(j) + " ";
}
if(count == 2){
r2 += list.remove(j) + " ";
}
if(count == 3){
r3 += list.remove(j) + " ";
}
if(count == 4){
r4 += list.remove(j) + " ";
count = 0;
}
count ++;
}
System.out.println(r1);
System.out.println(r2);
System.out.println(r3);
System.out.println(r4);
}
}
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

public class Test3 {
public static String[] str = { "2", "3", "4", "5", "6", "7", "8", "9",
"10", "J", "Q", "K", "A" };
public static String[] color = { "红", "黑", "梅", "方" };
private static List list=new ArrayList();

public Test3(){
for(int i=0;i for(int j=0;j list.add(str[i]+color[j]);
}
}
}
public static void main(String[] args) {
Test3 t = new Test3();
for(int i=1;i<4;i++){
Set set = new HashSet();
StringBuffer sBuffer = new StringBuffer();
while(true){
int m = (int)(Math.random()*(52-(i-1)*13));
set.add(list.get(m));
if(set.size()>12){
break;
}
}
Iterator iter = set.iterator();
while(iter.hasNext()){
sBuffer.append(iter.next()+",");
}
list.removeAll(set);
System.out.println("第"+i+"个人的手牌:"+sBuffer.toString());
}
System.out.print("第4个人的手牌:");
for(String s:list){
System.out.print(s+",");
}
}

}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
惠普compaq nc4000能玩NBA吗?如果能可以玩 N
阴历87年6月24日生日,今年几月几日过生日
揭阳市一级代理商联塑管在那?
从上海浦东机场T2到复兴东路673号怎么走啊?
上海至泾县下午有几班车
苹果为什么要采用4.7寸屏幕,为什么不采用其
猪肉大葱包子馅的调制
“水清澄澄莹,彻底自然见;心中无一事,水清
泰山是中国第几高山
求教,90版本走什么属性强化
以“我参与,我行动,共建生态家园”为主题,
大早上摔跤心情不好说说
圆通过快递在红光还有没有没有承包出去
真三国无双6传奇模式“五丈原之战”小兵的攻
jane can swim well,and she can a() dance()
推荐资讯
9999乘以7+1111乘以37简便计算
会计计算与分录 1.讯达公司2010年8月1日库存
江西建筑沙石多少一方、、、、?
r空调时转时停什么原因
岁月静好,现世安稳说这句话是说恋人
萍乡市下面的两区三县所辖乡镇各是哪些?
海贼王《宾克斯的美酒》中文谐音歌词.
要练惊人艺,——————。
win8.1怎么把蓝牙放到工具栏
双馈风机中转子的转速是由风轮机的机械轴带动
在受轴向载荷的紧螺栓联接的强度计算中,为什
这是什么梗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?