import java.util.Random; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; /** * The responder class represents a response generator object. * It is used to generate an automatic response to an input string. * * @author Ahmad Lamaul Farid * @version 12 November 2020 */ public class Responder { private Random randomGenerator; private ArrayList defaultResponses; private HashMap responseMap; /** * Create a responder. */ public Responder() { defaultResponses = new ArrayList(); responseMap = new HashMap(); fillResponses(); fillDefaultResponses(); randomGenerator = new Random(); } /** * Generate a response. * @return A string that should be displayed as the response. */ public String generateResponse(HashSet character) { for(String word : character) { String response = responseMap.get(word); if(response != null) { return response; } } return pickDefaultResponse(); } /** * Build up a list of default responses from which we can pick one * if we don't know what else to say. */ private void fillResponses() { responseMap.put("hallo", "Hallo juga"); responseMap.put("senang", "Wah, saya juga merasa senang jika anda senang\n" + "Memangnya apa yang membuatmu senang?"); responseMap.put("sedih", "Tolong janganlah bersedih kawan :(\n" + "Tetaplah jalani hari dengan penuh keceriaan dan semangat"); responseMap.put("rindu", "Jangan rindu, rindu itu berat kawan kamu tidak akan kuat biar aku saja"); responseMap.put("letih", "Memang akan sangat meletihkan jika melakukan banyak aktivitas\n" + "Jangan lupa relax-kan badan sejenak, seduh secangkir kopi dan nyanyikan lagu indie"); responseMap.put("gombal1", "Kursi makin lama makin antik, Kalau kamu makin lama makin cantik"); responseMap.put("gombal2", "Selain ada garuda di dadaku, di dadaku juga selalu ada kamu"); responseMap.put("gombal3", "Napas aku kok sesek banget ya?\n" + "tau gak kenapa?\n" + "karena separuh nafas aku ada pada kamu."); responseMap.put("kamu", "aku dibel-bot, teman online kamu saat sedang gabut"); } private void fillDefaultResponses() { defaultResponses.add("Wah, cukup menarik. ceritakan lebih..."); defaultResponses.add("Saya masih membutuhkan informasi lebih tentang hal tersebut."); defaultResponses.add("Mohon maaf saya kurang paham dengan maksud anda"); } private String pickDefaultResponse() { int index = randomGenerator.nextInt(defaultResponses.size()); return defaultResponses.get(index); } }