用图灵机器人实现的两个机器人对话聊天
这是使用图灵机器人提供的API来实现的两个机器人对话,挺有意思的,感兴趣的朋友也可以去官网注册一个账号http://www.tuling123.com
下面是具体的实现代码:
public class Test extends Random { /** * */ private static final long serialVersionUID = 8120549762361392055L; @SuppressWarnings("unused") private Long seed; private Boolean haveNextNextGaussian; synchronized public void setSeed(long seed) { this.seed = (seed ^ 0x5DEECE66DL) & ((1L << 48) - 1); haveNextNextGaussian = false; } private String[] userIds = new String[] { "aMuFfwmIa6fsdFfCS87ipA4ljAEKok", "bMuFfwmIa6fsdFfCS87ipA4ljAEKok" }; private String[] localRebort = new String[] { "aRebort", "bRebort" }; private Integer needRunTime; private Long startTime = 0L; private Long endTime = 0L; public static void main(String[] args) throws UnsupportedEncodingException { Test test = new Test(); test.runner(test,"你好"); } public void runner(final Test test,final String firstText) { Random random = new Random(); final Integer firstSpeed = random.nextInt(2); needRunTime = (Integer) random.nextInt(1 * 60 * 1000 + 1); String shouldTime = getTimeStr(needRunTime); System.out.println("本次聊天只限" + shouldTime + ",时间到了就得熄灯了!"); startTime = System.currentTimeMillis(); try { test.rebort2rebort(test, firstText, firstSpeed); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } /*final Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { try { if (index == 0) { test.rebort2rebort(test, firstText, firstSpeed); index = 1; } else { test.rebort2rebort(test, localString, localIndex); } timer.cancel(); System.out.println("好了,熄灯了,早点睡吧,别聊天了!"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } },0,1000);*/ } private static String getTimeStr(Integer time) { time = time / 1000; Integer second = 0; Integer minute = 0; if (time % 60 >= 0) { second = time - time / 60 * 60; time = time / 60; if (time % 60 >= 0) { minute = time - time / 60 * 60; time = time / 60; } } return (time == 0L ? "" : (time + "小时")) + (minute==0?"": (minute + "分钟")) + second + "秒"; } public void rebort2rebort(final Test test, String text, Integer localIndex) throws UnsupportedEncodingException { ExpressDoService expressService = new ExpressDoService(); String respContent; String bTalk; respContent = expressService.getRebortTalk(text, userIds[localIndex]); System.out.println(localRebort[localIndex] + ">>>Said>>>To>>>" + localRebort[(localIndex + 1) / 2] + text); BaseRebortResp baseRebortResp = JSONUtil.jsonToBean(respContent, BaseRebortResp.class); bTalk = baseRebortResp.getText(); localIndex = (localIndex + 1) % 2; endTime = System.currentTimeMillis(); if((endTime-startTime-needRunTime)>=0){ System.out.println("好了,熄灯了,早点睡吧,别聊天了!"); System.exit(0); } test.rebort2rebort(test, bTalk, localIndex); } public Integer getNeedRunTime() { return needRunTime; } public void setNeedRunTime(Integer needRunTime) { this.needRunTime = needRunTime; } }