如何从文本字段中提取信息并将其与先前的输入进行比较

时间:2014-04-13 21:23:47

标签: java events jtextfield

我在入门级java类中,必须设计一个程序,用户猜测一个介于1-1000之间的随机数。我知道我需要一个单独的类来从文本字段中提取信息,但是我如何存储每个连续的猜测?如果猜测比前一次尝试更接近或更远,我需要说“Warmer”或“Colder”。

private class Event implements ActionListener{
    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource() == guessAgain)
        {

        }
        else if(e.getSource() == newGame)
        {

        }
        else if(e.getSource() == userGuess)
        {
            input = userGuess.getText();
            guess = Double.parseDouble(input);
        }

2 个答案:

答案 0 :(得分:1)

" colder" /"温暖"问题...

public static void main(String[] args) {

  int guess, prevGuess, prevMiss, miss, secretNumber;

  secretNumber = 99;

  prevGuess = 77;
  prevMiss = Math.abs(secretNumber - prevGuess);

  guess = 88;
  miss = Math.abs(secretNumber - guess);

  if     (miss > prevMiss) System.out.println("Colder");
  else if(miss < prevMiss) System.out.println("Warmer");
  else                     System.out.println("No change");

}

差值的绝对值给出了距离。

答案 1 :(得分:0)

根据我的评论:

  • 为你的班级提供一个int字段,previousGuess,让它保持先前的猜测。
  • 按下按钮时,获取输入,将其转换为int并将其放入int局部变量,称为currentGuess。
  • 你可能也想要一个布尔字段firstGuess,它最初是真的,所以你知道什么时候没有先前的猜测。在检查它是真还是假之后将其设置为false,并在重新启动游戏时将其重新设置为true。
  • 只需将previousGuess与currentGuess和解决方案编号进行比较,并根据这些比较向用户显示相应的输出。
  • 然后将currentGuess分配给previousGuess以进行下一次复飞。即,previousGuess = currentGuess;

就是这样。


修改
根据DSlomer64的评论:

  

要确定是说“更温暖”还是“更冷”,请使用Math.abs(),绝对值函数来保存先前和当前的未命中数量。