贪吃蛇c语言编程
由于贪吃蛇是一种经典的游戏,并且非常适合用于学习编程,因此有许多人选择用C语言来编写贪吃蛇游戏。下面是一个简单的贪吃蛇游戏的C语言代码示例:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#define WIDTH 20
#define HEIGHT 20
int snake[100][2];
int direction;
int length;
int food[2];
void init_game() {
int i;
length = 3;
direction = 3;
snake[0][0] = WIDTH / 2;
snake[0][1] = HEIGHT / 2;
snake[1][0] = snake[0][0] - 1;
snake[1][1] = snake[0][1];
snake[2][0] = snake[0][0] - 2;
snake[2][1] = snake[0][1];
srand(time(NULL));
food[0] = rand() % WIDTH;
food[1] = rand() % HEIGHT;
}
void print_board() {
int i, j, k;
system("cls");
for (i = 0; i < HEIGHT; i++) {
for (j = 0; j < WIDTH; j++) {
if (i == 0 || i == HEIGHT - 1 || j == 0 || j == WIDTH - 1) {
printf("#");
} else if (i == food[1] && j == food[0]) {
printf("F");
} else {
for (k = 0; k < length; k++) {
if (snake[k][0] == j && snake[k][1] == i) {
printf("O");
break;
}
}
if (k == length) {
printf(" ");
}
}
}
printf("\n");
}
}
void move_snake() {
int i;
for (i = length - 1; i > 0; i--) {
snake[i][0] = snake[i - 1][0];
snake[i][1] = snake[i - 1][1];
}
switch (direction) {
case 0:
snake[0][1]--;
break;
case 1:
snake[0][0]++;
break;
case 2:
snake[0][1]++;
break;
case 3:
snake[0][0]--;
break;
}
}
int check_collision() {
int i;
if (snake[0][0] == 0 || snake[0][0] == WIDTH - 1 || snake[0][1] == 0 || snake[0][1] == HEIGHT - 1) {
return 1;
}
for (i = 1; i < length; i++) {
if (snake[0][0] == snake[i][0] && snake[0][1] == snake[i][1]) {
return 1;
}
}
if (snake[0][0] == food[0] && snake[0][1] == food[1]) {
length++;
food[0] = rand() % WIDTH;
food[1] = rand() % HEIGHT;
}
return 0;
}
int main() {
init_game();
while (1) {
print_board();
if (kbhit()) {
switch (getch()) {
case 'w':
if (direction != 2) {
direction = 0;
}
break;
case 'd':
if (direction != 3) {
direction = 1;
}
break;
case 's':
if (direction != 0) {
direction = 2;
}
break;
case 'a':
if (direction != 1) {
direction = 3;
}
break;
}
}
move_snake();
if (check_collision()) {
printf("Game Over!\n");
break;
}
Sleep(100);
}
return 0;
}
该代码使用了Windows系统的特定函数,因此只能在Windows平台上运行。您可以根据需要进行修改以适应其他操作系统。
该程序使用了一个二维数组来存储蛇的位置和长度,并使用一个整数变量来存储蛇的方向。它还使用了一个二维数组来存储食物的位置。游戏的逻辑由三个函数实现:init_game()初始化游戏,print_board()打印游戏画面以及move_snake()移动蛇。游戏循环,直到蛇撞到边界或自己时结束。
该程序使用了一些基本的C语言语法,例如数组、条件语句、循环语句和函数等。学习者可以根据需要进行修改和扩展,以改进游戏的功能和表现。
原文地址: https://www.cveoy.top/t/topic/bVp5 著作权归作者所有。请勿转载和采集!