/*

*
* 猜数字小游戏
*
* 先由系统生成一个2-100之间的随机数字,
*
* 然后捕获用户从控制台中输入的数字是否与系统生成的随机数字相同,
*
* 如果相同则统计用户所猜的次数,并给出相应评价
*
* 评价标准:用户猜的次数小于等于6次,您的灵感非常优秀!
*
* 大于等于12次,您的灵感只能说一般!
*
* 反之提示: 您的灵感太差了,必须尽快想办法提高!
*
* 用户猜对数字并给出相应评价之后,提示用户是否继续本游戏
*
* 提示信息为: 本次游戏结束,是否继续,继续请输入1,反之退出:
*
* 然后捕获用户输入的数字是否为1,如果为1,则重新开始本游戏.反之退出(结束)本游戏.
*
* 如果用户在猜数字的过程中输入了0,(不论何时)则退出本游戏.
*
* 1.首先定一个interface(NumberGameInterface),在interface中定义两个方法:
*
* 第一个方法: 判断用户输入的是否是退出游戏的标识数字(参数num是用户输入的标识数字)
*
* 如果用户输入的是0,则返回true,反之返回false
*
* boolean isExit(int num)
*
* 第二个方法: 开始游戏
*
* void gameStart()
*
* 2.然后定义实现类(NumberGameImpl)实现接口中的方法,最后编写一个测试类(NumberGameTest)用于测试本游戏
*
* 提示
* 1.生成一个指定范围的随机数:
* Random rand = new Random();
* int num; // 用于保存系统生成的随机数
* //num = rand.nextInt(100);// 由系统生成一个0-100(不包括)之间的随机数
* num = 2 + rand.nextInt(99);// 由系统生成一个 2-100 之间的随机数
*
* 2.结束程序运行:
* System.exit(0);
*
*

*/
import java.util.*;
interface NumberGameInterface {
public abstract boolean isExit(int num);
public abstract void gameStart();
} class Game implements NumberGameInterface {
public boolean isExit(int num) {
if (num == 0) {
return true;
} else {
return false;
}
} public void gameStart() {
Scanner scan = new Scanner(System.in);
Random rand = new Random();
int num; // 用于保存系统生成的随机数
// num = rand.nextInt(100);// 由系统生成一个0-100(不包括)之间的随机数
num = 2 + rand.nextInt(99);// 由系统生成一个 2-100 之间的随机数
System.out.println("num=" + num); boolean flag = true;
int total = 0;// 记录猜的次数
while (true) {
System.out.println("输入你猜的数字:");
int unumer;
unumer = scan.nextInt();
flag = !isExit(unumer);
if (isExit(unumer)) {
System.out.println("---------输入0 游戏结束-----------");
System.exit(0); }
total++;
if (unumer == num) {
flag = false;
if (total <= 6) {
System.out.println("您猜了" + total + "次,您的灵感非常优秀!"); System.out.println("游戏结束:1.重新开始 本游戏 0.退出游戏");
int unumer1 = scan.nextInt();
if (isExit(unumer1)) {
System.out.println("*****Game Over!***********");
System.exit(0);
} else {
total = 0;
flag = true;
}
} else if (total <= 12) {
System.out.println("您猜了" + total + "次,您的灵感只能说一般!");
System.out.println("游戏结束:1.重新开始本游戏 0. 退出游戏");
int unumer1 = scan.nextInt(); if (isExit(unumer1)) {
System.out.println("*****Game Over!***********");
System.exit(0);
} else {
total = 0;
flag = true;
}
} else {
System.out.println("您猜了" + total + "次,您的灵感太差了,必须尽快想办法提高!");
System.out.println("游戏结束:1.重新开始本游戏 0.退出游戏");
int unumer1 = scan.nextInt();
if (isExit(unumer1)) {
System.out.println("*****Game Over!***********");
System.exit(0);
} else {
total = 0;
flag = true;
}
}
} } } /**
* @param args
*/
} class TestGame {
public static void main(String[] args) {
// TODO Auto-generated method stub
Game g1 = new Game();
g1.gameStart(); }
}

java猜数字小游戏的更多相关文章

  1. Java基础知识强化之IO流笔记70:Properties练习之 如何让猜数字小游戏只能玩5次的案例

    1. 使用Properties完成猜数字小游戏只能玩5次的案例: 2. 代码实现: (1)猜数字游戏GuessNumber: package cn.itcast_08; import java.uti ...

  2. 简单的C语言猜数字小游戏

    猜数字小游戏可谓是C语言最为基础的一个知识点了,我们可以在此基础上进行延伸,实现随机数的猜测,然后是加入再来一局的模式,等等.这里是抛砖引玉,希望你能做出你的经典之作. #include <st ...

  3. [Python3 练习] 007 简单的猜数字小游戏

    题目:简单的猜数字小游戏 (1) 描述 程序随机生成一个数字,玩家用键盘输入所猜数字,在规定次数内猜对为胜. (2) 要求 程序随机生成一个 1 到 100 的自然数 有 7 次机会去猜 机会用尽之前 ...

  4. 简单的猜数字小游戏--Python

    猜数字小游戏: #coding=utf-8 import random   answer =random.randint(1,100) #生成随机数 n=int (input("Please ...

  5. Java(控制台输出)实现猜数字小游戏

    import java.util.Scanner; import java.util.Random; public class GuestNum{ public static void main(St ...

  6. java代码 猜数字小游戏

    import java.util.Scanner; import java.util.Random; public class mulTip{ public static void main(Stri ...

  7. 零基础自学Python十天,写了一款猜数字小游戏,附源码和软件下载链接!

    自学一门语言最重要的是要及时给自己反馈,那么经常写一些小程序培养语感很重要,写完可以总结一下程序中运用到了哪些零散的知识点. 本程序中运用到的知识点有: 1.输入输出函数 (input.print) ...

  8. Python基础入门-实现猜数字小游戏

    今天呢,我们来通过前面学过的一些知识点来完成一个猜数字大小的游戏程序设计.那么呢,一般人写代码直接上来就干,没有分析,这样的做法是没有产出的,除非你是大牛,今天呢,我会把我学习编程的思路分享给大家,我 ...

  9. python新手如何编写一个猜数字小游戏

    此文章只针对新手,希望大家勿喷,感谢!话不多说先上代码: import random if __name__ == '__main__': yourname = input("你好! 你的名 ...

随机推荐

  1. JAVA异常使用_每个人都曾用过、但未必都用得好

    一.抛出异常 vs. 返回错误代码 有人说“Well, an exception is a goto.”,但也有人言“makes the code simpler by visibly separat ...

  2. <link>: rel, href

    Reference: http://www.w3schools.com/tags/tag_link.asp <link> Attributes: Attribute Value Descr ...

  3. iframe自适应高度的多种方法方法小结(转)

    对于自适应高度的代码有很多,可效率什么的考虑进来好代码就不多见了,不过思路倒是差不多的不带边框的iframe因为能和网页无缝的结合从而不刷新页面的情况下更新页面的部分数据成为可能,可是 iframe的 ...

  4. encoding(hdoj1020)

    Problem Description Given a string containing only 'A' - 'Z', we could encode it using the following ...

  5. webpack ------require,ensure

    require-ensure和require-amd的区别: require-amd 说明: 同AMD规范的require函数,使用时传递一个模块数组和回调函数,模块都被下载下来且都被执行后才执行回调 ...

  6. 再次优化NGINX+php-fpm上传

    上次写了一篇nginx+php-fpm优化上传,一位博友留言介绍了,第三方nginx upload module http://www.grid.net.ru/nginx/upload.en.html ...

  7. MySQL 5.6 中 TIMESTAMP 的变化

    http://www.williamsang.com/archives/818.html

  8. JavaEE Tutorials (26) - 批处理

    26.1批处理介绍391 26.1.1批处理作业中的步骤391 26.1.2并行处理392 26.1.3状态和判定元素392 26.1.4批处理框架功能39326.2Java EE中的批处理394 2 ...

  9. Linux进程间通信——使用命名管道

    在前一篇文章——Linux进程间通信——使用匿名管道中,我们看到了如何使用匿名管道来在进程之间传递数据,同时也看到了这个方式的一个缺陷,就是这些进程都由一个共同的祖先进程启动,这给我们在不相关的的进程 ...

  10. .NET设计模式系列文章

    原文地址:http://terrylee.cnblogs.com/archive/2006/06/01/334911.html 最初写探索设计模式系列的时候,我只是想把它作为自己学习设计模式的读书笔记 ...