当前位置:   article > 正文

24刘谦魔术自动版大模拟(c++)

24刘谦魔术自动版大模拟(c++)

其实也蛮简单的, 几个小时就做完了

一共四百行,全是基础代码,欢迎大佬来优化orz

  1. #include<bits/stdc++.h>
  2. #include<Windows.h>
  3. #define cls system("cls")
  4. #define wait Sleep(800)
  5. #define wait1 Sleep(1000)
  6. #define stop system("pause")
  7. using namespace std;
  8. char p[13]={' ','A','2','3','4','5','6','7','8','9','J','Q','K'};
  9. string s1="好运留下来——",s2="烦恼丢出去!";
  10. int l=12,name,hide,n=8,nanbei,nannv;
  11. struct stu{
  12. int num,f;//点数
  13. string s;
  14. }a[20],b[20],ts[20];
  15. void pp(){//输出藏牌
  16. cout<<"藏牌:"<<p[hide]<<endl;
  17. }
  18. void print(){
  19. for(int i=1;i<=n;i++) cout<<p[a[i].num]<<endl;
  20. }
  21. void FirstStep(){
  22. for(int i=1;i<=4;i++){
  23. Sleep(800);
  24. srand((unsigned)time(NULL));
  25. int t=rand()%l+1;
  26. a[i].num=t;
  27. a[i].f=1;
  28. a[i+4].num=t;
  29. a[i+4].f=0;
  30. cout<<p[t]<<endl;
  31. }
  32. stop;
  33. cls;
  34. }
  35. void SecondStep(){
  36. cout<<"第二步~对折,撕!\n";
  37. for(int i=1;i<=4;i++){
  38. wait;
  39. cout<<p[a[i].num]<<' ';
  40. wait;
  41. cout<<p[a[i].num]<<endl;
  42. }
  43. wait;
  44. cls;
  45. cout<<"第二步~将撕好的牌放在下面\n";
  46. wait;
  47. for(int i=1;i<=8;i++){
  48. cout<<p[a[i].num]<<endl;
  49. wait;
  50. }
  51. stop;
  52. cls;
  53. }
  54. void ThirdStep(){
  55. cout<<"第三步~问问你的名字有几个字(填数字):";
  56. cin>>name;
  57. wait;
  58. cls;
  59. cout<<"第三步~将"<<name<<"张牌依次放到下面\n";
  60. wait;
  61. print();
  62. wait1;
  63. for(int i=1;i<=name;i++){
  64. cls;
  65. cout<<"第三步~将"<<name<<"张牌依次放到下面(第"<<i<<"张)\n\n";
  66. cout<<p[a[2].num]<<" "<<p[a[1].num]<<endl;
  67. for(int j=3;j<=8;j++) cout<<p[a[j].num]<<endl;
  68. wait1;
  69. cls;
  70. cout<<"第三步~将"<<name<<"张牌依次放到下面(第"<<i<<"张)\n\n";
  71. for(int j=2;j<=8;j++) cout<<p[a[j].num]<<endl;
  72. cout<<p[a[1].num];
  73. wait1;
  74. cls;
  75. cout<<"第三步~将"<<name<<"张牌依次放到下面(第"<<i<<"张)\n";
  76. for(int j=1;j<=8;j++) b[j]=a[j];
  77. for(int j=1;j<=7;j++) a[j]=b[j+1];
  78. a[8]=b[1];
  79. print();
  80. wait1;
  81. }
  82. stop;
  83. cls;
  84. }
  85. void FourthStep(){
  86. cout<<"第四步~将最上面的三张牌插到中间\n";
  87. wait;
  88. print();
  89. wait1;
  90. cls;
  91. cout<<"第四步~请选择您的心仪位置(填对应字母)\n";
  92. char t='a';
  93. for(int i=1;i<=3;i++) cout<<p[a[i].num]<<endl;
  94. for(int i=4;i<8;i++){
  95. cout<<p[a[i].num]<<endl;
  96. cout<<' '<<t<<endl;
  97. t++;
  98. }
  99. cout<<p[a[8].num]<<endl;
  100. wait;
  101. cout<<"请选择:";
  102. cin>>t;//a:4.5之间 b:5.6之间 c:6.7之间 d:7.8之间
  103. wait;//a对应97
  104. cls;
  105. cout<<"第四步~将最上面的三张牌插到中间\n";
  106. int q=t-93,j=1;
  107. for(int i=4;i<=q;i++){
  108. cout<<p[a[i].num];
  109. cout<<endl;
  110. }
  111. for(int i=1;i<=3;i++){
  112. cout<<" "<<p[a[i].num]<<endl;
  113. }
  114. for(int i=q+1;i<=8;i++){
  115. cout<<p[a[i].num]<<endl;
  116. }
  117. wait1;
  118. cls;
  119. cout<<"第四步~将最上面的三张牌插到中间\n";
  120. for(int i=1;i<=8;i++) b[i].num=a[i].num;
  121. for(int i=4;i<=q;i++,j++) a[j].num=b[i].num;
  122. for(int i=1;i<=3;i++,j++) a[j].num=b[i].num;
  123. print();
  124. stop;
  125. cls;
  126. }
  127. void FifthStep(){
  128. cout<<"第五步~将第一张牌藏到其它地方\n";
  129. wait;
  130. print();
  131. wait;
  132. cls;
  133. cout<<"第五步~将第一张牌藏到其它地方\n";
  134. hide=a[1].num;
  135. cout<<" "<<p[hide]<<endl;
  136. for(int i=1;i<=8;i++) b[i].num=a[i].num;
  137. for(int i=2;i<=8;i++) a[i-1].num=b[i].num;
  138. n=7;
  139. print();
  140. wait;
  141. cls;
  142. cout<<"第五步~将第一张牌藏到其它地方\n";
  143. cout<<p[a[1].num]<<" "<<p[hide]<<endl;
  144. for(int i=2;i<=7;i++) cout<<p[a[i].num]<<endl;
  145. wait;
  146. cls;
  147. cout<<"第五步~将第一张牌藏到其它地方\n";
  148. print();
  149. wait;
  150. cls;
  151. cout<<endl;
  152. cout<<"第五步~将第一张牌藏到其它地方\n";
  153. print();
  154. wait;
  155. cls;
  156. pp();
  157. cout<<"第五步~将第一张牌藏到其它地方\n";
  158. print();
  159. stop;
  160. cls;
  161. }
  162. void SixthStep(){
  163. pp();
  164. cout<<"第六步~你是...南方人填1,北方人填2,不确定填3:";
  165. cin>>nanbei;
  166. wait;
  167. cls;
  168. pp();
  169. cout<<"第六步~将最上面的"<<nanbei<<"张牌插到中间\n";
  170. wait;
  171. cout<<"请选择心仪的位置(填对应字母)\n";
  172. wait;
  173. char t='a';
  174. for(int i=1;i<=nanbei;i++) cout<<p[a[i].num]<<endl;
  175. for(int i=nanbei+1;i<=6;i++){
  176. cout<<p[a[i].num]<<endl;
  177. cout<<' '<<t<<endl;
  178. t++;
  179. }
  180. cout<<p[a[7].num]<<endl;
  181. cout<<"请选择:";
  182. cin>>t;
  183. wait;
  184. cls;
  185. pp();
  186. cout<<"Loading...";
  187. wait1;
  188. cout<<"完毕!\n";
  189. wait;
  190. print();
  191. wait1;
  192. cls;
  193. pp();
  194. cout<<"Loading...完毕!\n";
  195. for(int i=1;i<=7;i++) b[i].num=a[i].num;
  196. int q=t-97+1+nanbei,j=1;
  197. for(int i=nanbei+1;i<=q;i++,j++) a[j].num=b[i].num;
  198. for(int i=1;i<=nanbei;i++,j++) a[j].num=b[i].num;
  199. print();
  200. stop;
  201. cls;
  202. }
  203. void SeventhStep(){
  204. pp();
  205. cout<<"第七步~你是...男生填1,女生填2:";
  206. cin>>nannv;
  207. wait;
  208. cls;
  209. pp();
  210. cout<<"第七步~将最上面的"<<nannv<<"张牌撒到空中去!\n";
  211. print();
  212. wait1;
  213. cls;
  214. pp();
  215. cout<<"第七步~将最上面的"<<nannv<<"张牌撒到空中去!\n";
  216. for(int i=1;i<=nannv;i++) cout<<" "<<p[a[i].num]<<endl;
  217. for(int i=nannv+1;i<=7;i++) cout<<p[a[i].num]<<endl;
  218. wait1;
  219. cls;
  220. pp();
  221. cout<<"第七步~将最上面的"<<nannv<<"张牌撒到空中去!\n";
  222. for(int i=1;i<=nannv;i++) cout<<p[a[nannv+i].num]<<" "<<p[a[i].num]<<endl;
  223. for(int i=nannv+nannv+1;i<=7;i++) cout<<p[a[i].num]<<endl;
  224. wait1;
  225. cls;
  226. pp();
  227. cout<<"第七步~将最上面的"<<nannv<<"张牌撒到空中去!\n";
  228. for(int i=1;i<=7;i++) b[i]=a[i];
  229. for(int i=nannv+1;i<=7;i++) a[i-nannv]=b[i];
  230. n-=nannv;
  231. print();
  232. wait;
  233. stop;
  234. cls;
  235. }
  236. void EighthStep(){
  237. ts[1].s="见";
  238. ts[2].s="证";
  239. ts[3].s="奇";
  240. ts[4].s="迹";
  241. ts[5].s="的";
  242. ts[6].s="时";
  243. ts[7].s="刻";
  244. pp();
  245. cout<<"第八步~跟我一起念带来幸福的七字真言:见证奇迹的时刻\n";
  246. cout<<"每念一个字从上面放一张牌下去\n";
  247. wait;
  248. print();
  249. wait1;
  250. cls;
  251. for(int i=1;i<=7;i++){
  252. pp();
  253. cout<<"第八步~跟我一起念带来幸福的七字真言:见证奇迹的时刻\n";
  254. cout<<"每念一个字从上面放一张牌下去("<<ts[i].s<<")\n\n";
  255. cout<<p[a[2].num]<<" "<<p[a[1].num]<<endl;
  256. for(int j=3;j<=n;j++) cout<<p[a[j].num]<<endl;
  257. wait;
  258. cls;
  259. pp();
  260. cout<<"第八步~跟我一起念带来幸福的七字真言:见证奇迹的时刻\n";
  261. cout<<"每念一个字从上面放一张牌下去("<<ts[i].s<<")\n\n";
  262. for(int j=2;j<=n;j++) cout<<p[a[j].num]<<endl;
  263. cout<<p[a[1].num];
  264. wait;
  265. cls;
  266. pp();
  267. cout<<"第八步~跟我一起念带来幸福的七字真言:见证奇迹的时刻\n";
  268. cout<<"每念一个字从上面放一张牌下去("<<ts[i].s<<")\n";
  269. for(int j=1;j<=n;j++) b[j]=a[j];
  270. for(int j=2;j<=n;j++) a[j-1]=b[j];
  271. a[n]=b[1];
  272. print();
  273. wait;
  274. cls;
  275. }
  276. pp();
  277. cout<<"第八步~跟我一起念带来幸福的七字真言:见证奇迹的时刻\n";
  278. cout<<"每念一个字从上面放一张牌下去(完毕)\n";
  279. print();
  280. stop;
  281. cls;
  282. }
  283. void NinthStep(){
  284. pp();
  285. cout<<"第九步~祈福仪式的最后一个环节:\n";
  286. print();
  287. wait;
  288. for(int i=1;n>1;i++){
  289. cls;
  290. if(i%2){//好运留下来
  291. pp();
  292. cout<<"第九步~祈福仪式的最后一个环节:"<<s1<<endl;
  293. print();
  294. wait;
  295. cls;
  296. pp();
  297. cout<<"第九步~祈福仪式的最后一个环节:"<<s1<<endl<<endl;
  298. cout<<p[a[2].num]<<" "<<p[a[1].num]<<endl;
  299. for(int j=3;j<=n;j++) cout<<p[a[j].num]<<endl;
  300. wait;
  301. cls;
  302. pp();
  303. cout<<"第九步~祈福仪式的最后一个环节:"<<s1<<endl<<endl;
  304. for(int j=2;j<=n;j++) cout<<p[a[j].num]<<endl;
  305. cout<<p[a[1].num];
  306. wait;
  307. cls;
  308. pp();
  309. cout<<"第九步~祈福仪式的最后一个环节:"<<s1<<endl;
  310. for(int j=1;j<=n;j++) b[j]=a[j];
  311. for(int j=2;j<=n;j++) a[j-1]=b[j];
  312. a[n]=b[1];
  313. print();
  314. wait1;
  315. }
  316. else{//烦恼丢出去
  317. pp();
  318. cout<<"第九步~祈福仪式的最后一个环节:"<<s2<<endl;
  319. print();
  320. wait;
  321. cls;
  322. pp();
  323. cout<<"第九步~祈福仪式的最后一个环节:"<<s2<<endl<<endl;
  324. cout<<p[a[2].num]<<" "<<p[a[1].num]<<endl;
  325. for(int j=3;j<=n;j++) cout<<p[a[j].num]<<endl;
  326. wait;
  327. cls;
  328. pp();
  329. cout<<"第九步~祈福仪式的最后一个环节:"<<s2<<endl<<endl;
  330. for(int j=2;j<=n;j++) cout<<p[a[j].num]<<endl;
  331. wait;
  332. cls;
  333. pp();
  334. cout<<"第九步~祈福仪式的最后一个环节:"<<s2<<endl;
  335. for(int j=1;j<=n;j++) b[j]=a[j];
  336. for(int j=2;j<=n;j++) a[j-1]=b[j];
  337. n--;
  338. print();
  339. wait1;
  340. }
  341. }
  342. stop;
  343. cls;
  344. }
  345. void End(){
  346. pp();
  347. cout<<"现在拿出我们藏起来的神秘半张牌\n";
  348. print();
  349. wait;
  350. cls;
  351. cout<<"藏牌:\n现在拿出我们藏起来的神秘半张牌\n";
  352. print();
  353. wait;
  354. cls;
  355. cout<<"现在拿出我们藏起来的神秘半张牌\n";
  356. cout<<p[a[1].num]<<" "<<p[hide];
  357. wait;
  358. cls;
  359. if(p[a[1].num]==p[hide]){
  360. cout<<"现在拿出我们藏起来的神秘半张牌\n";
  361. cout<<p[a[1].num]<<" "<<p[hide];
  362. wait;
  363. cls;
  364. cout<<"现在拿出我们藏起来的神秘半张牌\n";
  365. cout<<p[a[1].num]<<" "<<p[hide];
  366. wait;
  367. cls;
  368. cout<<"现在拿出我们藏起来的神秘半张牌\n";
  369. cout<<p[a[1].num]<<p[hide];
  370. wait;
  371. cls;
  372. cout<<"现在拿出我们藏起来的神秘半张牌\n";
  373. cout<<p[hide];
  374. wait;
  375. cls;
  376. cout<<"恭喜你破镜重圆,完成祈福仪式~\n接下来你将顺风顺水,开心快乐一整年!\n";
  377. cout<<p[hide];
  378. wait;
  379. }
  380. else{
  381. cout<<"Woops!穿帮了!请重新开始。\n";
  382. cout<<p[a[1].num]<<" "<<p[hide];
  383. wait;
  384. }
  385. }
  386. int main(){
  387. cout<<"祈福时间到~请发牌\n";
  388. wait;
  389. FirstStep();
  390. SecondStep();
  391. ThirdStep();
  392. FourthStep();
  393. FifthStep();
  394. SixthStep();
  395. SeventhStep();
  396. EighthStep();
  397. NinthStep();
  398. End();
  399. return 0;
  400. }

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

闽ICP备14008679号