[关闭]
@chengweihuang 2019-03-11T00:46:29.000000Z 字数 1421 阅读 595

Ai 人工智障

未分类


  1. from socket import *
  2. import requests
  3. class Ai(object):
  4. def __init__(self,sockfd):
  5. self.name = '人工智障机器人'
  6. self.nickname='无敌'
  7. self.number = '00001'
  8. self.functions = ['猜数字','聊天']
  9. self.sockfd = sockfd
  10. def run(self):
  11. self.connfd ,self.addr = self.sockfd.accept()
  12. data = '你好 我是人工智障机器人 我有这几个功能 %s'%','.join(self.functions)
  13. self.connfd.send(data.encode('utf-8'))
  14. while 1:
  15. com = self.connfd.recv(1024).decode('utf-8')
  16. if com =='猜数字':
  17. self.guess_number()
  18. elif com =='聊天':
  19. self.chat()
  20. elif com=='退出':
  21. break
  22. else:
  23. pass
  24. def guess_number(self):
  25. data = '猜数字 开始 请输入最大 最小值 用逗号分隔 正确答案记在心中'
  26. self.connfd.send(data.encode('utf-8'))
  27. n_min,n_max = [int(i) for i in [self.connfd.recv(1024)].decode().split(',')]
  28. avgs = (n_min+n_max)//2
  29. ans = '我猜是'+str(avgs)+'回复 大了小了 或正确'
  30. while 1:
  31. self.connfd.send(ans.encode('utf-8'))
  32. res = self.connfd.recv(1024).decode('utf-8')
  33. if res =='正确':
  34. self.connfd.send('游戏结束 请指示'.encode('utf-8'))
  35. break
  36. elif res =='大了':
  37. n_max = avgs
  38. avgs = (n_min+avgs)//2
  39. elif res =='小了':
  40. n_min = avgs
  41. avgs = (n_max+avgs)//2
  42. else:
  43. pass
  44. ans = '我猜是' + str(avgs) + '回复 大了小了 或正确'
  45. def chat(self):
  46. data = '聊天开始 请输入一个话题 '
  47. self.connfd.send(data.encode('utf-8'))
  48. while True:
  49. speak = self.connfd.recv(1024).decode('utf-8')
  50. if speak =='qqq':
  51. data = '已退出 '
  52. self.connfd.send(data.encode('utf-8'))
  53. break
  54. resp = requests.post("http://www.tuling123.com/openapi/api",
  55. data={"key": "a79fcc9fe2fa4b43948db43345d8858b", "info": speak, })
  56. resp = resp.json()
  57. self.connfd.send(resp['text'].encode())
  58. if __name__ == '__main__':
  59. sockfd = socket()
  60. sockfd.bind(('0.0.0.0',8848))
  61. sockfd.listen(5)
  62. ai = Ai(sockfd)
  63. ai.run()
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注