簡體   English   中英

如何從文本字段中提取信息並將其與以前的輸入進行比較

[英]How to extract information from a textfield and compare it to the previous input

我在入門級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);
        }

沿着這些思路解決“陰冷” /“溫暖”的問題...

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");

}

差的絕對值給出了兩者之間的距離。

根據我的評論:

  • 給您的班級一個int字段,previousGuess,並讓它保存上一個猜測。
  • 當按下按鈕時,獲取輸入,將其轉換為int並將其放入int局部變量,即稱為currentGuess。
  • 您可能還需要一個布爾字段firstGuess,最初它是正確的,所以您知道什么時候沒有以前的猜測。 在檢查是否為true或false之后將其設置為false,如果重新啟動游戲,則將其重新設置為true。
  • 只需將previousGuess與currentGuess和解決方案編號進行比較,並根據這些比較向用戶提供適當的輸出。
  • 然后將currentGuess分配給previousGuess,以進行下一次解決。 即, previousGuess = currentGuess;

而已。


編輯
根據DSlomer64的評論:

要確定是說“變暖”還是“變冷”,請使用Math.abs()這個絕對值函數來保存之前和當前的未命中量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM