Advertisement
lamaulfarid

Responder

Nov 11th, 2020
333
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.30 KB | None | 0 0
  1. import java.util.Random;
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.HashSet;
  5.  
  6. /**
  7.  * The responder class represents a response generator object.
  8.  * It is used to generate an automatic response to an input string.
  9.  *
  10.  * @author Ahmad Lamaul Farid
  11.  * @version 12 November 2020
  12.  */
  13. public class Responder
  14. {
  15.         private Random randomGenerator;
  16.         private ArrayList<String> defaultResponses;
  17.         private HashMap<String, String> responseMap;        
  18.        
  19.         /**
  20.          * Create a responder.
  21.          */
  22.         public Responder()
  23.         {
  24.             defaultResponses = new ArrayList<String>();
  25.             responseMap = new HashMap<String, String>();
  26.             fillResponses();
  27.             fillDefaultResponses();
  28.             randomGenerator = new Random();
  29.         }
  30.        
  31.         /**
  32.          * Generate a response.
  33.          * @return      A string that should be displayed as the response.
  34.          */
  35.         public String generateResponse(HashSet<String> character)
  36.         {
  37.             for(String word : character)
  38.             {
  39.                 String response = responseMap.get(word);
  40.                 if(response != null)
  41.                 {
  42.                     return response;
  43.                 }
  44.             }
  45.             return pickDefaultResponse();
  46.         }
  47.        
  48.         /**
  49.          * Build up a list of default responses from which we can pick one
  50.          * if we don't know what else to say.
  51.          */
  52.         private void fillResponses()
  53.         {
  54.             responseMap.put("hallo", "Hallo juga");
  55.             responseMap.put("senang", "Wah, saya juga merasa senang jika anda senang\n" +
  56.                                       "Memangnya apa yang membuatmu senang?");
  57.             responseMap.put("sedih", "Tolong janganlah bersedih kawan :(\n" +
  58.                                      "Tetaplah jalani hari dengan penuh keceriaan dan semangat");
  59.             responseMap.put("rindu", "Jangan rindu, rindu itu berat kawan kamu tidak akan kuat biar aku saja");
  60.             responseMap.put("letih", "Memang akan sangat meletihkan jika melakukan banyak aktivitas\n" +
  61.                                      "Jangan lupa relax-kan badan sejenak, seduh secangkir kopi dan nyanyikan lagu indie");
  62.             responseMap.put("gombal1", "Kursi makin lama makin antik, Kalau kamu makin lama makin cantik");
  63.             responseMap.put("gombal2", "Selain ada garuda di dadaku, di dadaku juga selalu ada kamu");
  64.             responseMap.put("gombal3", "Napas aku kok sesek banget ya?\n" + "tau gak kenapa?\n" +
  65.                                       "karena separuh nafas aku ada pada kamu.");
  66.             responseMap.put("kamu", "aku dibel-bot, teman online kamu saat sedang gabut");
  67.         }
  68.        
  69.         private void fillDefaultResponses()
  70.         {
  71.             defaultResponses.add("Wah, cukup menarik. ceritakan lebih...");
  72.             defaultResponses.add("Saya masih membutuhkan informasi lebih tentang hal tersebut.");
  73.             defaultResponses.add("Mohon maaf saya kurang paham dengan maksud anda");
  74.         }
  75.        
  76.         private String pickDefaultResponse()
  77.         {
  78.             int index = randomGenerator.nextInt(defaultResponses.size());
  79.             return defaultResponses.get(index);
  80.         }
  81.    
  82. }
  83.  
  84.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement