最近学习了Java的基础知识,利用闲暇写了个猜数字游戏。由于对Java还不太熟悉,写的有些简单,尤其抛异常还不太会使用,请大家提意见。下面贴一下代码,也供以后自己修改。
1、Main类,主要是提供一个main函数入口
代码:
public class Main {
public static void main(String args[]){
Operating op = new Operating();
op.logics();
}
}
2、主要的过程处理函数
代码:
import java.util.Random;
import java.util.Scanner;
/**********函数之间的逻辑关系****************/
public class Operating {
public int RAND;
public int USERIN;
public int COUNT;
public int CON_COUNT = 10;//用户每回合猜数,可以猜测次数;
public int last1 = 0;//记录输入时,相对于随机数较小的数;
public int last2 = 100;//记录输入时,相对于随机数较大的数;
public void logics(){
System.out.println("请输入0-100之间的数字!");
COUNT = 0;
randoming();
userInput();
}
/**********随机数生成函数****************/
private void randoming(){
Random rd = new Random();
RAND = rd.nextInt(100);
}
/**********用户输入函数****************/
private int userInput(){
if(COUNT > 0){
System.out.println("请重新输入!");
}
System.out.println("已输入" + COUNT + "次,还能输入" + (CON_COUNT - COUNT) + "次!");
try{
Scanner sc = new Scanner(System.in);
USERIN = sc.nextInt();
}catch(Exception e){
System.out.println("只能输入整数!");
userInput();
}
if(USERIN < 0 || USERIN >100){
System.out.println("您输入的数字超出范围,请重新输入!");
userInput();
return 0;
}
COUNT++;
judgement();
return 0;
}
/**********对用户输入进行判断,是重玩还是继续输入****************/
private int judgement(){
if(USERIN < last1 || USERIN > last2){
System.out.println("您输入的数字超出范围,请重新输入!");
userInput();
return 0;
}
if(RAND == USERIN){
System.out.println("您猜测正确,太聪明了!");
userReset();
return 0;
}
else if(RAND < USERIN){
System.out.println("您猜的数字偏大!" + " 请输入" + last1 + "到" + USERIN + "之间的数!");
last2 = USERIN;
}
else{
System.out.println("您猜的数字偏小!" + " 请输入" + USERIN + "到" + last2 + "之间的数!");
last1 = USERIN;
}
if(COUNT < CON_COUNT){
userInput();
}
else{
System.out.println("猜测次数已完!");
userReset();
}
return 0;
}
/**********重玩函数****************/
private void userReset(){
System.out.println("请输入Y(y)重玩,输入N(n)退出游戏");
Scanner sc = new Scanner(System.in);
String userSelect = sc.nextLine();
try{
if(userSelect.equalsIgnoreCase("y")){
last1 = 0;//记录输入时,相对于随机数较小的数;
last2 = 100;//记录输入时,相对于随机数较大的数;
logics();
}
else if(userSelect.equalsIgnoreCase("n")){
System.out.println("游戏已结束!");
}
}catch(Exception e){
System.out.println("输入字符错误!");
userReset();
}
}
}