综合案例
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、