`
dolphinlike
  • 浏览: 21930 次
  • 性别: 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

    慈溪市小学六年级英语学业水平测试模拟卷二精选.doc,正是为了帮助学生巩固和提升英语水平,尤其是听力理解能力,而精心设计的一份模拟试卷。 首先,试卷的第一部分“听音,选出你所听到的内容”,是对学生音标及...

    智商测试系统看看准吗

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

    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)和设计模式,特别是状态模式的应用。下面将详细阐述...

    水平点击滚动

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

    国内权威IQ测试题(含答案)

    - **应用价值**:智商测试可以帮助了解个人的认知能力和智力水平,为教育规划、职业发展提供参考。 通过以上知识点的解析,我们可以看出这份IQ测试题覆盖了多种认知能力的评估,包括分类能力、数学逻辑、词语关系...

    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)...

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

    尽管在管理水平上仍有提升空间,但整体而言,该单位为公路工程建设提供了坚实的物质基础和管理保障,为国有资产的增值和保值打下了坚实的基础。未来,该单位还将继续在总结经验的基础上,进一步提升管理水平,优化...

Global site tag (gtag.js) - Google Analytics