我想给出输出,例如字母“ O”正像球行进一样从音高的另一端移向中间的树桩。但我无法获得该输出。所以我该如何更正以获得我的输出
Sale
答案 0 :(得分:0)
以下是通过完全重绘来实现动画的示例:
#include<stdio.h>
#include<unistd.h>
#define HEIGHT 22
#define WIDTH 17
void ball();
char ground[HEIGHT][WIDTH]=
{
" _ _ ",
" | | | ",
" | | | ",
" _____|_|_|____",
"| |",
"| |",
"| |",
"| |",
"| |",
"| |",
"| |",
"| |",
"| |",
"| |",
"| |",
"| |",
"| |",
"| |",
"| |",
"| |",
"| |",
" _______________"};
int main() {
for (int time = 0, x= 3, y = 5; time < 7; ++time, ++x, ++y) {
printf("\e[1;1H\e[2J");
char prev = ground[x][y];
ground[x][y] = 'O';
ball();
ground[x][y] = prev;
sleep(1);
}
return 0;
}
void ball() {
for(int i=0; i<HEIGHT; i++) {
printf("\n");
for(int j=0; j<WIDTH; j++)
printf("%c",ground[i][j]);
}
printf("\n");
}
每个迭代清除屏幕(奇怪的printf
),将球保存在上面,打印整个电路板,为下一次迭代做准备,最后睡一秒钟以确保动画不打得太快了。
玩x
和y
的逻辑来获得想要的动作。