package com.itheima.Demo;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Scanner;
import com.itheima.bean.Robot;
/*
* 模拟一个机器人与人对话的情景
* 创建一个机器人,该类有:状态(string) 和 话术(HashMap<string,string>)两个属性
* a. 添加话术(将一下的信息分别添加到map话术中)
* key(指令) : value(应答)
* "你好" : "您好,主人"
* "我饿了" : "您想吃什么,但是我不会做"
* "拜拜" : "拜拜"
* b. 根据用户在控制台输入的指令,打印出应答的话术,如果用户输入的指令没有对应的应答,则提示"对不起,我不知道怎么回答",直到用户
* 说拜拜,并且应答拜拜后才可以停止键盘录入(键盘录入之前需要检查当前机器人的状态)
* c. 将以上所有跟机器人的对话内容存入当前项目info.txt中
*/
public class Test11 {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
HashMap<String, String> hs = new HashMap<>();
hs.put("你好", "您好,主人");
hs.put("我饿了", "您想说什么,但我不会做");
hs.put("拜拜", "拜拜");
String state = "close";
Robot rt = new Robot(state, hs);
/*
* b. 根据用户在控制台输入的指令,打印出应答的话术,如果用户输入的指令没有对应的应答,则提示"对不起,我不知道怎么回答",直到用户
* 说拜拜,并且应答拜拜后才可以停止键盘录入(键盘录入之前需要检查当前机器人的状态)
*/
Scanner sc = new Scanner(System.in);
System.out.println("机器人当前状态为" + rt.getState() + "(输入\"open\"打开机器人)");
while (true) {
String s = sc.nextLine();
if ("open".equals(s)) {
System.out.println("指令正确,机器人已开启,您现在可以跟机器人交流啦!!");
rt.setState(s);
BufferedWriter bw = new BufferedWriter(new FileWriter(
"info.txt"));
while (true) {
String line = sc.nextLine();
if ("拜拜".equals(line)) {
System.out.println(rt.getSpeak().get(line));
bw.write(line + " - " + rt.getSpeak().get(line));
break;
} else if (rt.getSpeak().containsKey(line)) {
System.out.println(rt.getSpeak().get(line));
bw.write(line + " - " + rt.getSpeak().get(line));
} else {
System.out.println("对不起,我不知道怎么回答");
bw.write(line + " - " + "对不起,我不知道怎么回答");
}
bw.newLine();
}
bw.close();
break;
} else {
System.out.println("您输入的指令不对,请重新输入打开机器人的指令:");
}
}
}
}
|
|