`
dolphinlike
  • 浏览: 21610 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

测试你的OO水平

阅读更多

昨天去参加面试,先是和老美电话聊,聊的不错,然后老美给了道测试题,让40分钟做完,第一次做这样的TEST,有点找不到方向,我做的时候只想着给出个可运行的程序,没有想太多OO。呵呵,看看javaEye上的高手,谁能写个完美的例子出来。主要是测试OO能力!

 

Write a toy program to play a dice guessing game. To begin the game, 5 dices are tossed. The computer player you program will then guess what are those numbers without knowing it. After each guess, the computer player is told how many of its guesses are correct without being told which ones. If all dices are guessed correctly, game ends. Otherwise, the computer player guesses again. The objective of the computer player is to be able guess all dices right in the least number of rounds. Your program needs to be object-oriented. Use your own ingenuity and do not copy other's work.

 

Example:

 

Dices tossed: 1 2 3 5 5

 

Round 1:

Computer guesses: 2 2 3 5 6

Correct: 3

 

Round 2:

Computer guesses: 1 2 5 6 6

Correct: 2                                                                              

 

 

Round X:

Computer guesses: 1 2 3 5 5

Correct: 5. End game!

 

import java.io.IOException;
import java.util.Random;

/**
 * 
 * @author liur
 * 
 */
public class DiceGuess {

	private String randomDice = "";

	private String userInput = "";

	public DiceGuess() {
		int randomNum = new Random().nextInt(100000);
		randomDice = randomNum + "";
		System.out.println("Dices tossed :" + randomDice);

	}

	/**
	 * read the user's input
	 * 
	 * @return
	 */
	private static String readLine() {
		char nextChar;
		String result = "";
		boolean done = false;

		while (!done) {
			nextChar = readChar();
			if (nextChar == '\n')
				done = true;
			else if (nextChar == '\r') {
			} else
				result = result + nextChar;
		}
		return result;
	}

	private static char readChar() {
		int charAsInt = -1;
		try {
			charAsInt = System.in.read();
		} catch (IOException e) {
			System.out.println(e.getMessage());
			System.out.println("Fatal error.Ending program.");
			System.exit(0);
		}
		return (char) charAsInt;
	}


	private static boolean validate(String userInput) {
		boolean isTure = false;
		if (userInput.length() != 5) {
			System.out.println("your input is not correct,pls give 5 numbers");
		} else {
			isTure = true;
		}
		return isTure;
	}

	private static int compare(String randomDice, String userInput) {
		char[] randomChar = randomDice.toCharArray();
		char[] inputChar = userInput.toCharArray();
		if(randomChar.length!=inputChar.length){
			return 0;
		}
		int count = 0;
		for (int i = 0; i < randomChar.length; i++) {
			if (randomChar[i] == inputChar[i]) {
				count++;
			}
		}
		return count;
	}

	public String getUserInput() {
		System.out.println("Pls give your guess");
		userInput = DiceGuess.readLine();
		if(!this.validate(userInput)){
			getUserInput();
		}
		return userInput;
	}

	public void excute() {
		int count = 0;
		do {
			userInput = getUserInput();
			count = DiceGuess.compare(randomDice, userInput);
			System.out.println("Correct : " + count);

		} while (count != 5);
		System.out.println("Congratulations!!!You are so smart! 2");

	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		DiceGuess diceGuess = new DiceGuess();
		diceGuess.excute();
	}
}

下面的代码是王成同学的杰作,非常感谢!他的博客 http://wangcheng.iteye.com/
0
0
分享到:
评论

相关推荐

    慈溪市小学六年级英语学业水平测试模拟卷二精选.doc

    三、听音,选出与你听到单词含有相同发音的词:这部分测试学生的音素意识,需要学生找出与所听单词有相同发音的单词,如foot和room中的oo发音。 四、听问句,选答句:这部分考察的是学生对疑问句的回答,包括一般...

    智商测试系统看看准吗

    智商测试主要是用来评估个体的认知能力和逻辑思维水平的一种工具。通过标准化的问题设置,能够较为客观地反映出被测试者的智力水平。智商测试通常包含一系列问题或任务,旨在测量人的观察力、记忆力、推理能力等多个...

    MFC自动水平滚动条CListBox

    最后,为了测试和调试这个控件,我们可以创建一个简单的MFC应用程序,包含一个`CHorzListBox`实例,并填充一些宽度过长的文本项。通过运行和交互,我们可以验证水平滚动条的正确性和功能性。 总结起来,`MFC自动...

    2008年测试调查报告

    - **McCabeAdd_ons**:一系列插件工具,包括Data、Slice、OO、Change、Compare等,增强了测试和分析的功能。 **4. Slice(切片分析)特性** - **路径可视性**:直观显示哪些路径已被测试,哪些尚未测试。 - **模块...

    二OO六年国有资产管理工作总结.doc

    二OO六年,通过强化各项管理措施,国有资产管理工作的整体水平得到提升,产生了良好的经济效益。然而,仍存在与上级要求的差距,未来将继续努力改进,提高管理水平,更好地服务于公路工程建设。

    Android水平尺程序

    9. **测试与调试**:开发过程中,开发者需要在多种不同型号的Android设备上进行测试,以确保应用能在各种硬件配置和Android版本下正常工作。此外,利用Android Studio的调试工具可以帮助找出并修复问题。 10. **...

    OO设计和伪状态模式实现的控制台五子棋游戏

    在本项目中,"OO设计和伪状态模式实现的控制台五子棋游戏"是一个用C#编程语言实现的控制台应用程序,旨在教授面向对象编程(Object-Oriented Programming, OOP)和设计模式,特别是状态模式的应用。下面将详细阐述...

    水平点击滚动

    在实际应用中,你可能会遇到一个名为"幻灯"或"轮播"的组件,这与水平点击滚动有相似之处,但通常会包含自动切换、指示器、预览图等功能。"水平点击滚动"可以看作是这些复杂组件的一个简化版本,专注于用户手动控制的...

    六年级英语上册 t 5Is this your pencil测试题 鲁教版.doc

    词组翻译则测试学生的词汇积累和表达能力,例如"一块橡皮"、"那个铅笔盒"、"谢谢你"、"电子游戏"、"在失物招领箱里"。选择填空部分涉及日常对话和基础语法,例如使用"Yes, it is."回答一般疑问句,以及冠词"a/an"的...

    javaE:\JAVA\OO Project Instructor Guide(门诊模块).pdf

    - **项目背景**:Virgo医院为了进一步提高其医疗服务质量和效率,决定采用最新的信息技术手段来提升其整体业务水平。该项目的目标是开发一个全面的健康管理信息系统,能够满足不同角色的需求,如患者、医生、实验室...

    海小二年级上学期英语期末测试题精选.doc

    这份“海小二年级上学期英语期末测试题精选”涵盖了多个基础的英语听力和语言理解题目,旨在评估学生对基本词汇、季节、时间、...通过这样的测试,教师可以评估学生的英语听说水平,并针对他们的弱点进行针对性的教学。

    仁爱版七年级英语(上册)全套测试题【含各话题及单元期中期末】.doc

    【知识点】 1. 英语基础词汇:文档中包含了各种英语基础词汇,如字母...通过这样的测试,学生可以全面评估自己的英语水平,同时教师也能了解学生在听、说、读、写方面的强项和需要改进的地方,从而进行针对性的教学。

    外研版六年级英语下册期末测试卷精选.doc

    这篇文档是针对外研版小学六...这些题目综合测试了学生对英语语音、词汇、语法和情境理解的掌握程度,是全面评估学生英语水平的有效方式。通过这样的测试,教师可以了解学生的学习进度,并针对性地进行教学调整和辅导。

    员工培训方案暨二OO六年度培训计划(doc 32).doc

    最后,培训效果的反馈是评估培训质量的关键,通过测试成绩和成效调查表来衡量培训成果,并为未来的培训改进提供依据。 2006年度的培训计划从5月开始,计划每月进行两次培训,初期侧重基本技能和岗位技能,逐步引入...

    springboard-connect-four-oo

    在这个游戏中,两个玩家轮流在7列中放下一枚自己的棋子,目标是在垂直、水平或对角线上先连成四子为胜。以下将详细介绍这个项目中涉及的JavaScript OOP相关知识点: 1. **类与对象**:在JavaScript中,类是通过`...

    三线摆法测定刚体的转动惯量.doc

    当上、下圆盘水平时,将上圆盘绕竖直的中心轴线OO1转动一个小角度,借助悬线的 X 力使悬挂的大圆盘绕中心轴OO1作扭转摆动。同时,下圆盘的质心1O 将沿着转动轴升降。 三、数学模型 扭转的过程也是圆盘势能与动能的...

    ××××公司二OO四年上半年组织工作小结.docx

    - 组织党员参与学习活动,如收视《先锋队之歌》和组织新党章、《两个条例》的学习与测试。 - 加强了对离退休党员的教育和管理,规范了离退休党员的党建工作。 - 开展了丰富的党员教育活动,如知识征答、瞻仰革命...

    三线摆测转动惯量实验报告.pdf

    实验装置由两个水平圆盘通过三根等长且不可伸缩的细线相连,下圆盘可以绕着21OO轴扭转。测量下圆盘的扭转周期(0T)和其他参数,如圆盘的质量(0m)、两圆盘间距离(H),可以利用公式(1)和(2)计算转动惯量。公式(1)...

    初一新生入学摸底英语测试卷.doc

    【初一新生入学摸底英语测试卷】...通过这些题目,我们可以看出测试涵盖了基础语音、词汇、语法和日常交际用语等核心知识点,全面评估了学生的英语基础水平。学生在准备这样的测试时,需要复习并熟练掌握这些基本内容。

Global site tag (gtag.js) - Google Analytics