- 论坛徽章:
- 0
|
昨天yangxi推荐unbunt下的一个ascii动画, 有兴趣的可以apt-get install sl看下效果。
今天中午利用休息的时间写了类似的程序, 绝对比那个震撼, 有兴趣的朋友可以拿gcc编译下看看效果。
全屏观看效果更好~
BTW: 程序员们赶快行动起来吧, Program Just For Fun!
- /*
- * Program Just For Fun
- *
- * by wzt [url]http://hi.baidu.com/wzt85[/url]
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define LENTH 7
- #define WIDTH 155
- #define SLEEP_TIME 30000
- #define ENTER_NUM 20
- char fun_ascii[LENTH][WIDTH] = {
- " | ",
- " _\\--__|_ ",
- " II=======OOOOO[/ *02 ___| ",
- " ____\\______|/-----.",
- " /____________________|",
- " \\@@@@@@@@@@@@@@@@@@@/ ",
- " ~~~~~~~~~~~~~~~~~~~ "
- };
- int g_shoot_pos;
- int g_shoot_pos_static;
- void display_ascii(void);
- void print_enter(void);
- void move_ascii(void)
- {
- int i, j;
- for (i = 0; i < LENTH; i++) {
- for (j = 0; j < WIDTH; j++) {
- if (fun_ascii[i][j] != ' ') {
- fun_ascii[i][j - 1] = fun_ascii[i][j];
- fun_ascii[i][j] = ' ';
- }
- }
- }
- }
- void shoot_init(void)
- {
- int i, j;
- for (j = 0; j < WIDTH; j++) {
- if (fun_ascii[2][j] != ' ')
- break;
- }
- --j;
- g_shoot_pos_static = g_shoot_pos = j;
- }
- void shoot_begin(void)
- {
- fun_ascii[2][g_shoot_pos] = 'O';
- system("clear");
- print_enter();
- display_ascii();
- fun_ascii[2][g_shoot_pos] = ' ';
- }
- void shoot_ascii(void)
- {
- int i;
- i = WIDTH / 2 - 1;
- while (i > 0 && g_shoot_pos > 0) {
- shoot_begin();
- g_shoot_pos--;
- usleep(SLEEP_TIME);
- i--;
- }
- }
- void do_shoot_ascii(void)
- {
- int i = 3;
- shoot_init();
- while (i > 0) {
- shoot_ascii();
- g_shoot_pos = g_shoot_pos_static;
- i--;
- }
- }
- void display_ascii(void)
- {
- int i, j;
- for (i = 0; i < LENTH; i++) {
- for (j = 0; j < WIDTH; j++)
- printf("%c", fun_ascii[i][j]);
- printf("\n");
- }
- }
- void print_enter(void)
- {
- int i;
- for (i = 0; i < ENTER_NUM; i++)
- printf("\n");
- }
- int main(void)
- {
- int i = WIDTH;
- while (i > 0) {
- if (i == (WIDTH / 2)) {
- do_shoot_ascii();
- i--;
- continue;
- }
- system("clear");
- print_enter();
- move_ascii();
- display_ascii();
- i--;
- usleep(SLEEP_TIME);
- }
- return 0;
- }
复制代码 |
评分
-
查看全部评分
|