当前位置:   article > 正文

C/C++简易人工智能_c++人工智能

c++人工智能
  1. #include<bits/stdc++.h>
  2. #include<windows.h>
  3. void SetTitle(LPCSTR lpTitle)
  4. {
  5. SetConsoleTitle(lpTitle);
  6. }
  7. using namespace std;
  8. int main()
  9. {
  10. long long i,g=-1000000,t,n1=0,n2=0,j,m,bk;
  11. char ch='\0';
  12. bool l[255];
  13. string s,a="",b="",c="";
  14. system("color F0");
  15. system("mode con cols=34 lines=19");
  16. SetTitle("人工智能 AI 1.0");
  17. cout<<"\n 算式格式为\"~~~=?\"\n 支持+-*/%五种运算!\n 不支持混合运算!\n 退出请输入\"退出\"\n 请提问:\n\n\n";
  18. while(1)
  19. {
  20. char k[255]={'\0'};
  21. memset(l,1,sizeof(l));
  22. cout<<" >> ";
  23. cin>>k;
  24. cout<<" >> ";
  25. for(i=0;i<255;i++)
  26. if(int(k[i])<0)l[i]=0;//注:这里用来判断中英文 例如输入"n=1,你好"则l为11110000
  27. //1个1为英文字符,2个0为中文
  28. s=k;
  29. if(l[0])t=1;
  30. else t=2;
  31. for(i=0;i<s.size();i+=t)
  32. {
  33. if(l[i])t=1;
  34. else t=2;
  35. if(k[i]=='\0')break;
  36. a="",b="",c="";
  37. if(l[i])
  38. {
  39. if(s[i]>='0'&&s[i]<='9')
  40. {
  41. n1=0,n2=0;
  42. ch='\0';
  43. bk=0;
  44. for(j=i;s[j]>='0'&&s[j]<='9';j++)
  45. n1=n1*10+(s[j]-'0');
  46. if(s[j]!='+'&&s[j]!='-'&&s[j]!='*'&&s[j]!='/'&&s[j]!='%')goto out;
  47. ch=s[j];
  48. m=j+1;
  49. int z=j+1;
  50. j--;
  51. for(;s[m]>='0'&&s[m]<='9';m++)
  52. n2=n2*10+(s[m]-'0');
  53. bk=m;
  54. m--;
  55. cout<<'=';
  56. if(ch=='+')cout<<n1+n2;
  57. if(ch=='-')cout<<n1-n2;
  58. if(ch=='*')cout<<n1*n2;
  59. if(ch=='/')cout<<n1/n2;
  60. if(ch=='%')cout<<n1%n2;
  61. break;
  62. }
  63. out:
  64. if(s[i]=='?'&&s[i+1]!='\0')cout<<',';
  65. else if(s[i]=='?'||s[i]=='!')cout<<"";
  66. else cout<<s[i];
  67. continue;
  68. }
  69. a.append(1,s[i]);
  70. a.append(1,s[i+1]);
  71. b.append(1,s[i+2]);
  72. b.append(1,s[i+3]);
  73. c.append(1,s[i+4]);
  74. c.append(1,s[i+5]);
  75. if(a=="你"&&b!="好"&&b!="个")cout<<"我";
  76. else if(a=="我")cout<<"你";
  77. else if(a=="是"&&b=="谁")
  78. {
  79. cout<<"是一个人工智能";
  80. i+=2;
  81. }
  82. else if(a=="呢"||a=="啊"||a=="呐"||a=="呀"||a=="哇"||a=="那"||a=="咯"||a=="吧"||a=="啦"||a=="了"||a=="儿"||a=="吗"||a=="")cout<<"";
  83. else if((a=="弄"||a=="干")&&(b=="嘛"||b=="啥"))
  84. {
  85. cout<<"肝代码";
  86. i+=2;
  87. }
  88. else if(a=="哪")cout<<"北京";
  89. else if(a=="何"&&b=="处")
  90. {
  91. cout<<"北京";
  92. i+=2;
  93. }
  94. else if(a=="是"&&b=="几"||a=="是"&&b=="多"&&c=="少"||a=="等"&&b=="于"&&(c=="几"||c=="多"))
  95. {
  96. for(int j=1;j<=i;j++)cout<<"\b";
  97. cout<<a;
  98. }
  99. else if(a=="是"&&b=="什"&&c=="么")
  100. {
  101. for(int j=1;j<=i;j++)cout<<"\b";
  102. cout<<"我不知道";
  103. i+=4;
  104. if(l[i+2]==1)i++;
  105. }
  106. else if(a=="是")
  107. {
  108. srand(g+=3);
  109. if(rand()%5>1)cout<<"是";
  110. else cout<<"不是";
  111. }
  112. else if(a=="能")
  113. {
  114. srand(g+=3);
  115. if(rand()%2)cout<<"能";
  116. else cout<<"不能";
  117. }
  118. else if(a=="几"||a=="多"&&b=="少")
  119. {
  120. srand(g+=3);
  121. cout<<rand()%100;
  122. if(b=="少")i+=2;
  123. }
  124. else if(a=="什"&&b=="么"&&c=="地")
  125. {
  126. cout<<"北京";
  127. i+=6;
  128. }
  129. else if(a=="什"&&b=="么"&&c=="时")
  130. {
  131. cout<<"中午";
  132. i+=6;
  133. }
  134. else if(a=="什"&&b=="么"&&c=="名")
  135. {
  136. cout<<"AI 1.0";
  137. i+=6;
  138. }
  139. else if(a=="死"&&b=="了")
  140. {
  141. cout<<"没死";
  142. i+=2;
  143. }
  144. else if(a=="你"&&b=="个")
  145. {
  146. cout<<"你才";
  147. i+=2;
  148. }
  149. else if(a=="知"&&b=="道")
  150. {
  151. cout<<"知道,";
  152. i+=2;
  153. }
  154. else if(a=="")cout<<"";
  155. else if(a=="")cout<<"";
  156. else if(a=="")cout<<"";
  157. else if(a=="")cout<<"";
  158. else if(a=="")cout<<"";
  159. else if(a=="退"&&b=="出")return 0;
  160. else cout<<a;
  161. }
  162. cout<<"!\n\n";
  163. }
  164. return 0;
  165. }

其实就是改变了一些汉字,再输出.

可以简单运算

如:

输入:  1+1=?

输出:   =2!

10*10是多少?

=100!

像1+1+1这样的就只输出1+1的结果

制作不易,点个赞也行啊!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/303989?site
推荐阅读
相关标签
  

闽ICP备14008679号