线下和朋友玩真人版的《骗子酒馆》,突发其想想搞一个模拟左轮手枪的代码用来解无左轮之忧。
代码如下:(纯是一个代码小白,代码也是比较的繁琐,但简单易懂,大佬们尽可以修改指正)
package cn.edu.bdu.rg.revolvergame;
/**
* 骗子酒馆幸运左轮模拟器
*/
import java.util.Random;
import java.util.Scanner;
public class RevolverSimulation {
public static void main(String[] args) {
System.out.println("开运");
System.out.println("请按'1'开始开枪!");
// TODO Auto-generated method stub
int cnt = 0;
Random random = new Random();
Scanner scanner = new Scanner(System.in);
int result, bullet1, bullet2, bullet3, bullet4, bullet5, bullet6;
result = 0;
int[] gun = new int[6];
while (result != 1) {
bullet1 = random.nextInt(2);
bullet2 = random.nextInt(2);
bullet3 = random.nextInt(2);
bullet4 = random.nextInt(2);
bullet5 = random.nextInt(2);
bullet6 = random.nextInt(2);
result = bullet1 + bullet2 + bullet3 + bullet4 + bullet5 + bullet6;
gun[0] = bullet1;
gun[1] = bullet2;
gun[2] = bullet3;
gun[3] = bullet4;
gun[4] = bullet5;
gun[5] = bullet6;
}
for (int i = 0; i <= 6; i++) {
cnt++;
int one = scanner.nextInt();
if (gun[i] == 1) {
System.out.print("嘭,淘汰\n");
switch (cnt) {
case 1:
System.out.println("一次就中弹何其不是另一种幸运呢");
break;
case 2:
System.out.println("两枪中弹");
break;
case 3:
System.out.println("三枪中弹");
break;
case 4:
System.out.println("四枪中弹");
break;
case 5:
System.out.println("五枪中弹");
break;
default:
System.out.println("lucky~~,六次中弹");
}
break;
} else {
System.out.print("恭喜!第" + cnt + "次开枪未中弹\n" + "按1继续开枪:\n");
}
}
}
}
代码思路:
运用数组及对数组的遍历和对随机数的使用,将数组的内容全部设为范围只有0,1的随机数,数组模拟左轮手枪,0代表空壳,1代表子弹;通过对六个数组内容值相加等于1来强制设定“枪”里面只有一发随机位置的子弹,而后对数组用for循环进行遍历来模拟左轮手枪的一颗一颗子弹的退蛋,其中Scanner的使用也很重要,它不仅用作了和我们的交互,也可以用来阻止for循环一股脑的全部循环完,Scanner帮我们卡住了for的每一次循环,知道我们按下1来命令其执行。
代码使用java在idea上面实现的,大家可以简单建立一个cn.edu.bdu.rg.revolvergame的包然后复制即可使用了,运行之后如图所示:
运行之后跟着操作提示,每次轮到“开枪”时按1+Enter即可实现模拟开枪。
最后希望大家可以和朋友们玩的开心尽兴