黑马程序员技术交流社区
标题: 编程实现猜数字游戏 [打印本页]
作者: _let'sgo 时间: 2015-11-2 22:11
标题: 编程实现猜数字游戏
编写程序随即生成一个0-100之间的随机数。程序提示用户输入一个数字,不停猜测,直到猜对为止。最后输出猜测的数字,和猜测的次数。并且如果没有猜中要提示用户输入的值是大了还是小了。
作者: 秋色潇湘 时间: 2015-11-2 22:11
- import java.util.Scanner;
- import java.util.Random;
- /*
- @author XuChang
- */
- class GuessNumCtrl {
- public static void main(String[] args) {
- GuessNum guess = new GuessNum();
- guess.start();
- }
- }
- class GuessNum {
- public void start() {
- Random rad = new Random();
- int num = rad.nextInt(100)+1;
- int count = 0;
- System.out.println("请猜一个数字,在1-100之间:");
- while(true) {
- int i = getInt();
- if (num == i) {
- System.out.println("恭喜你,答对了,继续猜请输入1,退出请输入2-100");
- int j = getInt();
- if (j!=1){
- return;
- }
- count = 0;
- this.start();
- } else if (i < num ) {
- count ++;
- System.out.println("小了,第" + count + "次猜数");
- continue;
- } else {
- count ++;
- System.out.println("大了,第" + count + "次猜数");
- continue;
- }
- }
- }
- public int getInt() { //键盘获取一个1-100之间的int型
- Scanner scan = new Scanner(System.in);
- int num ;
- while (true) {
- try {
- num = scan.nextInt();
- }
- catch (Exception e) {
- System.out.println("输入不正确,请重新输入1-100之间的数字");
- scan = new Scanner(System.in);
- continue;
- }
- if (0 < num && num < 101) {
- return num;
- }else {
- System.out.println("输入不正确,请重新输入1-100之间的数字");
- continue;
- }
- }
- }
- }
复制代码
作者: aktbt 时间: 2015-11-2 22:48
//猜数字小游戏
import java.util.Scanner;
class Guess_Num {
public static void main(String[] args) {
//先生成随机数
int guessNum=(int)(Math.random()*100)+1;
//开始猜数
Scanner sc=new Scanner(System.in);
int temp;
int count=0;
System.out.println("请输入一个1-100间的整数");
while (true){
temp=sc.nextInt();
count++;
if (temp>guessNum){
System.out.println("大了");
continue;
}
if (temp<guessNum){
System.out.println("小了");
continue;
}
if (temp==guessNum){
System.out.println("中了");
break;
}
}
System.out.println("猜数字次数为"+count);
}
}
作者: iq513394 时间: 2015-11-2 23:55
- import java.util.Scanner;
- class GuessNumber
- {
- public static void main(String[] args)
- {
-
- int number = (int)(Math.random()*100) + 1;
-
- while(true) {
- Scanner sc = new Scanner(System.in);
- System.out.println("please input your guess number:");
- int guessNumber = sc.nextInt();
- if(number < guessNumber) {
- System.out.println(guessNumber+" is too large.");
- } else if(number > guessNumber) {
- System.out.println(guessNumber+" is small.");
- } else {
- System.out.println("Congratulation! you guess it.");
- break;
- }
- }
- }
- }
复制代码
作者: jeffdy66 时间: 2015-11-3 00:38
/*
使用随机数随机产生一个1-1000之间的数,给用户10次机会
// 产生 m,n 之间的随机数
// arc4random_uniform(n-m+1)+m
// arc4random_uniform(50-10+1)+10
*/
#include <stdio.h>
#include <stdlib.h>
int main(int argc, const char * argv[]) {
// 定义变量
// 保存计算机产生的随机数和玩家输入的数字
// 保存随机数产生的范围
// 保存总的次数
// 保存已经竞猜的次数
int randomNum=0,inputNum=0;
int m=1,n=1000;// 设定范围
int totalCount=10;
int nowCount=1;
int flag=1;
int oldNum=0;
// 产生随机数
// 导入头文件 <stdlib.h>
// 调用随机数函数,产生随机数
// arc4random_uniform(3); 0,1,2
// arc4random_uniform(1000) 0-999
// arc4random_uniform(1000)+1 [1,1000]
randomNum=arc4random_uniform(n-m+1)+m;
// 死循环判断
while(flag){
// 判断次数是否小于总的次数
if(nowCount<=totalCount){
// 提示让用输入一个数
printf("请输入[%d,%d]之间的数字\n",m,n);
scanf("%d",&inputNum);
if(inputNum>randomNum){
printf("当前是第%d次竞猜,还有%d次机会\n上次竞猜:%d,本次竞猜:%d\n竞猜结果:猜大了!\n",nowCount,totalCount-nowCount,oldNum,inputNum);
}else if (inputNum<randomNum){
printf("当前是第%d次竞猜,还有%d次机会\n上次竞猜:%d,本次竞猜:%d\n竞猜结果:猜小了!\n",nowCount,totalCount-nowCount,oldNum,inputNum);
}else {
printf("当前是第%d次竞猜,还有%d次机会\n上次竞猜:%d,本次竞猜:%d\n竞猜结果:猜对了!\n",nowCount,totalCount-nowCount,oldNum,inputNum);
flag=0;
}
}
nowCount++;
oldNum=inputNum;
}
return 0;
}
作者: 一生1314 时间: 2015-11-3 16:50
- package cn.itcast.test;
- /**
- * 编写程序随即生成一个0-100之间的随机数。程序提示用户输入一个数字,
- * 不停猜测,直到猜对为止。最后输出猜测的数字,和猜测的次数。
- * 并且如果没有猜中要提示用户输入的值是大了还是小了。
- */
- import java.util.Random;
- import java.util.Scanner;
- public class Demo4 {
- public static void main(String[] args)
- {
- //获取随机数对象
- Random random = new Random();
- int guess = (int)(random.nextInt(100))+1;//要求随机数是0~100的
- Scanner sc = new Scanner(System.in);//创建一个扫描器对象
- int count = 0;//定义一个变量,用来控制猜测的测试
- while(true){
- System.out.print("请输入数字 ");
- int num = sc.nextInt();//调用扫描器的nextInt方法扫描一个数字
-
- if(num>guess){
- System.out.print("大了"+"\n");
- }else if(num<guess){
- System.out.println("小了"+"\n");
- }else{
- System.out.println("您猜对了" +"\n");
- break;
- }
-
- count++;
- System.out.println("用来接收您输入的次数"+count);
- }
- }
- }
复制代码
作者: 天晴了吗 时间: 2015-11-6 00:15
这么多种方法我都没看懂,没救了
作者: ly631960324 时间: 2015-11-10 23:38
import java.util.Scanner;
class Test3_Math
{
public static void main(String[] args)
{
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
//设置系统随机数
int random = (int)(Math.random() * 100 + 1);
System.out.println("请输入您猜测的数字,范围在 1-100 之间:");
//设置num接收键盘录入,count记录猜测次数
int num = 0;
int count = 0;
//用来提示的最大最小区间
int min = 1,max = 100;
while(num != random)
{
//接收键盘录入
num = sc.nextInt();
count++;
//判断
if(num > random)
{
System.out.println("大了");
System.out.println("---------------------");
//将num作为范围的最大值
max = num;
System.out.println("请输入" + min + " - " + max + "之间的数字:");
}else if (num <random)
{
System.out.println("小了");
System.out.println("---------------------");
//将num作为范围的最小值
min = num;
System.out.println("请输入" + min + " - " + max + "之间的数字:");
}else
{
System.out.println("输入正确!");
}
}
System.out.println("您猜了:" + count + "次");
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |