From d4c8072f204ff1927d9e8dbf16ed70b0c59cb1fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E9=87=91=E6=B3=BD?= <26507089190@qq.com> Date: Tue, 12 Sep 2023 20:54:18 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E8=8A=82=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=EF=BC=88=E5=AD=99=E9=87=91=E6=B3=BD=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- level1/p01_running_letter/main.c | 37 ++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/level1/p01_running_letter/main.c b/level1/p01_running_letter/main.c index f84d224..1be0349 100644 --- a/level1/p01_running_letter/main.c +++ b/level1/p01_running_letter/main.c @@ -1,6 +1,39 @@ -#include +#include +#include +void move_letter(char letter, float speed) { + int position = 0; + int direction = 1; // 1表示向右移动,-1表示向左移动 + + while (1) { + // 清空控制台输出 + printf("\033c"); + + // 输出字母前的空格 + for (int i = 0; i < position; ++i) { + printf(" "); + } + + // 输出字母 + printf("%c\n", letter); + + // 停顿一段时间 + usleep(speed * 1000000); + + // 根据方向和位置更新下一个位置 + position += direction; + + // 检查是否到达边界,如果是则改变方向 + if (position >= 79 - 1) { // 79是典型控制台窗口宽度,减去1是为了避免边界溢出 + direction = -1; + } else if (position <= 0) { + direction = 1; + } + } +} + +// 调用函数进行测试,传入要移动的字母和速度(单位为秒) int main() { - printf("hello world!\n"); + move_letter('A', 0.1); return 0; } \ No newline at end of file From a33c46a6b9524029245dc0f25e6a52bde39fcef6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E9=87=91=E6=B3=BD?= <26507089190@qq.com> Date: Tue, 12 Sep 2023 22:04:24 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E8=8A=82=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=EF=BC=88=E5=AD=99=E9=87=91=E6=B3=BD=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- level1/p01_running_letter/{main.c => 1-p01.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename level1/p01_running_letter/{main.c => 1-p01.c} (100%) diff --git a/level1/p01_running_letter/main.c b/level1/p01_running_letter/1-p01.c similarity index 100% rename from level1/p01_running_letter/main.c rename to level1/p01_running_letter/1-p01.c