引用
猜数字的游戏,很多人都玩过吧,规则是这样的:随机产生一个由4个不同数字串,如0257。玩家输入自己猜测的数字如:4567,此时系统将给出提示 1a1b,1a表示有猜中一个数字,且位置正确(7),1b表示猜中一个数字,且位置不正确,如此猜下去,直到所猜数字返回4a0b为止。
现在转换角色,让程序来玩这个游戏,用户输入10个不同的A-Z的字母,然后程序猜测这10个字母是什么样的排列组合,平台将告知程序xayb,让程序尽量用最少的次数解出答案。
先作出一个出题机。
package com.maodajun.javaeye2;
public class GuessNumber {
String primitive ="";
public GuessNumber(String primitive){
this.primitive=primitive;
}
public GuessNumber(){
List list = new ArrayList();
String primitive = "";
for(int i = 0 ; i < 26 ; i ++){
char tmp = (char) ('A'+i);
list.add( Character.toString(tmp));
}
int j =-1;
for(int i = 0 ; i <10 ; i++){
j =r.nextInt(list.size());
primitive+=list.remove(j);
}
this.primitive=primitive;
}
public String guessOne(String guessone){
if(primitive.equalsIgnoreCase(guessone) ){
return primitive.length()+"a"+0+"b";
}
char[] oldchars = primitive.toCharArray();
char[] guesschars = guessone.toCharArray();
int a = 0 ;
int b =0;
for(int i = 0 ; i < oldchars.length ||i < guesschars.length ; i++ ){
if(oldchars[i]==guesschars[i]){
oldchars [i ]= '0';
guesschars[i]='0';
a++;
}
}
for(int i = 0 ; i < oldchars.length ; i ++){
if(guessone.indexOf(oldchars[i])>0){
b++;
oldchars[i]='0';
}
}
return a+"a"+b+"b";
}
}
测试 代码:
package com.maodajun.javaeye2;
import junit.framework.TestCase;
public class GuessNumberTest extends TestCase {
public GuessNumber gn= null;
public static void main(String[] args) {
junit.textui.TestRunner.run(GuessNumberTest.class);
}
protected void setUp() throws Exception {
super.setUp();
}
protected void tearDown() throws Exception {
super.tearDown();
}
/*
* Test method for 'com.maodajun.javaeye2.GuessNumber.guessOne(String)'
*/
public void testGuessOne() {
gn = new GuessNumber("ABCD");
assertEquals("4a0b",gn.guessOne("ABCD"));
assertEquals("0a0b",gn.guessOne("EFGH"));
assertEquals("1a0b",gn.guessOne("AEFG"));
assertEquals("0a1b",gn.guessOne("EAFG"));
}
}
分享到:
相关推荐
【winform猜数字游戏】是基于Visual Studio(VS)开发环境,使用C#编程语言实现的一个小型桌面应用程序。Winform是.NET Framework中的Windows应用程序开发框架,它为开发者提供了创建具有图形用户界面(GUI)的应用...
【C语言猜数字游戏代码】是一个经典的编程练习项目,它能帮助初学者更好地理解C语言的基本语法、控制结构以及函数的使用。在这个游戏中,计算机随机生成一个数字,玩家需要通过输入猜测这个数字,然后程序会根据玩家...
本人基于以前安卓手机玩猜数字的游戏的经验,基于Matlab的GUI界面开发了程序,可完美实现此功能,程序包括3个文件,1个fig文件和2个m文件,可完美运行。 下面简介一下猜数字游戏的玩法: 1.点击“开始游戏”,随机...
【猜数字游戏实验报告】 本实验报告主要围绕一个基于C++的猜数字游戏进行,旨在锻炼学生的编程能力和逻辑思维。游戏的基本流程是计算机生成一个随机数,玩家通过一系列提示逐步猜出这个数字。以下是该实验的详细...
在Java编程世界中,猜数字游戏是一个经典的入门项目,它能帮助初学者更好地理解控制流程、条件判断和随机数生成等基本概念。本教程将详细探讨如何使用Java编写一个简单的猜数字游戏,并涉及JSTL(JavaServer Pages ...
《猜数字游戏实验报告》详述了一款基于VC++实现的猜数字游戏的开发过程,该实验旨在训练学生的编程能力和逻辑思维。以下是该实验报告的关键知识点: 1. **随机数生成**:游戏的核心是计算机生成一个随机数供玩家...
在这个“微信小程序——猜数字游戏”项目中,我们将会探讨微信小程序开发的一些核心技术和实现策略。 首先,我们要了解小程序的基本结构。微信小程序由多个页面构成,每个页面包括wxml(结构层)和wxss(样式层)...
猜数字游戏。要求: //编写一个Java应用程序,实现下列功能: //1) 程序随机分配给客户一个1—100之间的整数 //2) 用户在输入对话框中输入自己的猜测 //3) 程序返回提示信息,提示信息分别是:“猜大了”、“猜...
易语言猜数字游戏是一款基于易语言编程环境开发的简单娱乐软件,主要目的是让用户通过猜测一个随机生成的数字来体验游戏的乐趣。在这个游戏中,系统会自动生成一个特定范围内的随机数,然后用户尝试猜测这个数字,...
在本项目中,我们讨论的是一个使用C#编程语言实现的经典猜数字游戏。这个游戏的核心是通过计算机随机生成一个数字,然后让用户尝试猜测这个数字,直到用户猜对为止。以下是关于这个游戏的一些关键知识点: 1. **C#...
《文曲星猜数字游戏与Delphi筛选法破解解析》 在编程的世界里,游戏开发是一种常见的实践方式,尤其对于初学者来说,它既有趣又能锻炼编程技能。今天我们要探讨的是一个特别的游戏——文曲星猜数字游戏,以及如何...
### Java编写简单有趣的猜数字游戏 #### 背景与目标 猜数字游戏是一种非常受欢迎的益智游戏,尤其适合编程新手练习逻辑思维与编程技巧。本文将详细介绍如何使用Java语言来开发这样一个游戏,帮助读者理解游戏的...
Java猜数字游戏是一种常见的编程练习,它通过生成一个随机数并让用户尝试猜测这个数字来实现。在这个游戏里,我们主要涉及两个重要的Java概念:`Random`类和用户输入处理。下面将详细介绍这两个知识点。 首先,`...
**JSP界面设计--猜数字游戏** 在IT领域,JSP(JavaServer Pages)是一种用于创建动态网页的技术,它结合了HTML和Java代码,使得开发者能够构建交互式的Web应用程序。本项目是一个基于JSP的猜数字游戏,它提供了一个...
《猜数字游戏程序代码与实验报告》 猜数字游戏是一种常见的编程练习,旨在提升初学者对编程逻辑的理解和掌握。这个项目是针对大一学生的一次课程设计,它包括了完整的程序代码以及详尽的实验报告,涵盖了实验目的、...
在这个“作业4 猜数字游戏”中,我们看到了一个基于JSP(JavaServer Pages)构建的简单网页应用。这个游戏的逻辑分为两个主要部分:`ex3_index.jsp`和`result.jsp`。下面是对这两个页面的功能和涉及的技术点的详细...
在这个“基于Authorware的猜数字游戏设计”项目中,我们将深入探讨如何利用Authorware的特性来构建一个有趣且富有挑战性的猜数字游戏。 首先,我们要理解Authorware的工作原理。Authorware采用图标流程图的方式来...
【jsp猜数字游戏】是一个基于JavaServer Pages (JSP)技术开发的小型应用程序,它提供了一个互动的猜数字游戏体验。对于初学者来说,这是一个很好的实践项目,可以帮助他们理解和掌握JSP的基本语法、Servlet和MVC...