因而较简便的java知识,随便输出17张扑克牌。?

发布日期:2018-06-05 来源:财富国际在线 阅读:
因而较简便的java知识,随便输出17张扑克牌。? 匿名用户 1小时前 37 扑克牌 花色 初学者,A到K,花色都没问题。难点在大小王上,首先王没有花色,其次大小王最多都只能有一个。牌数还要固定17张不变。 我的想法是: 花色:字符串数组里放入“黑桃”“红桃”“方片”“梅花”。………………(1) 点数:Random随机生成1---15,再传入switch,一一对应的转换为A---大王。………………(2) 输出:随机地将(1)与(2)搭配输出。 这时候问题来了,“黑桃大王”,“方片小王”,两个大王,三个小王,这些奇葩都出来…
0 0
其他回答
这个思路把你自己困住了。要求别人一定按你思路是不合理的。正确的思路,就应该是定义一个所有(54张)牌的数组,然后从中随机抽取一张、将其删除,然后将其 append 到一个新建的数组中,如此循环17次。解决现实问题的程序,要实现对现实情景的模拟。
你的思路,问题并不只在大小王上:整个过程中,已经抽到的牌都要抽出来的,不能被再次抽到。或者说,每次抽取的选择范围是不断变化的;同一张牌,每次被抽中的概率是不一样的。
热心网民 1小时前 0条评论
0 0
如果用题主的思路,用(str2+str).indexOf("王")!=3可以把“XX大/小王"等全过滤掉(str2是花色,str是点数),输出17张牌就OK。

我的思路是把54张牌存入集合,洗牌后输出前17张。
import java.util.LinkedList;import java.util.Collections;public class Test {  	private String[] types = {"黑桃", "红桃", "红心", "梅花"};	private String[] values = {"2", "3", "4", "5", "6", "7", "8"                , "9", "10", "J", "Q", "K", "A"};	private LinkedList<String> cards = new LinkedList<String>();		public static void main(String[] args){		Test t = new Test();		t.initCards();		for (int i = 0 ; i < 17; i++){			System.out.println(t.cards.get(i));		}	}		//初始化扑克牌	private void initCards(){		//先插入除大小王外的52张		for (int i = 0; i < types.length; i++){			for(int j = 0; j < values.length; j++){				cards.add(types[i] + values[j]);			}		}				//再插入大小王		cards.add("大王");		cards.add("小王");			//洗牌		Collections.shuffle(cards);	}}  
热心网民 1小时前 0条评论
0 0

关于我们 联系我们招聘信息免责申明广告服务 网站地图 百度地图 TAG标签

Copyright@2018-2022 Cfgjzx.Com 财富国际在线 版权所有 All Rights Reserved   
财富国际提供:最新财富资讯、房产资讯、股票资讯、区块链、投资理财、保险导购、健康产品、公私募基金,易经等资讯及服务.