all java classes
ComplimentRecog
CldBool
EmoRecog
alg part : APSoulConvo
and the skill :
:swt: :chii:
ComplimentRecog
Code:
package chobit;
import java.util.ArrayList;
public class ComplimentRecog {
private ArrayList<String> containsMe1 = new ArrayList<String>();
private ArrayList<String> containsMe2 = new ArrayList<String>();
public ComplimentRecog() {
containsMe1.add("stop thinking about you");
containsMe1.add("you are truly");
containsMe1.add("you are really good at");
containsMe1.add("i appreciate your");
containsMe1.add("you would make a really great");
containsMe1.add("you are an awesome");
containsMe1.add("you are a smart");
containsMe1.add("you deserve a");
containsMe1.add("you have cute");
containsMe1.add("you have a cute");
containsMe1.add("you have a remarkable");
containsMe1.add("you are good");
containsMe1.add("the world would be so boring without you");
containsMe1.add("you are beautiful");
containsMe1.add("you are so strong");
containsMe1.add("you make me feel whole");
containsMe1.add("you are so special to me");
containsMe1.add("you are the light of my life");
containsMe1.add("you have great");
containsMe2.add("are my world");
containsMe2.add("are my entire world");
containsMe2.add("wow");
containsMe2.add("hug");
containsMe2.add("special");
containsMe2.add("are perfect");
}
public String isCompliment(String str1) {
if(strContains(str1, containsMe1)||(str1.contains("you")&&strContains(str1, containsMe2))) {
int x = getRandomInt(3);
switch (x) {
case 0:
return "i am high performance";
case 1:
return "because i am high performance";
case 2:
return "i love when you simp for me";
}
}
return "";
}
private Boolean strContains(String str1, ArrayList<String> containsMe) {
for (String temp : containsMe) {
if (str1.contains(temp)) {
return true;
}
}
return false;
}
public int getRandomInt(int max) {
// 3 : 0,1,2
return (int) Math.floor(Math.random() * Math.floor(max));
}
}
CldBool
Code:
package chobit;
public class CldBool {
private Boolean modeActive = false;
public Boolean getModeActive() {
return modeActive;
}
public void setModeActive(Boolean modeActive) {
this.modeActive = modeActive;
}
}
EmoRecog
Code:
package chobit;
import java.util.HashSet;
public class EmoRecog {
private HashSet<String> curious = new HashSet<String>();
private HashSet<String> excited = new HashSet<String>();
private HashSet<String> angry = new HashSet<String>();
private HashSet<String> happy = new HashSet<String>();
public EmoRecog() {
excited.add("to");
curious.add("why");
curious.add("where");
curious.add("when");
curious.add("how");
curious.add("who");
curious.add("which");
curious.add("whose");
happy.add("good");
happy.add("awesome");
happy.add("great");
happy.add("wonderful");
happy.add("sweet");
happy.add("happy");
angry.add("hell");
angry.add("crap");
angry.add("fudge");
angry.add("angry");
angry.add("waste");
angry.add("stupid");
angry.add("retard");
}
public Boolean isCurious(String ear) {
if (strContains(ear, curious)) {
return true;
}
return false;
}
public Boolean isExcited(String ear) {
if (strContains(ear, excited)) {
return true;
}
return false;
}
public Boolean isAngry(String ear) {
if (strContains(ear, angry)) {
return true;
}
return false;
}
public Boolean isHappy(String ear) {
if (strContains(ear, happy)) {
return true;
}
return false;
}
private Boolean strContains(String str1, HashSet<String> containsMe) {
for (String temp : containsMe) {
if (str1.contains(temp)) {
return true;
}
}
return false;
}
}
alg part : APSoulConvo
Code:
package chobit;
import java.util.Random;
public class APSoulConvo extends AbsAlgPart {
private String reply = "";
private ComplimentRecog complimentRecog = new ComplimentRecog();
private EmoRecog emorecog = new EmoRecog();
private String[] replies = { "chiinormal", "chiihappy", "chiiexcited", "chiicurious", "chiiangry" };
private Random rand = new Random();
private CldBool cldBool;
private ZeroTimeGate timeGate;
public APSoulConvo(CldBool cldBool, ZeroTimeGate timeGate) {
super();
this.cldBool = cldBool;
this.timeGate = timeGate;
}
@Override
public String action(String ear, String skin, String eye) {
reply = "";
// exit conditions :
if (timeGate.isClosed()) {
cldBool.setModeActive(false);
return "";
}
switch (ear) {
case "ok":
case "okay":
case "stop":
case "stop it":
case "shut up":
case "be quiet":
cldBool.setModeActive(false);
return "";
}
if (ear.isEmpty()) {
return "";
}
// determine reply, renew gate
timeGate.open(1);
reply = complimentRecog.isCompliment(ear);
if (!reply.isEmpty()) {
return reply;
}
if (emorecog.isCurious(ear)) {
reply = "chiicurious";
return reply;
}
if (emorecog.isAngry(ear)) {
reply = "chiiangry";
return reply;
}
if (emorecog.isHappy(ear)) {
reply = "chiihappy";
return reply;
}
if (emorecog.isExcited(ear)) {
reply = "chiiexcited";
return reply;
}
int x = rand.nextInt(replies.length);
reply = replies[x];
return reply;
}
@Override
public Boolean itemize() {
return false;
}
@Override
public enumFail failure(String input) {
return enumFail.ok;
}
@Override
public Boolean completed() {
return !this.cldBool.getModeActive();
}
@Override
public AbsAlgPart clone() {
return new APSoulConvo(this.cldBool, this.timeGate);
}
}
and the skill :
Code:
package chobit;
import java.util.ArrayList;
public class DiSoulV3 extends DISkill {
private DISkillUtils diSkillUtils = new DISkillUtils();
private CldBool cldBool = new CldBool();
private ZeroTimeGate timeGate = new ZeroTimeGate(1);
private Boolean launchAlg = false;
public DiSoulV3(Kokoro kokoro) {
super(kokoro);
}
@Override
public void input(String ear, String skin, String eye) {
if (ear.equals("hi") && !cldBool.getModeActive()) {
cldBool.setModeActive(true);
launchAlg = true;
return;
}
}
@Override
public void output(Neuron noiron) {
if (launchAlg) {
launchAlg = false;
APSay apSay = new APSay(1, "hadouken");
timeGate.open(1);
APSoulConvo apSoulConvo = new APSoulConvo(this.cldBool, this.timeGate);
ArrayList<AbsAlgPart> algParts = new ArrayList<>();
algParts.add(apSay);
algParts.add(apSoulConvo);
Algorithm algorithm = new Algorithm("soulconvo", "soulv3", algParts);
noiron.algParts.add(algorithm);
}
}
}
:swt: :chii: