0225 猜数字小游戏三个版本 保底基础和版

常见的三种循环

常规循环

for(int i =0;i<10;i++){
}

零循环

int num = 60;
while(num<=50){
}

无限循环

死循环

while(1==1){
	
}

注意:
无限循环一般需要配合适当的终止条件
所以会搭配if分支语句以及break

无限循环更简洁的写法

while(True){
	需要重复执行的内容
	if(条件){
		需要处理的事情
		break;
	}
}

猜数字版本一

电脑随机一个数

玩家无限次猜

猜对就退出循环

import java.util.Random;
import java.util.Scanner;

public class Test01 {
    public static void main(String[] args) {
        // 电脑生成一个随机数
        // 获得一个随机对象
        Random random = new Random();
        // 随机对象调用方法,得到一个随机数(假定随机数的值是0-9)
        int randNum = random.nextInt(9);
        System.out.println("猜数字游戏开始:");
        // 玩家无限次的猜这个数
        while (true) {
            // 从键盘接收用户输入的数据
            // 获得一个扫描仪对象
            Scanner scanner = new Scanner(System.in);
            // 扫描仪对象调用方法得到一个用户输入的数值
            System.out.println("请输入一个数字:");
            int userNum = scanner.nextInt();

            // 判断用户输入的这个数与电脑随机的数是否相等
            // 两个int数据通过==来比较是否相等
            if (randNum == userNum) {
                System.out.println("猜对了,游戏结束");
                break;
            } else if (userNum > randNum) {
                System.out.println("太大了");
            } else if (userNum < randNum) {
                System.out.println("太小了");
            }

        }

        // 游戏结束
        System.out.println("game over");
    }
}

版本2 三次以内的猜数字

import java.util.Random;
import java.util.Scanner;

public class Test01 {
    public static void main(String[] args) {
        // 定义变量,游戏次数
        int times = 0;
        // 电脑生成一个随机数
        // 获得一个随机对象
        Random random = new Random();
        // 随机对象调用方法,得到一个随机数(假定随机数的值是0-9)
        int randNum = random.nextInt(9);
        int userNum = 0;
        System.out.println("猜数字游戏开始:");
        // 玩家无限次的猜这个数
        while (times < 3) {
            // 游戏次数+1
            times++;
            System.out.println("当前是第几轮游戏:" + times);
            // 从键盘接收用户输入的数据
            // 获得一个扫描仪对象
            Scanner scanner = new Scanner(System.in);
            // 扫描仪对象调用方法得到一个用户输入的数值
            System.out.println("请输入一个数字:");
            userNum = scanner.nextInt();

            // 判断用户输入的这个数与电脑随机的数是否相等
            // 两个int数据通过==来比较是否相等
            if (randNum == userNum) {
                break;
            } else if (userNum > randNum) {
                System.out.println("太大了");
            } else if (userNum < randNum) {
                System.out.println("太小了");
            }

        }

        // 声明胜负
        // 加一个判断
        if (randNum == userNum) {
            System.out.println("胜利");
        } else {
            System.out.println("失败");
        }


        // 游戏结束
        System.out.println("game over");
    }
}

另一个版本

import java.util.Random;
import java.util.Scanner;

public class Test01 {
    public static void main(String[] args) {
        // 变量,胜负
        boolean isWin = false;
        // 定义变量,游戏次数
        int times = 0;
        // 电脑生成一个随机数
        // 获得一个随机对象
        Random random = new Random();
        // 随机对象调用方法,得到一个随机数(假定随机数的值是0-9)
        int randNum = random.nextInt(9);
        int userNum = 0;

        System.out.println("猜数字游戏开始:");
        // 玩家无限次的猜这个数
        while (times < 3) {
            // 游戏次数+1
            times++;
            System.out.println("当前是第几轮游戏:" + times);
            // 从键盘接收用户输入的数据
            // 获得一个扫描仪对象
            Scanner scanner = new Scanner(System.in);
            // 扫描仪对象调用方法得到一个用户输入的数值
            System.out.println("请输入一个数字:");
            userNum = scanner.nextInt();

            // 判断用户输入的这个数与电脑随机的数是否相等
            // 两个int数据通过==来比较是否相等
            if (randNum == userNum) {
                isWin = true;
                break;
            } else if (userNum > randNum) {
                System.out.println("太大了");
            } else if (userNum < randNum) {
                System.out.println("太小了");
            }

        }

        // 声明胜负
        // 加一个判断
        String result = isWin ? "胜利" : "失败";
        System.out.println("最终结果" + result);

        // 游戏结束
        System.out.println("game over");
    }
}

版本3 积分制

一开始我有100分
猜一次扣30分
猜对一次加50分

import sun.font.TrueTypeFont;

import java.util.Random;
import java.util.Scanner;

public class Test01 {
    public static void main(String[] args) {
        // 变量,初始积分
        int score = 100;
        // 变量,胜负
        boolean isWin = false;
        // 定义变量,游戏次数
        int times = 0;
        // 电脑生成一个随机数
        // 获得一个随机对象
        Random random = new Random();
        // 随机对象调用方法,得到一个随机数(假定随机数的值是0-9)
        int randNum = random.nextInt(9);
        int userNum = 0;

        System.out.println("猜数字游戏开始:");
        // 玩家无限次的猜这个数
        while (score >= 30) {
            // 显示当前积分
            System.out.println("当前积分:" + score);
            // 游戏次数+1
            times++;

            // 积分扣30
            score -= 30;

            System.out.println("当前是第几轮游戏:" + times);
            System.out.println("扣除30分后,剩余积分" + score);
            // 从键盘接收用户输入的数据
            // 获得一个扫描仪对象
            Scanner scanner = new Scanner(System.in);
            // 扫描仪对象调用方法得到一个用户输入的数值
            System.out.println("请输入一个数字:");
            userNum = scanner.nextInt();

            // 判断用户输入的这个数与电脑随机的数是否相等
            // 两个int数据通过==来比较是否相等
            if (randNum == userNum) {
                isWin = true;
                // 获得积分
                score += 50;
                // 询问用户是否要继续下一把
                System.out.println("是否继续下一把游戏?继续请按y,其它键退出");
                String isPlay = scanner.next();  // 如果用户输入y就继续,否则就退出
                // 什么情况下break 如果用户输入的不是y
                if (!isPlay.equals("y")) {
                    break;
                }

            } else if (userNum > randNum) {
                System.out.println("太大了");
            } else if (userNum < randNum) {
                System.out.println("太小了");
            }

        }

        // 声明胜负
        // 加一个判断
        String result = isWin ? "胜利" : "失败";
        System.out.println("最终结果" + result);

        // 游戏结束
        System.out.println("game over");
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲸鱼编程pyhui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值