java纸牌互换代码 java互换手牌解析

小明左右手分别那两张纸牌 。黑桃10和红心8,现在交换手中的牌 。程序模拟,两个整数分别保存在两个变量中,java实现:
int a=8,b=10; //变量a、b分别保存红心8、黑桃10
int temp=0;//临时变量temp
//互换
temp=a;
a=b;
b=temp;
java怎样从54张扑克牌中随机产生五张 不重复的例如:有数组a = [1,2,3,4,5,6,7,8,9,10],使用首先产生一个0~10(不包含10)java纸牌互换代码的随机数,用来做数组下标 。
Random r = new Random();
int rand = r.nextInt(10);//0~10之间的随机数,但不包含10 。
假如rand=3 。java纸牌互换代码我们把a[3]放到之前创建好的数组里,你要取5张牌,这个数组就5个长 。
然后把a[3]与a[9]的位置交换,交换之后的数组为a=[1,2,3,10,5,6,7,8,9,4]
再次获取随机数,但这里获取的是0~9之间的随机数 。
int rand = r.nextInt(9);
rand的值不可能是9,那么下标为9的元素就不可能出现,也就不会重复 。
假如这次rand=6,再把a[6]放到之前创建好的数组里 。
再把a[6]与a[8]交换,交换之后的数组为a=[1,2,3,10,5,6,9,8,7,4]
再获取随机数时int rand = r.nextInt(8),那么rand就不可能是8或9 。以此类推 。
===========
import java.util.Arrays;
import java.util.Random;
public class Test {
public static void main(String[] args) {
int[] puKe = new int[54];
for(int i = 0; ipuKe.length; i++) {
puKe[i] = i + 1;
}
int[] pai = faPai(puKe, 5);
Arrays.sort(pai);
System.out.println(Arrays.toString(pai));
}
public static int[] faPai(int[] puKe, int num) {
int[] pai = new int[num];//用来装载取出的牌,5个长 。
int m = 0;//一共取5张,m表示当前取到第几张
int n = puKe.length;//随机数的范围,默认是0~n之间取随机数
Random r = new Random();
for(int i = 0; inum; i++, n--) {
int rand = r.nextInt(n);//rand为0~n之间的随机数
pai[m++] = puKe[rand];//用随机数做下标,把牌放到pai数组中 , 然后m++
// rand位置上的牌与n-1位置上的牌交换,因为n再自减,所以n-1也在自减 。
int temp = puKe[n - 1];
puKe[n - 1] = puKe[rand];
puKe[rand] = temp;
}
return pai;
}
}
=============
如果你有扑克牌图片,那么就可以把获取到的int[]中的元素做为图片数组的下标了 。
用JAVA写个代码,实现52张牌随机分给四个人java内的Collections类自带了一个shuffle洗牌算法 。
static void shuffle(List? list)
使用默认随机源对指定列表进行置换 。
static void shuffle(List? list, Random rnd)
使用指定的随机源对指定列表进行置换 。
现在你可以把52张牌放进一个List里,调用他的shuffle算法打乱顺序 。
求个Memory纸牌游戏的java代码public class Test {
public static void main(String args[]){
int puke[][] = new int[52][2];
for(int i = 0 ; i52; i++){
puke[i][0] = i+1;//牌面
puke[i][1] = 0;//0表示正面,1表示背面
}
for(int i = 2; i = 52 ;i++){
for(int j = 0 ; j52; j++){
if(puke[j][0]%i==0){
puke[j][1]=Math.abs(puke[j][1]-1);//1为0,0为1;
}
}
}
for(int i = 0 ; i52; i++){
if(puke[i][1]==0)//为正面打印
System.out.println(puke[i][0]);
}
}
}
结果为:1,4 , 9 , 16,25,36,49
java题目 小明左右手分别拿两张纸牌 黑桃10和红心8, 现在交换手中的牌 用程序模拟这一过程交换牌的话只需:1.设一个中间变量赋值为左手中的纸牌102.把右手中的纸牌8赋值给左手中的纸牌103.把中间变量中的10赋值给右手中的纸牌8 就可以了
int j=10;左手中的纸牌

推荐阅读