刚学JAVA奉上【猜谜小游戏】
程序代码:
import java.util.*; public class GuessNumber { public static void main(String[] args) { boolean derail = true; //开关变量1 boolean flag = true; //开关变量2 int count = 10; //猜测次数 int point = 100; //用户游戏得分 int result = getRandom(100); //随机产生100以内的整数 while(derail){ System.out.print("请输入 1 开始游戏,输入 0 结束游戏,"); int state = Integer.parseInt(Input(type.tyint).toString()); if(state==1){ System.out.print("游戏开始,幸运数字以产生,快来猜猜看吧,"); //循环体开始 while (flag) { if(count!=0){ //获取用户输入的数据 int number = Integer.parseInt(Input(type.tyint).toString()); if(result==number){ System.out.println("--------------------"); System.out.println("回答正确,恭喜游戏过关!"); System.out.println("您共使用了 "+(10-count)+"次机会,得到了 "+point+" 点分数"); System.out.println("--------------------"); flag = false; //数据初始化 count = 10; //数据初始化 point = 100; //数据初始化 }else if(number > result){ count--; point=point-10; System.out.println("数字过大,您还有 " + count + " 机会!"); }else if(number < result){ count--; point=point-10; System.out.println("数字过小,您还有 " + count + " 机会!"); } }else{ System.out.println("很遗憾你的猜测次数已用完,请重新开始游戏!\n----------------------------------------------"); flag = false; //数据初始化 count = 10; //数据初始化 point = 100; //数据初始化 } } }else if(state==0){ System.out.print("游戏退出!"); derail = false; } } } /** * 随机产生scope值以内的整数 * int scope:范围值 * 例:getRandom(10)--->产生10以内的随机数 * */ public static int getRandom(int scope){ int result = 0; return result = (int)(Math.random() * scope); } /** * 这是一个保存类型的枚举 * */ enum type{tyint,tyString,tyshort,tylong,tybyte,tyfloat,tydouble,tyboolean}; /** * 万能输入,只要将参数选择为自己想要的输入类型,本函数就能返回你想要的数据类型 * 输入函数,调用此方法会提示用户输入数据,并返回用想要的类型的数据 * */ public static Object Input(type ty){ System.out.println("请输入数据:"); Scanner scan = new Scanner(System.in); Object result = null; switch (ty) { case tyint:{ result = scan.nextInt(); }break; case tyString:{ result = scan.next(); }break; case tyshort:{ result = scan.nextShort(); }break; case tylong:{ result = scan.nextLong(); }break; case tybyte:{ result = scan.nextByte(); }break; case tyfloat:{ result = scan.nextInt(); }break; case tydouble:{ result = scan.nextDouble(); }break; case tyboolean:{ result = scan.nextBoolean(); }break; default:{ System.out.print("数据有误!"); }break; } return result; } }