import java.util.*; /** * The responder class represents a response-generator object. * It is used to generate an automatic response to an input string. * * @author Muhammad Bagus Istighfar * @version 0.1 - 11 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 words) { for(String word : words) { 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("halo", "Haloo!!!" + "Bagaimana kabarmu?"); responseMap.put("buruk", "Apakah kamu sakit? :("); responseMap.put("sedih", "Semoga harimu lekas membaik ya!" + "Jadikan harimu sebagai pembelajaran"); responseMap.put("baik", "Wawww, aku juga ikut senang."); responseMap.put("tidak", "oh, okee."); responseMap.put("kamu", "Aku ChatSkuy, yang akan menemani hari - harimu"); responseMap.put("kasih", "Sudah menjadi tugasku"); } private void fillDefaultResponses() { defaultResponses.add("Maaf saya tidak mengerti "); defaultResponses.add("Coba lagi"); } private String pickDefaultResponse() { int index = randomGenerator.nextInt(defaultResponses.size()); return defaultResponses.get(index); } }