`
mhz373803089
  • 浏览: 1945 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java 利用面向对象思想 猜数游戏

 
阅读更多

package arraylist.guessgame;

import java.util.ArrayList;
import java.util.Scanner;

/**
 *
 * 完成游戏的输入输出功能
 *
 */
public class GuessGameUI {
 Scanner scanner = new Scanner(System.in);

 public void GameStart() {
  System.out.println("猜一个四个不重复数字,游戏开始:");
 }

 public ArrayList<Integer> GameIn() {
  ArrayList<Integer> set = new ArrayList<Integer>();
  while (true) {
   System.out.print("请输入答案:");
   char[] ch = scanner.nextLine().toCharArray();
   for (int i = 0; i < ch.length; i++) {
    set.add(ch[i] - '0');
   }
   if (set.size() == 4) {
    break;
   }
  }
  return set;
 }

 public void outAB(int a, int b) {
  System.out.println(a + "A" + b + "B");
 }

 public void OutRight(int n) {

  System.out.print("恭喜您猜对了,你用了" + n + "次");
  if (n <= 5) {
   System.out.println("你真是个天才!");
  } else if (n <= 10) {
   System.out.println("你还挺聪明!");
  } else if (n <= 15) {
   System.out.println("你还不错!");
  } else {
   System.out.println("你太笨了!");
  }

 }

 public void OutWrong() {
  System.out.println("笨蛋,game over");
 }

}

package arraylist.guessgame;

import java.util.ArrayList;
import java.util.Random;

/**
 * 完成随机出一个不重复的数组
 *
 */
public class GuessRandom {

 private ArrayList<Integer> result = new ArrayList<Integer>();

 public ArrayList<Integer> numberRandom(int n) {
  Random r = new Random();
  int i = 0;
  while (result.size() < n) {
   i = r.nextInt(10);
   // System.out.println(i);
   if (result.contains(i)) {
    continue;
   } else {
    result.add(i);
//    System.out.print(i);
   }
  }
  return result;
 }

 
}

 

package arraylist.guessgame;

import java.util.ArrayList;

/**
 * 完成比较功能
 */
public class GuessComparator {
 
 public boolean isequal(ArrayList<Integer> set, ArrayList<Integer> answer){
  if(set.equals(answer))
   return true;
  return false;
 }
 
 public int first(ArrayList<Integer> set, ArrayList<Integer> answer){
  int num = 0;
  for(int i = 0; i < set.size(); i++){
   if(set.get(i) == answer.get(i)){
    num++;
   }
  }
  return num;
 }
 
 public int second(ArrayList<Integer> set, ArrayList<Integer> answer){
  int num = 0;
  for(int i = 0; i < set.size(); i++){
   if(set.contains(answer.get(i)) && set.get(i)!=answer.get(i)){
    num++;
   }
  }
  return num;
 }
 
}

package arraylist.guessgame;

import java.util.ArrayList;
/**
 *
 * 游戏主逻辑程序
 *
 */
public class GuessGame {

 public void run() {
  int n = 0;
  GuessRandom gr = new GuessRandom();
  ArrayList<Integer> set = gr.numberRandom(4);
  // System.out.println(set);
  GuessGameUI ui = new GuessGameUI();
  while (true) {
   n++;
   ArrayList<Integer> answer = ui.GameIn();
   // System.out.println(answer);
   GuessComparator gc = new GuessComparator();
   int first = gc.first(set, answer);
   int second = gc.second(set, answer);
   ui.outAB(first, second);
   if (gc.isequal(set, answer)) {
    ui.OutRight(n);
//    System.out.println("恭喜你答对了,正确答案是:" + set);
    break;
   }
   if(n==20){
    ui.OutWrong();
    System.out.println("已经20次了,回去再练练吧!");
    break;
   }
  }
 }
}

 

package arraylist.guessgame;
/**
 * 游戏主入口程序
 * 创建GuessGame 对象,调用run()方法
 */
public class GuessGameMain {

 public static void main(String[] args) {
  GuessGame game = new GuessGame();
  game.run();
 }
}

 

 

 

分享到:
评论

相关推荐

    使用JAVA语言,实现猜数游戏

    在本项目中,我们将探讨如何使用Java编程语言来实现一个简单的猜数游戏。这个游戏的核心机制是,计算机随机生成一个介于1和100之间的整数,然后玩家尝试猜测这个数字,程序会根据玩家的猜测给出“偏大”或“偏小”的...

    猜数游戏JAVA猜数,游戏

    猜数,游戏猜数,游戏猜数,游戏猜数,游戏猜数,游戏猜数,游猜数,游戏猜数,游戏猜数,游戏戏猜数,游戏猜数,游戏猜数,游戏

    基于java的猜数游戏

    在这个"基于Java的猜数游戏"中,我们将深入探讨如何利用Java构建一个简单的图形用户界面(GUI)来实现一个交互式的猜数游戏。 首先,猜数游戏的基本规则是:计算机随机生成一个数字,然后让用户尝试猜测这个数字,...

    纯JAVA猜数游戏。可以选择难度,面向对象。

    玩家可以通过交互式界面与游戏进行互动,而开发者则可以通过这个游戏了解和掌握Java的基本语法、面向对象设计以及控制流程管理。在分析和改进这个项目的过程中,开发者可以深化对Java的理解,提升编程技能,并体验到...

    java编写的猜数游戏

    在Java编程领域,猜数游戏是一种常见的练习...这样的练习对于学习Java基础和理解面向对象编程概念非常有帮助。同时,它也展示了如何在没有图形用户界面的情况下处理用户输入,这对于命令行应用程序来说是至关重要的。

    JAVA上机猜数游戏

    **JAVA上机猜数游戏** 在Java编程领域,猜数游戏是一种常见的练习项目,它能够帮助初学者熟悉基本的控制流程、条件判断和循环结构。在这个实验中,我们将探讨如何用Java编写一个简单的猜数游戏。 游戏的基本逻辑是...

    java实现 JFrame界面实现 猜数游戏

    Java是一种广泛使用的面向对象的编程语言,尤其在开发桌面应用方面,它提供了丰富的库和工具。在这个场景中,我们关注的是使用Java的图形用户界面(GUI)库Swing中的JFrame来实现一个猜数游戏,并结合了幻方的演示...

    c程序猜数游戏-可进行智力测试,不妨试一试,很好玩的

    ### c程序猜数游戏知识点详解 #### 一、程序功能介绍 本程序为一款基于C语言编写的简单猜数字游戏,旨在通过用户猜测由程序自动生成的100以内的随机整数,来评估用户的反应速度及逻辑思维能力。游戏过程中,程序会...

    java 猜数游戏

    Java 猜数游戏 本资源是关于 Java 语言课程设计的猜数游戏,旨在复习和巩固 Java 语言的基础知识,并提高学生的分析解决实际问题的能力和实践编程的能力。 游戏要求 猜数游戏的功能要求是:计算机产生随机数,...

    java图形界面猜数游戏

    【Java图形界面猜数游戏详解】 Java图形界面(GUI,Graphical User Interface)猜数游戏是一种常见的编程练习,用于学习Java GUI编程。这个游戏的核心概念是计算机随机生成一个数字,然后让用户通过输入猜测来尝试...

    猜数小游戏java代码

    这个简单的猜数游戏演示了Java的基本语法结构,包括如何导入必要的包、使用`BufferedReader`处理文本输入、生成随机数、控制流程以及逻辑判断等。对于Java初学者来说,它是一个很好的实践项目,可以帮助理解这些基本...

    JAVA猜数游戏

    通过【JAVA猜数游戏】项目,开发者可以巩固和提高JAVA编程的基本技能,同时理解面向对象设计的基本原则。通过阅读和分析源代码,可以学习到如何将实际问题转化为计算机可执行的逻辑,并进一步提升编程思维。这个项目...

    猜数字 JAVA课程设计报告

    通过这次课程设计,学生不仅能掌握JAVA GUI编程的基本技能,还能够深入理解面向对象编程的概念,如类、对象的创建和使用,以及如何利用接口进行通信。同时,项目实施也锻炼了问题解决和项目管理的能力。 7. **参考...

    Java源程序完成猜数游戏

    (1)程序生成一个1~10之间的随机整数。...(3)如果猜数的过程中放弃游戏,用户可以输入quit,之后按回车。 (4)用户可以重复玩游戏,如果想继续玩,输入yes,之后按回车,否则,输入no,之后按回车。

    一个简单的猜数游戏

    虽然描述部分为空,但我们可以推测,博主在文章中可能详细解释了如何使用Java语言实现这个猜数游戏。通常,这样的程序会包含以下几个关键部分: 1. **随机数生成**:Java提供了`java.util.Random`类来生成随机数。...

    JAVA代码-猜数游戏

    编写一个猜数程序,该程序随机在1到1000的范围中选择一个供用户猜测的整数。界面上提供一个文本框来接收用户输入的猜测的数,如果用户猜得太大,则背景变为红色,如果猜得太小,背景变为蓝色。用户猜对后,文本框...

    java课程设计 猜数游戏

    java课程设计 猜数游戏 此猜数游戏规则是该游戏可以由程序随机产生四个0到9之间的整数,且不重复。玩游戏者通过由用户输入四个数字来匹配上面所产生的数字。A表示位置正确且数字正确,B表示数字正确而位置不正确。...

Global site tag (gtag.js) - Google Analytics