18机试练习题 BullsAndCows

题干在代码注释
在这里插入图片描述

import static org.junit.Assert.assertTrue;

import java.util.Random;

/**
 * 游戏规则:
        电脑出数字,人猜。出数字的电脑要预先生成一个没有重复数字的4位数 。 猜的人就可以开始猜。
        每猜一个数字,电脑就要根据这个数字给出几A几B,
        其中A前面的数字表示位置正确的数的个数,而B前的数字表示数字正确而位置不对的数的个数。
        如正确答案为 5234,而猜的人猜 5346,则是 1A2B,其中有一个5的位置对了,记为1A,
        而3和4这两个数字对了,而位置没对,因此记为 2B,合起来就是 1A2B。
        接着猜的人再根据出题者的几A几B继续猜,直到猜中(即 4A0B)为止。
        
       本次考试中,需要实现三个方法:
   1.无参数的构造方法:生成没有重复数字的4位数,首位不为0
   2.compare方法
   3.playGame方法:模拟玩家的猜测过程,按照下面的格式输出,第一行为Game Start,第二行是10个-
            后面是玩家每一次的猜测,并给出每次猜测的结果,不同猜测用10个-分割,最后输出一行胜利祝贺,
            使用步数和10个-。playGame方法需要使用compare方法来比较。
        要求:
   1.不可超过10000轮,不可少于1轮(至少得猜一次),不要求玩家采用最优策略;
   2.最后一次猜测的结果必须是4A0B,即猜对;
   3.只要玩家最后猜对即可,但是玩家不能猜测有重复数字的四位数,不能猜首位为0;
   4.最后一行没有换行符!!!!!!!!!!!!

        输出格式例1:
   Game Start
   ----------
   Guess:5346
   Result:1A2B
   ----------
   Guess:5324
   Result:4A0B
   ----------
   You win!You took 2 steps.
   ----------
   
        输出格式例2:
   Game Start
   ----------
   Guess:1234
   Result:0A0B
   ----------
   Guess:5607
   Result:1A3B
   ----------
   Guess:7650
   Result:4A0B
   ----------
   You win!You took 3 steps.
   ----------
	
 */
public class BullsAndCows {
   
	private int secret;//要猜的那个数
	
	/**
	 * 有参数的构造方法,将secret设置为传入的参数
	 * @param a
	 */
	public BullsAndCows(int a){
   
		this.secret = a;
	}
	
	/**
	 * 无参数的构造方法,随机生成四位数secret,注意这个四位数没有重复数字,首位不能是0
	 */
	public BullsAndCows(){
   
		//insert some code, and set secret
		secret = producerandom();
	}
	public int 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值