就是董晶老师贪吃蛇游戏程序的思考题
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <Windows.h>
#define HIGH 20 // 游戏画面尺寸
#define WIDTH 30
// 全部变量
int moveDirection; // 小蛇移动的方向,上、下、左、右分别用1、2、3、4表示
int food_x,food_y; // 食物的位置
int canvas[HIGH][WIDTH] = { 0 }; // 二位数组存储游戏画布中对应的元素
// 0为空格,-1为边框#, 1为蛇头@, 大于1的正数为蛇身*
void gotoxy(int x, int y) /* 将光标移动到(x,y)位置 */
{
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
COORD pos;
pos.X = x;
pos.Y = y;
SetConsoleCursorPosition(handle, pos);
}// 替代system("cls")清屏函数
/*
·移动小蛇
·第一步扫描数组canvas的所有元素,找到正数元素都加1
·找到最大元素(即蛇尾巴),把其变为0
·找到等于2的元素(即蛇头),根据输出的上下左右方向把对应的另一个像素值设为1(新蛇头)
*/
void moveSnakeByDirection()
{
int i, j;
for ( i = 1; i < HIGH - 1; i++ )
for ( j = 1; j < WIDTH - 1; j++ )
if ( canvas[i][j] > 0 )
canvas[i][j]++;
int oldTail_i, oldTail_j, oldHead_i, oldHead_j;
int max = 0;
for ( i = 1; i < HIGH - 1; i++ )
for ( j = 1; j < WIDTH - 1; j++ )
if ( canvas[i][j] > 0 )
{
if ( max < canvas[i][j] )
{
max =
这个要根据你的代码加入特效食物,吃了就可以有特效
食物增加两个属性加命或减速,游戏初始初始命1,速度10,吃到食物对属性命或速度进行调整,判断游戏结束的地方加上命的校验和调整。