ChatBot に残っている最後の部分は 1 つだけです。チャットボット クラスを変更して、時折 (たとえば、30% の確率で) ユーザー入力に対してランダムに生成された標準的な返信を返すようにする方法を見つける必要があります。 OMG」、「あなたは言わない」、「本当に?」、または「なるほど」。
編集:推奨される変更を適用しました:
import java.util.Random;
import java.util.Scanner;
public class ChatBot
{
private int responseCount = 0;
public String getResponse(String value)
{
String X = longestWord(value);
this.responseCount++;
if (responseCount == 10)
{
return "Sorry, but our time is up. I can't talk with you any longer.";
}
if (value.contains("you"))
{
return "I'm not important. Let's talk about you instead.";
}
else if (X.length() <= 3)
{
return "Maybe we should move on. Is there anything else you would like to talk about?";
}
else if (X.length() == 4)
{
return "Tell me more about " + X;
}
else if (X.length() == 5)
{
return "Why do you think " + X + " is important?";
}
else if (X.length() <=9)
{
return "Now we are getting somewhere. How does " + X + " affect you the most?";
}
return getRandomResponse();
}
public String longestWord(String value){
Scanner input = new Scanner (value);
String longest = new String();
longest = "";
while (input.hasNext())
{
String temp = input.next();
if(temp.length() > longest.length())
{
longest = temp;
}
}
return longest;
}
private String getRandomResponse()
{
String [] responses = {"OMG", "LOL", "You don't say", "Really?", "I See"};
return responses [(int)(Math.random() * responses.length)];
}
}
問題は、与えられた 5 つの応答のうちの 1 つではなく、同じ応答を返し続けることです。どんな助けでも大歓迎です、ありがとう!
編集:現在、ランダムな応答のみを提供し、getResponse() メソッドで他のすべての応答をオーバーライドしています。