若应用程序的main方法中,定义字符串数组f和s:分别表示扑克牌面值和花色;定义52个元素的
Card类型数组desk,用来存放4个花色的52张牌。如下所示:
String f[] = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
String s[] = {"黑桃","红桃","梅花","方块"}
Card deck = new Card[52];
类源代码如下:
public class Card{
private String face;
private String suit;
public Card(String f , String s) {
face = f ;
suit = s ;
}
public String getFace() {
return face;
}
public String getSuit() {
return suit;
}
public String toString() {
return face+"of"+suit;
}
}
(1) 使用Card类的构造方法给deck数组的52张牌赋值,要求数组中先存放黑桃花色的A,2,3,.....,K;
然后是红桃花色的A,2,3,.....,K;梅花花色的A,2,3,.....,K;方块花色的A,2,3,.....,K。
请写出实现上述功能的程序段。
(2)请编写模拟洗牌的程序段,即把数组deck中的扑克牌随机打乱存放顺序。
Card类型数组desk,用来存放4个花色的52张牌。如下所示:
String f[] = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
String s[] = {"黑桃","红桃","梅花","方块"}
Card deck = new Card[52];
类源代码如下:
public class Card{
private String face;
private String suit;
public Card(String f , String s) {
face = f ;
suit = s ;
}
public String getFace() {
return face;
}
public String getSuit() {
return suit;
}
public String toString() {
return face+"of"+suit;
}
}
(1) 使用Card类的构造方法给deck数组的52张牌赋值,要求数组中先存放黑桃花色的A,2,3,.....,K;
然后是红桃花色的A,2,3,.....,K;梅花花色的A,2,3,.....,K;方块花色的A,2,3,.....,K。
请写出实现上述功能的程序段。
(2)请编写模拟洗牌的程序段,即把数组deck中的扑克牌随机打乱存放顺序。
import java.util.List;public class RandomCard { public static void main(String[] args) {
List<Card> list = getnewList();
//洗牌后的LIST
int i=1;
for (Card s : list) {
System.out.println("-----"+s.toString());
}
}
static List<Card> list = getList52();
static List<Card> listnew = new ArrayList<Card>();
static int flag = list.size();
//洗牌
public static List<Card> getnewList() {
flag--;
String code = null;
for(int i = 0;i<list.size();i++) {
//随机获得一个
int charIndex = (int) Math.floor(Math.random() * flag);
//加入
listnew.add(list.get(charIndex));
//加了后去掉
list.remove(charIndex);
//递归
getnewList();
}
return listnew;
}
//原来的牌
public static List<String> getList() { List<String> list = new ArrayList<String>();
list.add("A");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
list.add("6");
list.add("7");
list.add("8");
list.add("9");
list.add("10");
list.add("J");
list.add("Q");
list.add("K");
return list;
}
//原来的牌
public static List<String> getListFlag() { List<String> list = new ArrayList<String>();
list.add("黑");
list.add("红");
list.add("梅");
list.add("方");
return list;
}
//生成52张牌
public static List<Card> getList52(){
List<Card> list0 = new ArrayList<Card>();
List<String> list = getListFlag();
List<String> list1 = getList();
for(int i = 0;i<list1.size();i++){
for(int j =0;j<list.size();j++){
Card dCard =new RandomCard().new Card(list1.get(i).toString(),list.get(j).toString()) ;
list0.add(dCard);
}
}
return list0;
}
class Card{
private String face;
private String suit;
public Card(String f , String s) {
face = f ;
suit = s ;
}
public String getFace() {
return face;
}
public String getSuit() {
return suit;
}
public String toString() { return face+"of"+suit;
}
}
}
-----10of梅
-----2of红
-----Qof红
-----6of红
-----7of红
-----8of黑
-----Qof方
-----2of方
-----7of方
-----9of方
-----9of黑
-----Jof梅
-----2of黑
-----10of方
-----6of方
-----Aof黑
-----Aof梅
-----Qof黑
-----Aof红
-----2of梅
-----4of方
-----4of黑
-----Jof方
-----6of梅
-----5of梅
-----3of梅
-----9of梅
-----6of黑
-----5of黑
-----10of黑
-----7of黑
-----3of红
-----4of梅
-----9of红
-----Qof梅
-----7of梅
-----10of红
-----Jof黑
-----Kof梅
-----Aof方
-----5of红
-----Jof红
-----Kof黑
-----5of方
-----Kof红
-----3of黑
-----8of红
-----3of方
-----8of方
-----8of梅
-----4of红
-----Kof方
import java.util.* ;
class Card{
String suit;
String value;
public Card(){
suit=new String("");
value=new String("");
}
public Card(String s,String v){
suit=s;
value=v;
}
}
public class Poker{
public static void main(String[] args){
String[] f={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
String[]s={"黑心","红心","梅花","方块"};
Card[] deck=new Card[52];
int k=0;
for(int i=0;i<4;i++)
for(int j=0;j<13;j++){
deck[k]=new Card(s[i],f[j]);
k++;
}
printCards(deck);
dealCards(deck);
printCards(deck);
} static void printCards(Card[] d){
for(int i=0;i<52;i++){
if(i%13==0) System.out.println("");
System.out.print(d[i].suit+d[i].value+" ");
}
System.out.println("");
} static void dealCards(Card[] d){
Random rand=new Random();
int k;
Card temp;
for(int i=51;i>0;i--){ //随机从前i张牌中抽出一张与第i张调换。
k=rand.nextInt(i);
temp=d[k];
d[k]=d[i];
d[i]=temp;
}
}
}
return face;
}
public String getSuit() {
return suit;
}
public String toString() { return face+"of"+suit;
}
这几个方法比较简单,应该好写。