「java怎么完成洗牌」java洗牌算法
本篇文章给大家谈谈java怎么完成洗牌,以及java洗牌算法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、请问用java数组编写洗牌程序怎么写?我刚学java,请多指教,谢谢!!!
- 2、题目:编写程序,模拟扑克游戏中的洗牌过程.(只选红桃模拟)。用java怎么弄?
- 3、java里怎样打乱(洗牌)一个数组
- 4、java洗牌算法问题
请问用java数组编写洗牌程序怎么写?我刚学java,请多指教,谢谢!!!
package xly04;
import java.util.Random;
public class ArrayDemo3 {
/**
* 数组应用:
* 1 随机洗牌
* 2 顺序发牌
*/
public static void main(String[] args) {
String[] cards=new String[]{"黑桃A","黑桃2","黑桃3","黑桃4",
"黑桃5","黑桃6","黑桃7","黑桃8","黑桃9","黑桃10","黑桃J","黑桃Q","黑桃K",
"红桃A","红桃2","红桃3","红桃4","红桃5","红桃6","红桃7","红桃8","红桃9",
"红桃10","红桃J","红桃Q","红桃K","方块A","方块2","方块3","方块4","方块5",
"方块6","方块7","方块8","方块9","方块10","方块J","方块Q","方块K","梅花A",
"梅花2","梅花3","梅花4","梅花5","梅花6","梅花7","梅花8","梅花9","梅花10",
"梅花J","梅花Q","梅花K","大王","小王"};
//Random random=new Random();.......(1)
//int index=random.nextInt(10);//[0,10) %10
//System.out.println(index);
//String card=cards[random.nextInt(cards.length)];//长度为8,随机下标[0,8)
//System.out.println(card);//随机的某张牌
for(int i=cards.length-1;i=1;i--){
int j=new Random().nextInt(i);//或者(1)不注销用int j=random.nextInt(i);
String t=cards[i];
cards[i]=cards[j];
cards[j]=t;
}
for(int i=0;icards.length;i++){
System.out.print(cards[i]+",");
}
System.out.println();//输出回车字符
//顺序发牌:顺序的将每个牌发给每个人
String[] players=new String[]{"马伊琍","文章","六六"};
//int i=0;
//System.out.println(players[i++%players.length]);
//System.out.println(players[i++%players.length]);
//System.out.println(players[i++%players.length]);
//System.out.println(players[i++%players.length]);
//System.out.println(players[i++%players.length]);
//System.out.println(players[i++%players.length]);
for(int i=0;icards.length;i++){
//i=0,1,2,3,4,5,6,7
String card=cards[i];//card 代表每张扑克牌
String player=players[i%players.length];
//player代表每个玩游戏的人
System.out.println(player+":"+card);
}
}
}
题目:编写程序,模拟扑克游戏中的洗牌过程.(只选红桃模拟)。用java怎么弄?
洗牌过程?一句话就完成洗牌过程了!!
代码如下:
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CardGame {
public static void main(String[] args) throws IOException {
String[] types={"黑桃","草花","红心","方块"};
String[] value={"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
String[] king={"JOKER","joker"};
ListString cards=new ArrayListString();//将一副牌54张放入待洗牌的集合中
for(int i=0;itypes.length;i++){
for(int j=0;jvalue.length;j++){
cards.add(types[i]+value[j]);//每个花色的2-A
}
}
cards.add(king[0]);//大鬼
cards.add(king[1]);//小鬼
int m=0;
System.out.println("洗牌之前----------------------------------------------------\n");
for(String str:cards)
{
System.out.print(str+"\t");
m++;
if(m%13==0)
System.out.println();
}
Collections.shuffle(cards);//洗牌动作
m=0;
System.out.println("\n\n洗牌之后-----------------------------------------------------\n");
for(String str:cards)//输出洗牌后的结果
{
System.out.print(str+"\t");
m++;
if(m%13==0)
System.out.println();
}
}
}
我在这里把所有的花色都加入一起洗牌了,楼主可根据需要进行特殊花色的洗牌!!你多执行几次就会发现每次洗牌后的牌的位置都不是一样的!!关键在一个洗牌动作的方法!!
java里怎样打乱(洗牌)一个数组
//给你个思路:给要给随机值,该随机值在索引范围内,然后从索引值里面取元素,在该元素对应
//的位置,进行二次随机取其他元素,然后进行交换,就可以了!
//还有更简单的办法,java早就想到了这一点,在集合工具里面就提供该方法,其实他内部也是
//这样的思路,用随机值进行交换!
import java.util.*;
public class ArrayListTest {
public static void main(String[] args) {
Integer[] arr=new Integer[10];
for (int i = 0; i arr.length; i++) {
arr[i]=i+1;
}
System.out.println("\n原序:"+Arrays.toString(arr)+"\n");//原数组!
ListInteger list=Arrays.asList(arr);//借用集合帮忙排序!
for(Integer a:list) {
Collections.shuffle(list);//随机排序!
System.out.println("随机:"+Arrays.toString(arr));//排序后!
}
}
}
//数字或者数量,你可以随意修改,二维数组也可以照用!
java洗牌算法问题
你指的是Card里的toString方法吧
public String toString() {
String aa = suit + " " + num + " ";
return aa;
}
toString这个方法一般在 System.out.print时使用,这个是打印出String,JVM就是默认调用类的toSting方法
注:所有类都有toString方法,默认是当前对象的hashcode,即内存地址
所以在发牌是打印
public void dealcard()//发牌
{
for(int i=0;i52;i++)
{
if(i%4==0i!=0){
System.out.println(); //每发4张牌输出换行
}
// 就是这里,默认调用card的toString方法
System.out.print(card[i]); //依次输出 发的牌
}
}
java怎么完成洗牌的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java洗牌算法、java怎么完成洗牌的信息别忘了在本站进行查找喔。
发布于:2022-11-25,除非注明,否则均为
原创文章,转载请注明出处。