JAVA语言基础综合案例

综合案例

1、猜数字游戏

需求: 有猜数字游戏,其游戏规则为:

  • 1.(程序选择难度产生0-100、0-1000、0-10000、0-100000四个难度的随机整数)作为猜测的结果,由玩家来猜测此数。

  • 2.(玩家可以猜测多次,每猜测一次,则由系统提示结果,猜大了或者猜小了。

  • 3.如果猜测的完全正确,则游戏结束,计算玩家的游戏得分并输出;

    public class GuessNumber {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            int option = 0;//存放选项的
            while (true) {
                System.out.println("**********************************");
                System.out.println("     1----等级1:0-100");
                System.out.println("     2----等级2:0-1000");
                System.out.println("     3----等级3:0-10000");
                System.out.println("     4----等级4:0-100000");
                System.out.println("     0----退出");
                System.out.println("**********************************");
    
                System.out.println("请输入对应数字进行操作:");
                option = scanner.nextInt();
                if (option >= 0 && option <= 4) {
                    break;//选择正确
                }
                System.out.println("输入错误,请重新输入!");
            }
            if (option != 0) {
                int range = 10;
                for (int i = 1; i <= option; i++) {//输入了几就在10后面加几位
                    range *= 10;
                }
    
                int rand = randNumber(0, range);//随机生成一个0-range的数
                System.out.println(rand);
                int count = 0;
                while (true) {
                    System.out.println("请输入一个数字:");
                    int temp = scanner.nextInt();
                    count++;
                    if (judge(rand, temp) == 0) {
                        System.out.println("猜小了!");
                    } else if (judge(rand, temp) == 2) {
                        System.out.println("猜大了!");
                    }
                    if (judge(rand, temp) == 1) {
                        System.out.println("恭喜你" + count + "次答对,游戏结束!");
                        break;
                    }
                }
            }else{
                System.out.println("程序退出!");
            }
        }
    
        /**
         * 产生随机数组
         *
         * @param startPos 范围的起始
         * @param endPos   范围的终止
         * @return 产生的数组
         */
        public static int randNumber(int startPos, int endPos) {
            int number = (int) (Math.random() * endPos + startPos);//随机生成startPos - endPos 的整数
            return number;//返回生成的数组;
        }
    
        /**
         * 数字判断
         *
         * @param originalNumber 原数字
         * @param judgeNumber    需要判断的数字
         * @return 0 下了
         * 1 等于
         * 2 大了
         */
        public static int judge(int originalNumber, int judgeNumber) {
            if (originalNumber > judgeNumber) {
                return 0;
            } else if (originalNumber < judgeNumber) {
                return 2;
            }
            return 1;
        }
    }
    

2、杨辉三角形

  • 输入杨辉三角形的行数打印杨辉三角形

    下面一个的值等于上面两个之和

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1jRGYVYQ-1656331011624)(C:\Users\21158\AppData\Roaming\Typora\typora-user-images\image-20220401130238016.png)]

public class YangHuiTriangle {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入杨辉三角形的行数");
        int n = scanner.nextInt();
        int[][] array = new int[n][n];//生成一个n*2n的二维数组
        //把每行最前面的值赋值为1
        for (int i = 0; i < n; i++) {
            array[i][0] = 1;
        }
        for (int i = 0; i < n; i++) {//代表行数
            for (int j = 1; j <= i; j++) {//代表列数 j=1因为每行最前面的值已经赋值了,所以第二行只需要赋值一个了
                array[i][j] = array[i - 1][j - 1] + array[i - 1][j];//下面一个等于上面两个之和
                //System.out.print("i=" + i + ",j=" + j + "   ");
            }
            //System.out.println();
        }
        for (int i = 0; i < n; i++) {
            for (int j = n; j > i; j--) {
                System.out.print("  ");
            }
            for (int j = 0; j < n; j++) {
                if (array[i][j] != 0) {
                    System.out.printf("%4d", array[i][j]);
                }
            }
            System.out.println();
        }
    }
}

:这个看起来感觉规律不好找,开始不要发他看作成一个等腰三角形就行了,把他看做一个直角三角形,然后在去做就思路明了很多了。

 }
        System.out.println();
    }
}

}


**总**:这个看起来感觉规律不好找,开始不要发他看作成一个等腰三角形就行了,把他看做一个直角三角形,然后在去做就思路明了很多了。

3、
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值