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编程语言来实现一个简单的猜数游戏。这个游戏的核心机制是,计算机随机生成一个介于1和100之间的整数,然后玩家尝试猜测这个数字,程序会根据玩家的猜测给出“偏大”或“偏小”的...
猜数,游戏猜数,游戏猜数,游戏猜数,游戏猜数,游戏猜数,游猜数,游戏猜数,游戏猜数,游戏戏猜数,游戏猜数,游戏猜数,游戏
在这个"基于Java的猜数游戏"中,我们将深入探讨如何利用Java构建一个简单的图形用户界面(GUI)来实现一个交互式的猜数游戏。 首先,猜数游戏的基本规则是:计算机随机生成一个数字,然后让用户尝试猜测这个数字,...
玩家可以通过交互式界面与游戏进行互动,而开发者则可以通过这个游戏了解和掌握Java的基本语法、面向对象设计以及控制流程管理。在分析和改进这个项目的过程中,开发者可以深化对Java的理解,提升编程技能,并体验到...
在Java编程领域,猜数游戏是一种常见的练习...这样的练习对于学习Java基础和理解面向对象编程概念非常有帮助。同时,它也展示了如何在没有图形用户界面的情况下处理用户输入,这对于命令行应用程序来说是至关重要的。
**JAVA上机猜数游戏** 在Java编程领域,猜数游戏是一种常见的练习项目,它能够帮助初学者熟悉基本的控制流程、条件判断和循环结构。在这个实验中,我们将探讨如何用Java编写一个简单的猜数游戏。 游戏的基本逻辑是...
Java是一种广泛使用的面向对象的编程语言,尤其在开发桌面应用方面,它提供了丰富的库和工具。在这个场景中,我们关注的是使用Java的图形用户界面(GUI)库Swing中的JFrame来实现一个猜数游戏,并结合了幻方的演示...
### c程序猜数游戏知识点详解 #### 一、程序功能介绍 本程序为一款基于C语言编写的简单猜数字游戏,旨在通过用户猜测由程序自动生成的100以内的随机整数,来评估用户的反应速度及逻辑思维能力。游戏过程中,程序会...
Java 猜数游戏 本资源是关于 Java 语言课程设计的猜数游戏,旨在复习和巩固 Java 语言的基础知识,并提高学生的分析解决实际问题的能力和实践编程的能力。 游戏要求 猜数游戏的功能要求是:计算机产生随机数,...
【Java图形界面猜数游戏详解】 Java图形界面(GUI,Graphical User Interface)猜数游戏是一种常见的编程练习,用于学习Java GUI编程。这个游戏的核心概念是计算机随机生成一个数字,然后让用户通过输入猜测来尝试...
这个简单的猜数游戏演示了Java的基本语法结构,包括如何导入必要的包、使用`BufferedReader`处理文本输入、生成随机数、控制流程以及逻辑判断等。对于Java初学者来说,它是一个很好的实践项目,可以帮助理解这些基本...
通过【JAVA猜数游戏】项目,开发者可以巩固和提高JAVA编程的基本技能,同时理解面向对象设计的基本原则。通过阅读和分析源代码,可以学习到如何将实际问题转化为计算机可执行的逻辑,并进一步提升编程思维。这个项目...
通过这次课程设计,学生不仅能掌握JAVA GUI编程的基本技能,还能够深入理解面向对象编程的概念,如类、对象的创建和使用,以及如何利用接口进行通信。同时,项目实施也锻炼了问题解决和项目管理的能力。 7. **参考...
(1)程序生成一个1~10之间的随机整数。...(3)如果猜数的过程中放弃游戏,用户可以输入quit,之后按回车。 (4)用户可以重复玩游戏,如果想继续玩,输入yes,之后按回车,否则,输入no,之后按回车。
虽然描述部分为空,但我们可以推测,博主在文章中可能详细解释了如何使用Java语言实现这个猜数游戏。通常,这样的程序会包含以下几个关键部分: 1. **随机数生成**:Java提供了`java.util.Random`类来生成随机数。...
编写一个猜数程序,该程序随机在1到1000的范围中选择一个供用户猜测的整数。界面上提供一个文本框来接收用户输入的猜测的数,如果用户猜得太大,则背景变为红色,如果猜得太小,背景变为蓝色。用户猜对后,文本框...
java课程设计 猜数游戏 此猜数游戏规则是该游戏可以由程序随机产生四个0到9之间的整数,且不重复。玩游戏者通过由用户输入四个数字来匹配上面所产生的数字。A表示位置正确且数字正确,B表示数字正确而位置不正确。...