Java 猜数字游戏

最近学习了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();
		}
		
	}

}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值