public class Card{
public static void main(String[] args) {
int[] p=new int[54];
for(int i=1;i<54;i++){
p=i;
double b=Math.random()*50+1;
int c=(int)b;
if(c>=i){
int temp=p;
p=p[p.length-1];
p[p.length-1]= temp;
}
System.out.println(p);
}
}
}怎样才能输不出来0作者: 董将 时间: 2012-12-22 11:50
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/*
* 模拟洗牌
*/
public class PokerDemo {
// 定义数组,表示花色和牌值
private String[] types = { "方块", "草花", "红心", "黑桃" };
private String[] values = { "2", "3", "4", "5", "6", "7", "8", "9", "10",
"J", "Q", "K", "A" };
// 定义一个用于存储扑克牌的集合
public List<String> list = new ArrayList<String>();
// 把牌给装到牌盒里
public void init() {
for (int x = 0; x < types.length; x++) {
for (int y = 0; y < values.length; y++) {
list.add(types[x] + values[y]);
}
}
}
public static void main(String[] args) {
PokerDemo pd = new PokerDemo();
// 调用初始化方法,把牌放到牌盒
pd.init();
// 洗牌
System.out.println("洗牌前:" + pd.list);
Collections.shuffle(pd.list);
System.out.println("洗牌前:" + pd.list);
}
}
自己写的模拟洗牌程序,看看对你有没有帮助作者: 焦健 时间: 2012-12-22 12:53
class Card{
public static void main(String[] args) {
int[] p=new int[54];
for(int i=1;i<54;i++){
p[i]=i;
double b=Math.random()*50+1;
int c=(int)b;
if(c>=i){
if(p[p.length-1]!=0)//如果不打乱顺序的话可以这样写。不会出现0.
{
int temp=p[i];
p[i]=p[p.length-1];
p[p.length-1]= temp;
}
}
System.out.println(p[i]);
}
}
}
//因为数组在已建立的时候会有一次初始化动作,即默认初始化,会把数组中的所有元素值设为0,所以,即使你不是从0开始赋值,比较的时候因为交换位置,依然会把后面初始化为0的元素交换到前面,才会出现0,因为数组默认初始化为0,所以这个用数不太好做,用集合好一些作者: 焦健 时间: 2012-12-22 13:25
//补充一下。这样写不会打印出0,也可以实现你说的洗牌动作。
class Card{
public static void main(String[] args) {
int[] p=new int[54];
for(int i=1;i<54;i++){
p[i]=i;
double b=Math.random()*50+1;
int c=(int)b;