当前位置:   article > 正文

C语言写字符动画_c语言显示字符动画

c语言显示字符动画

  受何同学启发,用C在控制台写了一个动画,代码没做优化,十分简单粗暴。

  1. #include <stdio.h>
  2. #include <windows.h>
  3. void color (int x)
  4. {
  5. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
  6. }
  7. int main()
  8. {
  9. int i,j,q=28,xxl=22,h=27,m=33,cc=2,xxx=1;
  10. char s[68][53];
  11. char z[140][53];
  12. char zx[148][100];
  13. for(i=0;i<35;i++)
  14. {
  15. for(j=0;j<28;j++)
  16. zx[i][j]=' ';
  17. for(j=28;j<=35;j++)
  18. zx[i][j]='O';
  19. for(j=36;j<100;j++)
  20. zx[i][j]=' ';
  21. }
  22. for(i=35;i<134;i++)
  23. {
  24. for(j=0;j<h;j++)
  25. zx[i][j]=' ';
  26. for(j=h;j<h+4;j++)
  27. zx[i][j]='O';
  28. for(j=h+4;j<=m;j++)
  29. zx[i][j]=' ';
  30. for(j=m;j<m+4;j++)
  31. zx[i][j]='O';
  32. for(j=m+4;j<100;j++)
  33. zx[i][j]=' ';
  34. if(i<57)
  35. {
  36. h--;
  37. m++;
  38. }
  39. if(i>110)
  40. {
  41. h++;
  42. m--;
  43. }
  44. }
  45. for(i=134;i<148;i++)
  46. {
  47. for(j=0;j<28;j++)
  48. zx[i][j]=' ';
  49. for(j=28;j<=35;j++)
  50. zx[i][j]='O';
  51. for(j=36;j<100;j++)
  52. zx[i][j]=' ';
  53. }
  54. for(i=48;i<=51;i++)
  55. for(j=31;j<=35;j++)
  56. zx[i][j]='*';
  57. for(i=129;i<=133;i++)
  58. {
  59. for(j=15;j<=17;j++)
  60. zx[i][j]='*';
  61. for(j=46;j<=48;j++)
  62. zx[i][j]='*';
  63. }
  64. for(i=0;i<40;i++) //直行
  65. {
  66. for(j=0;j<28;j++)
  67. z[i][j]=' ';
  68. for(j=28;j<36;j++)
  69. z[i][j]='O';
  70. for(j=36;j<53;j++)
  71. z[i][j]=' ';
  72. }
  73. for(i=40;i<61;i++) //拐弯+回;
  74. {
  75. for(j=0;j<q;j++)
  76. z[i][j]=' ';
  77. for(j=q;j<q+8;j++)
  78. z[i][j]='O';
  79. for(j=q+8;j<60;j++)
  80. z[i][j]=' ';
  81. if(i<53) //右移长度控制
  82. q-=2;
  83. if(i>53&&i<60) //回长度控制
  84. q++;
  85. }
  86. for(i=61;i<101;i++) //直行
  87. {
  88. for(j=0;j<8;j++)
  89. z[i][j]=' ';
  90. for(j=8;j<16;j++)
  91. z[i][j]='O';
  92. for(j=16;j<53;j++)
  93. z[i][j]=' ';
  94. }
  95. for(i=101;i<124;i++) //拐弯+回;
  96. {
  97. for(j=0;j<q;j++)
  98. z[i][j]=' ';
  99. for(j=q;j<q+8;j++)
  100. z[i][j]='O';
  101. for(j=q+8;j<60;j++)
  102. z[i][j]=' ';
  103. if(i<114) //右移长度控制
  104. q+=2;
  105. if(i>114&&i<121) //回长度控制
  106. q--;
  107. }
  108. for(i=124;i<140;i++)
  109. {
  110. for(j=0;j<28;j++)
  111. z[i][j]=' ';
  112. for(j=28;j<=35;j++)
  113. z[i][j]='O';
  114. for(j=36;j<100;j++)
  115. z[i][j]=' ';
  116. }
  117. for(i=54;i<=57;i++)
  118. z[i][30]=z[i][31]=z[i][32]='*';
  119. for(i=116;i<=119;i++)
  120. z[i][14]=z[i][15]=z[i][16]='*';
  121. for(i=0;i<40;i++) //直行
  122. {
  123. for(j=0;j<22;j++)
  124. s[i][j]=' ';
  125. for(j=22;j<29;j++)
  126. s[i][j]='O';
  127. for(j=29;j<53;j++)
  128. s[i][j]=' ';
  129. }
  130. for(i=40;i<68;i++) //拐弯+回;
  131. {
  132. for(j=0;j<xxl;j++)
  133. s[i][j]=' ';
  134. for(j=xxl;j<xxl+8;j++)
  135. s[i][j]='O';
  136. for(j=xxl+8;j<53;j++)
  137. s[i][j]=' ';
  138. if(i<53) //右移长度控制
  139. xxl++;
  140. if(i>53&&i<60) //回长度控制
  141. xxl--;
  142. }
  143. int k,c=28,begin=28,end=39;
  144. q=39;
  145. char x[104][40];
  146. for(i=0;i<=10;i++)
  147. {
  148. for(j=0;j<q;j++)
  149. x[i][j]=' ';
  150. for(j=q;j<=39;j++)
  151. x[i][j]='O';
  152. if(q>27)
  153. q--;
  154. }
  155. for(i=90;i<=101;i++)
  156. {
  157. for(j=0;j<=c;j++)
  158. x[i][j]=' ';
  159. for(j=c+1;j<=39;j++)
  160. x[i][j]='O';
  161. if(c<39)
  162. c++;
  163. }
  164. for (i=11;i<=50;i++)
  165. {
  166. for (j=0;j<begin;j++)
  167. x[i][j]=' ';
  168. for (j=begin;j<=end;j++)
  169. x[i][j]='O';
  170. for (j=end+1;j<=39;j++)
  171. x[i][j]=' ';
  172. if(begin>0)
  173. begin--;
  174. if(end>0)
  175. end--;
  176. }
  177. end++;
  178. for (i=51;i<=89;i++)
  179. {
  180. for (j=0;j<begin;j++)
  181. x[i][j]=' ';
  182. for (j=begin;j<=end;j++)
  183. x[i][j]='O';
  184. for (j=end+1;j<=39;j++)
  185. x[i][j]=' ';
  186. if(end>=11)
  187. begin++;
  188. if(end<39)
  189. end++;
  190. }
  191. //扭动组赋值
  192. char kd[100][40];
  193. for(i=0;i<100;i++)
  194. {
  195. for(j=0;j<38;j++)
  196. kd[i][j]=' ';
  197. kd[i][39]='O';
  198. }
  199. int p=1,g=1,xs=3;
  200. char wy[200][120];
  201. for(i=0;i<200;i++)
  202. for(j=0;j<120;j++)
  203. wy[i][j]=' ';
  204. for(i=0;i<40;i++)
  205. {
  206. for(j=0;j<8;j++)
  207. wy[i][j]=' ';
  208. for(j=8;j<16;j++)
  209. wy[i][j]='O';
  210. for(j=16;j<100;j++)
  211. wy[i][j]=' ';
  212. }
  213. /*直行赋值*/
  214. j=16;
  215. for(i=40;i<76;i++)
  216. {
  217. wy[i][j]='O';
  218. if((i-39)%4==0&&i>=43)
  219. g+=p;
  220. j+=g;
  221. if(i==55)
  222. p=-p;
  223. }
  224. j=15;
  225. p=1;
  226. g=1;
  227. for(i=42;i<78;i++)
  228. {
  229. wy[i][j]='O';
  230. if((i-41)%4==0&&i>=45)
  231. g+=p;
  232. j+=g;
  233. if(i==57)
  234. p=-p;
  235. }
  236. j=14;
  237. p=1;
  238. g=1;
  239. for(i=44;i<80;i++)
  240. {
  241. wy[i][j]='O';
  242. if((i-43)%4==0&&i>=47)
  243. g+=p;
  244. j+=g;
  245. if(i==59)
  246. p=-p;
  247. }
  248. j=13;
  249. p=1;
  250. g=1;
  251. for(i=46;i<82;i++)
  252. {
  253. wy[i][j]='O';
  254. if((i-45)%4==0&&i>=49)
  255. g+=p;
  256. j+=g;
  257. if(i==61)
  258. p=-p;
  259. }
  260. j=12;
  261. p=1;
  262. g=1;
  263. for(i=48;i<84;i++)
  264. {
  265. wy[i][j]='O';
  266. if((i-47)%4==0&&i>=51)
  267. g+=p;
  268. j+=g;
  269. if(i==63)
  270. p=-p;
  271. }
  272. // 第5组;
  273. j=11;
  274. p=1;
  275. g=1;
  276. for(i=50;i<86;i++)
  277. {
  278. wy[i][j]='O';
  279. if((i-49)%4==0&&i>=53)
  280. g+=p;
  281. j+=g;
  282. if(i==65)
  283. p=-p;
  284. }
  285. j=10;
  286. p=1;
  287. g=1;
  288. for(i=52;i<88;i++)
  289. {
  290. wy[i][j]='O';
  291. if((i-51)%4==0&&i>=55)
  292. g+=p;
  293. j+=g;
  294. if(i==67)
  295. p=-p;
  296. }
  297. j=9;
  298. p=1;
  299. g=1;
  300. for(i=54;i<90;i++)
  301. {
  302. wy[i][j]='O';
  303. if((i-53)%4==0&&i>=57)
  304. g+=p;
  305. j+=g;
  306. if(i==69)
  307. p=-p;
  308. }
  309. p=54;
  310. for(j=8;j<16;j++)
  311. {
  312. for(i=40;i<p;i++)
  313. wy[i][j]='O';
  314. p-=2;
  315. }
  316. //补充 O
  317. p=75;
  318. for(j=116;j>=110;j--)
  319. {
  320. for(i=89;i>p;i--)
  321. wy[i][j]='O';
  322. p+=2;
  323. }
  324. for(i=90;i<130;i++)
  325. {
  326. for(j=109;j<117;j++)
  327. wy[i][j]='O';
  328. }
  329. j=108;
  330. p=-1;
  331. g=-1;
  332. for(i=130;i<166;i++)
  333. {
  334. wy[i][j]='O';
  335. if((i-129)%4==0&&i>=133)
  336. g+=p;
  337. j+=g;
  338. if(i==145)
  339. p=-p;
  340. }
  341. j=109;
  342. p=-1;
  343. g=-1;
  344. for(i=132;i<168;i++)
  345. {
  346. wy[i][j]='O';
  347. if((i-131)%4==0&&i>=135)
  348. g+=p;
  349. j+=g;
  350. if(i==147)
  351. p=-p;
  352. }
  353. j=110;
  354. p=-1;
  355. g=-1;
  356. for(i=134;i<170;i++)
  357. {
  358. wy[i][j]='O';
  359. if((i-133)%4==0&&i>=137)
  360. g+=p;
  361. j+=g;
  362. if(i==149)
  363. p=-p;
  364. }
  365. j=111;
  366. p=-1;
  367. g=-1;
  368. for(i=136;i<172;i++)
  369. {
  370. wy[i][j]='O';
  371. if((i-135)%4==0&&i>=139)
  372. g+=p;
  373. j+=g;
  374. if(i==151)
  375. p=-p;
  376. }
  377. j=112;
  378. p=-1;
  379. g=-1;
  380. for(i=138;i<174;i++)
  381. {
  382. wy[i][j]='O';
  383. if((i-137)%4==0&&i>=141)
  384. g+=p;
  385. j+=g;
  386. if(i==153)
  387. p=-p;
  388. }
  389. j=113;
  390. p=-1;
  391. g=-1;
  392. for(i=140;i<176;i++)
  393. {
  394. wy[i][j]='O';
  395. if((i-139)%4==0&&i>=143)
  396. g+=p;
  397. j+=g;
  398. if(i==155)
  399. p=-p;
  400. }
  401. j=114;
  402. p=-1;
  403. g=-1;
  404. for(i=142;i<178;i++)
  405. {
  406. wy[i][j]='O';
  407. if((i-141)%4==0&&i>=145)
  408. g+=p;
  409. j+=g;
  410. if(i==157)
  411. p=-p;
  412. }
  413. j=115;
  414. p=-1;
  415. g=-1;
  416. for(i=144;i<180;i++)
  417. {
  418. wy[i][j]='O';
  419. if((i-143)%4==0&&i>=147)
  420. g+=p;
  421. j+=g;
  422. if(i==159)
  423. p=-p;
  424. }
  425. p=165;
  426. for(j=8;j<16;j++)
  427. {
  428. for(i=179;i>p;i--)
  429. wy[i][j]='O';
  430. p+=2;
  431. }
  432. p=144;
  433. for(j=116;j>=110;j--)
  434. {
  435. for(i=130;i<p;i++)
  436. wy[i][j]='O';
  437. p-=2;
  438. }
  439. for(i=180;i<200;i++)
  440. {
  441. for(j=0;j<8;j++)
  442. wy[i][j]=' ';
  443. for(j=8;j<16;j++)
  444. wy[i][j]='O';
  445. for(j=16;j<100;j++)
  446. wy[i][j]=' ';
  447. }
  448. //菱形部分
  449. char a[50][54];
  450. k=15;
  451. begin=24;
  452. end=27;
  453. for(i=0;i<=49;i++)
  454. for(j=24;j<=27;j++)
  455. a[i][j]='O';
  456. for(i=0;i<=24;i++)
  457. {
  458. for(j=0;j<begin;j++)
  459. a[i][j]=' ';
  460. for(j=begin;j<24;j++)
  461. a[i][j]='i';
  462. for(j=28;j<=end;j++)
  463. a[i][j]='i';
  464. for(j=end+1;j<=51;j++)
  465. a[i][j]=' ';
  466. begin-=1;end+=1;
  467. }
  468. begin+=1;end-=1;
  469. for(i=25;i<=49;i++)
  470. {
  471. for(j=0;j<begin;j++)
  472. a[i][j]=' ';
  473. for(j=begin;j<24;j++)
  474. a[i][j]='i';
  475. for(j=28;j<=end;j++)
  476. a[i][j]='i';
  477. for(j=end+1;j<=51;j++)
  478. a[i][j]=' ';
  479. begin+=1;end-=1;
  480. }
  481. system("color f3");
  482. for(i=0;i<100;i++)
  483. {
  484. for(j=0;j<40;j++)
  485. printf("%c",kd[i][j]);
  486. printf("\n\n");
  487. Sleep(2);
  488. }
  489. int yans=2;
  490. system("color f3");
  491. while(yans--)
  492. {
  493. for(i=0;i<=100;i++)
  494. {
  495. for (j=0;j<=39;j++)
  496. printf("%c",x[i][j]);
  497. if(i<=100)
  498. printf("\n\n");
  499. Sleep(1);
  500. }
  501. }
  502. k=3;
  503. while (k--)
  504. {
  505. for(i=0;i<=49;i++)
  506. {
  507. for(j=0;j<24;j++)
  508. {
  509. color(3);
  510. printf("%c",a[i][j]);
  511. }
  512. for(j=24;j<=27;j++)
  513. {
  514. color(7);
  515. printf("%c",a[i][j]);
  516. }
  517. for(j=28;j<=51;j++)
  518. {
  519. color(3);
  520. printf("%c",a[i][j]);
  521. }
  522. printf("\n\n");
  523. Sleep(1);
  524. }
  525. }
  526. color(7);
  527. for(i=47;i<=50;i++)
  528. s[i][8]=s[i][9]=s[i][10]='*';
  529. for(i=0;i<47;i++)
  530. {
  531. for(j=0;j<53;j++)
  532. printf("%c",s[i][j]);
  533. printf("\n\n");
  534. Sleep(1);
  535. }
  536. for(i=47;i<=50;i++)
  537. {
  538. for(j=0;j<=10;j++)
  539. {
  540. color(4);
  541. printf("%c",s[i][j]);
  542. }
  543. for(j=11;j<53;j++)
  544. {
  545. color(7);
  546. printf("%c",s[i][j]);
  547. }
  548. printf("\n\n");
  549. }
  550. for(i=51;i<68;i++)
  551. {
  552. for(j=0;j<53;j++)
  553. printf("%c",s[i][j]);
  554. printf("\n\n");
  555. Sleep(1);
  556. }
  557. while(cc--)
  558. {
  559. for(i=0;i<54;i++)
  560. {
  561. for(j=0;j<53;j++)
  562. printf("%c",z[i][j]);
  563. printf("\n\n");
  564. Sleep(1);
  565. }
  566. for(i=54;i<=57;i++)
  567. {
  568. for(j=0;j<=29;j++)
  569. {
  570. color(7);
  571. printf("%c",z[i][j]);
  572. }
  573. for(j=30;j<33;j++)
  574. {
  575. color(4);
  576. printf("%c",z[i][j]);
  577. }
  578. printf("\n\n");
  579. Sleep(1);
  580. }
  581. color(7);
  582. for(i=58;i<116;i++)
  583. {
  584. for(j=0;j<53;j++)
  585. printf("%c",z[i][j]);
  586. printf("\n\n");
  587. Sleep(1);
  588. }
  589. for(i=116;i<=119;i++)
  590. {
  591. for(j=0;j<=16;j++)
  592. {
  593. color(4);
  594. printf("%c",z[i][j]);
  595. }
  596. for(j=17;j<53;j++)
  597. {
  598. color(7);
  599. printf("%c",z[i][j]);
  600. }
  601. printf("\n\n");
  602. Sleep(1);
  603. }
  604. for(i=120;i<140;i++)
  605. {
  606. for(j=0;j<53;j++)
  607. printf("%c",z[i][j]);
  608. printf("\n\n");
  609. Sleep(1);
  610. }
  611. }
  612. while(xxx--)
  613. {
  614. for(i=0;i<48;i++)
  615. {
  616. for(j=0;j<100;j++)
  617. printf("%c",zx[i][j]);
  618. printf("\n\n");
  619. Sleep(1);
  620. }
  621. for(i=48;i<52;i++)
  622. {
  623. for(j=0;j<31;j++)
  624. printf("%c",zx[i][j]);
  625. color(4);
  626. for(j=31;j<=35;j++)
  627. printf("%c",zx[i][j]);
  628. color(7);
  629. for(j=36;j<100;j++)
  630. printf("%c",zx[i][j]);
  631. printf("\n\n");
  632. Sleep(1);
  633. }
  634. for(i=52;i<129;i++)
  635. {
  636. for(j=0;j<100;j++)
  637. printf("%c",zx[i][j]);
  638. printf("\n\n");
  639. Sleep(1);
  640. }
  641. for(i=129;i<134;i++)
  642. {
  643. color(4);
  644. for(j=0;j<=17;j++)
  645. printf("%c",zx[i][j]);
  646. color(7);
  647. for(j=18;j<46;j++)
  648. printf("%c",zx[i][j]);
  649. color(4);
  650. for(j=46;j<100;j++)
  651. printf("%c",zx[i][j]);
  652. printf("\n\n");
  653. Sleep(1);
  654. }
  655. color(7);
  656. for(i=134;i<148;i++)
  657. {
  658. for(j=0;j<100;j++)
  659. printf("%c",zx[i][j]);
  660. printf("\n\n");
  661. Sleep(1);
  662. }
  663. }
  664. for(i=0;i<54;i++)
  665. {
  666. for(j=0;j<53;j++)
  667. printf("%c",z[i][j]);
  668. printf("\n\n");
  669. Sleep(1);
  670. }
  671. for(i=54;i<=57;i++)
  672. {
  673. for(j=0;j<=29;j++)
  674. {
  675. color(7);
  676. printf("%c",z[i][j]);
  677. }
  678. for(j=30;j<33;j++)
  679. {
  680. color(4);
  681. printf("%c",z[i][j]);
  682. }
  683. printf("\n\n");
  684. Sleep(1);
  685. }
  686. color(7);
  687. for(i=58;i<102;i++)
  688. {
  689. for(j=0;j<53;j++)
  690. printf("%c",z[i][j]);
  691. printf("\n\n");
  692. Sleep(1);
  693. }
  694. while(xs--)
  695. {
  696. for(i=0;i<200;i++)
  697. {
  698. for(j=0;j<120;j++)
  699. {
  700. color(xs+2);
  701. printf("%c",wy[i][j]);
  702. }
  703. printf("\n\n");
  704. Sleep(2);
  705. }
  706. }
  707. }

 

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

闽ICP备14008679号