From 4aac83a1bb5ef9ca64a289eaad8429b65ca2dadf Mon Sep 17 00:00:00 2001 From: james <1943357252@qq.com> Date: Sun, 4 Aug 2024 18:49:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=B4=E5=B0=BE=E6=98=BE=E7=A4=BA=E6=B6=88?= =?UTF-8?q?=E5=A4=B1=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dayandnight/mysnake.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/dayandnight/mysnake.c b/dayandnight/mysnake.c index fb19e35..c04b5fa 100644 --- a/dayandnight/mysnake.c +++ b/dayandnight/mysnake.c @@ -44,20 +44,23 @@ void snake_entry(void *parameter) int new_direction = 0; while (1) { - new_direction = rand() % 3; now_direction = (now_direction+3+new_direction)%4;//防止反向,走回头路 - snake_address(snake_list[snake_head][0], snake_list[snake_head][1], SNAKE_SIZE, BLACK); - snake_address(snake_list[snake_tail][0], snake_list[snake_tail][1], SNAKE_SIZE, WHITE); + former_head = snake_head; snake_head = (snake_head + 1) % (SNAKE_MAX); - snake_tail = (snake_tail + 1) % (SNAKE_MAX); + snake_list[snake_head][0] = (snake_list[former_head][0] + snake_direction[now_direction][0]+SNAKE_MAX) % (SNAKE_MAX); snake_list[snake_head][1] = (snake_list[former_head][1] + snake_direction[now_direction][1]+SNAKE_MAX) % (SNAKE_MAX); + sprintf(tmp,"(%d,%d)", snake_list[snake_head][0], snake_list[snake_head][1]); - rt_kprintf("head:%d,%d\n", snake_list[snake_head][0], snake_list[snake_head][1]); + rt_kprintf("head:%d,%d\n", snake_list[snake_head][0], snake_list[snake_head][1]); lcd_show_string(20, 20, 16,snake_dirshow[now_direction]); lcd_show_string(20+16*4, 20, 16,tmp); rt_thread_mdelay(1000); + + snake_address(snake_list[snake_head][0], snake_list[snake_head][1], SNAKE_SIZE, BLACK); + snake_address(snake_list[snake_tail][0], snake_list[snake_tail][1], SNAKE_SIZE, WHITE); + snake_tail = (snake_tail + 1) % (SNAKE_MAX); } }