猜字符小游戏中的细节问题以及算法

来源:互联网 发布:qq游戏大厅官方mac 编辑:程序博客网 时间:2024/03/29 20:48

游戏要求:

其游戏规则为:程序随机产生5个(7个或9个)不重复的字符(大写小写字母或数字)作为猜测的结果,
 * 由玩家来猜测此字符串。玩家可以猜测多次,每猜测一次,则由系统提示结果。
 * 如果猜测的完全正确,则游戏结束,计算玩家的游戏得分并输出;
 * 如果没有猜对,则提示猜测的结果,如猜对了几个字符,以及猜对了几个字符的位置等信息,并提示玩家游戏继续。

 * 按 exit  表示退出游戏

该程序如下:

在此基础上若可以生成重复的字符,则可修改部分代码,有以下两种修改方式:

方法一:此方法是在原来基础上删除功能,并去掉开关数组

for(int i=0;i<array.length;i++){    index=(int)(Math.random()*letters.length);    array[i]=letters[index];}

方法二:利用随机数获取大写或者小写(0是大写  1是小写):

int temp=(int)(Math.random()*2);

再利用三目运算求得随机数,不过此时的随机数可能会出现重复的(在要求可重复条件且只有两种不同类型时可以使用该方法(例如随机生成大写或小写字母),这样使得程序简洁,不需要字母数组)

char  ch= temp>0? (char)(Math.random()*26+65) :(char)(Math.random()*26+97)
代码如下:要求生成10个大写或小写字母(可重复)

public static void main(String[] args) {    char[] array=new char[10];    for(int i=0;i<array.length;i++){int temp=(int)(Math.random()*2);//随机生成0或1 //若temp>0为true,则随机生成大写字母array[i]= temp>0? (char)(Math.random()*26+65):(char)(Math.random()*26+97);    }    System.out.println(array);}




0 0
原创粉丝点击