编程实现一个猜数字游戏,使用Random类产生一个1~100的随机整数,使用弹出对话框提示用户输入数字,使用信息框对用户猜数字的结果进行提示(猜对、偏大、偏小),用户有8次机会。根据下面的代码提示分析问题,先画出实现猜数字的程序流程图,然后将下面的程序代码补充完整,编辑运行程序查看运行结果。 提交补充的代码,标明标号;提交绘制的流程图。 import java.util.Random; import javax.swing.JOptionPane; public class GuessNumber { public static void main(String[] args) { int start = JOptionPane.showConfirmDialog(null,"猜数字,游戏开始?","游戏开始", JOptionPane.YES_NO_OPTION); if(① ){ //若用户单击“确定”按钮,开始游戏 ② //产生一个1~100的随机整数 String inputValue; //保存用户输入的字符串 int inputNum; //保存字符串转换成的整数 int i = 1; //循环变量:记录猜数字的次数 while(③ ){ //用户最多8次猜数字的机会 inputValue = ④ ("请输入一个0~100的整数\n共8次机会,这是第" + i + "次"); //生成一个信息输入对话框,并接收用户输入的一个整数保存在变量inputValue中 inputNum = Integer.parseInt(inputValue); //将用户输入的字符串转换成整数 if(⑤ ){ ⑥ //使用消息对话框提示"恭喜您,猜对啦!" break; //如果猜对,退出循环游戏结束 }else if(⑦ ){ ⑧ //使用消息对话框提示"您猜的数字偏大!" }else{ ⑨ //使用消息对话框提示"您猜的数字偏小!" } i++; } if(i >8){ //若由于满8次未猜中而结束循环,则进行提示 ⑩ //使用消息对话框提示"8次机会用尽,游戏结束!" } }else //否则退出游戏 JOptionPane.showMessageDialog(null,"退出游戏", "猜数字游戏",JOptionPane.INFORMATION_MESSAGE); } }
第1题
【说明】
有一种猜数字游戏,开始时程序随机产生四个不相同的个位数字(顺序固定),然后玩家输入猜测的四个数字。程序比较后给出提示,本次猜数字有几个数字完全正确,有几个数字数值正确但是位置错误。玩家重复猜测直至结果完全正确。例如,程序生成“1234”,玩家猜测“1630”,则提示"位置正确的有:“1”个,位置错误的有:“1”个,完全错误的有“2”个。
下面的两个Java函数是猜数字游戏里面使用的两个函数,第一个用于产生四个不相同的数字。第二个函数先判断输入是否合法,若合法则进行比较,并给出提示。
【Java程序】
………………
private String randNum()//产生答案数字
{
int[] digits={0,1,2,3,4,5,6,7,8,9};
Random mum=new Random((new Date()).getTime());
for(int i=0;i<10;i++)
{
int p=Math.abs(rnum.nextInt())%10;
int tmp=digits[p];//tmp是临时存储数字的变量
(1);
digits[i]=tmp;
}
return Integer.toString(digits[0])+Integer.toString(digits[1])
+Integer.toString(digits[2])+Integer.toString(digits[3]);
}
String checkAnswer(String guess,Stdng answer)
{
if guess.length()!=4)return "要输入4个数字!";
int num=0;
try{ num=(2);} //判断输入是否是数字
catch(NumberFormatException ex)
{return "要输入数字!";}//catch
int[]timesDigit={0,0,0,0,0,0,0,0,0,0};
for(int i=0;i<4;i++){
int ptr=num%10;
num=num/10;
if (3) //输入数字有重复
return "数字有重复!";
}//for
int a=0;
int b=0;
for(int j=0;j<4;j++)
{
int pos=answer.indexOf(guess.substring(j,j+1));
if (4) //当前数字完全正确
a++;
else if(pos>=0)
b++;
}
if (5) //答案完全正确
return "恭喜!答对了!!";
else{
textAreaContent+= "位置正确的有:"+a+"个,位置错误的有:"+b+"
个,完全错误的有"+(4-a-b)+"个\n";
return "继续努力";
}
}
………………
第2题
【算法说明】
程序实现了常见的猜数字游戏。游戏开始时由程序自动产生一个1到100的随机数,接收用户输入,并给出提示信息,直至用户猜对。用户猜对后,显示猜测次数,并提供“重新开始”和“退出”功能。
算法采用两层循环实现。外层循环采用do-while循环,由循环条件控制是否重新开始。内层采用for循环,用于判断用户的每次输入。m是随机产生的整数,键盘输入是字符串类型变量,n是整型变量。
【问题1】内循环还需要一个变量,其作用为(1)。
【问题2】请将流程图5.2补充完整。
第3题
第4题
A.1/9
B.2/9
C.7/8
D.4/9
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!