⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 knockknockprotocol.java

📁 java实现的遗传算法
💻 JAVA
字号:
package org.jgap.distr.sockets;

public class KnockKnockProtocol {
  private static final int WAITING = 0;

  private static final int SENTKNOCKKNOCK = 1;

  private static final int SENTCLUE = 2;

  private static final int ANOTHER = 3;

  private static final int NUMJOKES = 5;

  private int state = WAITING;

  private int currentJoke = 0;

  private String[] clues = {
      "Turnip", "Little Old Lady", "Atch", "Who", "Who"};

  private String[] answers = {
      "Turnip the heat, it's cold in here!",
      "I didn't know you could yodel!",
      "Bless you!",
      "Is there an owl in here?",
      "Is there an echo in here?"};

  public String processInput(String theInput) {
    String theOutput = null;
    if (state == WAITING) {
      theOutput = "Knock! Knock!";
      state = SENTKNOCKKNOCK;
    }
    else if (state == SENTKNOCKKNOCK) {
      if (theInput.equalsIgnoreCase("Who's there?")) {
        theOutput = clues[currentJoke];
        state = SENTCLUE;
      }
      else {
        theOutput = "You're supposed to say \"Who's there?\"! " +
            "Try again. Knock! Knock!";
      }
    }
    else if (state == SENTCLUE) {
      if (theInput.equalsIgnoreCase(clues[currentJoke] + " who?")) {
        theOutput = answers[currentJoke] + " Want another? (y/n)";
        state = ANOTHER;
      }
      else {
        theOutput = "You're supposed to say \"" +
            clues[currentJoke] +
            " who?\"" +
            "! Try again. Knock! Knock!";
        state = SENTKNOCKKNOCK;
      }
    }
    else if (state == ANOTHER) {
      if (theInput.equalsIgnoreCase("y")) {
        theOutput = "Knock! Knock!";
        if (currentJoke == (NUMJOKES - 1))
          currentJoke = 0;
        else
          currentJoke++;
        state = SENTKNOCKKNOCK;
      }
      else {
        theOutput = "Bye.";
        state = WAITING;
      }
    }
    return theOutput;
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -