// 贪吃蛇.cpp : 定义控制台应用程序的入口点。

#include "stdafx.h"

#include

#include

#include "iostream"

#pragma comment(lib,"winmm.lib")

typedef struct COORDS {

int xx;

int yy;

} COORDS, *PCOORDS;

#define 上 1

#define 下 2

#define 左 3

#define 右 4

#define 保存 5

#define 退出 6

#define 草丛 -2

#define UP 10

#define DOWN 11

#define LEFT 12

#define RIGHT 13

#define MAP_X 30

#define MAP_Y 30

#define 空地 0

#define 食物 1

#define 障碍物 2

#define P1 3

#define P2 4

#define 奖品 5 // 特殊食物

COORD g_Snake[100]; //第一条蛇的长度数组

COORDS g2_Snake[100]; //第二条蛇的长度数组

int g_nlenth = 4; //第一条蛇的长度

int g2_nlenth = 4; //第二条蛇的长度

int g_Dir = 右; //第一条蛇初始方向 右

int g2_Dir ; //第二条蛇的初始方向 左

int g_Map[MAP_X][MAP_Y] = {};

int g_FoodExist = 0; //基本食物

int g_Food = -1; // 加分不加身子

int g_SFood = -2; //对方加长度

int len = 0;

int len2 = 0;

int a = 200;// 初始速度

int n = 1; // 为下面做暂停定义的

int mem = 1;

#define KEY_DOWN(key) GetAsyncKeyState(key)==(SHORT)0x8001?1:0

#define MP mer.dwMousePosition

char ch;

int hp = 10; //第一个蛇的生命

int hp2 = 10; //第二个蛇的生命

using namespace std;

int waitKey(){

if (_kbhit()) //判断此用户是否按键,

return _getch(); //接受用户按键,并将按键返回

return 0; //没有按键,返回0

}

int waitKey2(){

if (_kbhit()) //判断此用户是否按键,

return _getch(); //接受用户按键,并将按键返回

return 0; //没有按键,返回0

}

/**********蛇的初始位置**************/

void InitGame()

{

g_Snake[0].X = 10;

g_Snake[0].Y = 3;

g_Snake[1].X = 10;

g_Snake[1].Y = 4;

g_Snake[2].X = 10;

g_Snake[2].Y = 5;

g_Snake[3].X = 10;

g_Snake[3].Y = 6;

for (int i = 0; i < MAP_X; i++)

{

for (int j = 0; j < MAP_Y; j++)

{

if (i == 0 || j == 0 || i == MAP_X - 1 || j == MAP_Y - 1) //定义的障碍物

{

g_Map[i][j] = 障碍物;

}

else

{

g_Map[i][j] = 空地;

}

}

}

}

void InitGame2()

{

g2_Snake[0].xx = 24;

g2_Snake[0].yy = 23;

g2_Snake[1].xx = 24;

g2_Snake[1].yy = 24;

g2_Snake[2].xx = 24;

g2_Snake[2].yy = 25;

g2_Snake[3].xx = 24;

g2_Snake[3].yy = 26;

for (int i = 0; i < MAP_X; i++)

{

for (int j = 0; j < MAP_Y; j++)

{

if (i == 0 || j == 0 || i == MAP_X - 1 || j == MAP_Y - 1) //定义的障碍物

{

g_Map[i][j] = 障碍物;

}

else

{

g_Map[i][j] = 空地;

}

}

}

}

/************************************************************************/

void WriteChar(int x, int y, const char* szStr, int color = 10 | 8)

{

// 1句柄代表的就是某一个实体

// 输出句柄代表的就是控制台输出相关的东西

// 使用控制台函数,需要先获得句柄

HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);

COORD pos = { x * 2, y };

SetConsoleTextAttribute(hOut, color);

SetConsoleCursorPosition(hOut, pos);

printf(szStr);

}

#define KEY_DOWN(key) GetAsyncKeyState(key)==(SHORT)0x8001?1:0

#define MP mer.dwMousePosition

void KeyEventProc(KEY_EVENT_RECORD ker)

{

COORD m = { 0, 0 };

if (ker.bKeyDown)

{

ch = ker.uChar.AsciiChar;

}

/*else

Draw_postion(m, "键盘弹起", 0x50);*/

}

void MouseEventProc(MOUSE_EVENT_RECORD mer, int c)

{

if (mer.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED)

{

if (MP.X > 1 && MP.X < 60 && MP.Y>0 && MP.Y < 30)

{

switch (c)

{

case 1:WriteChar(mer.dwMousePosition.X / 2, mer.dwMousePosition.Y, "□", 15);

g_Map[mer.dwMousePosition.X / 2][mer.dwMousePosition.Y] = 2; break;

case 2:WriteChar(mer.dwMousePosition.X / 2, mer.dwMousePosition.Y, "※", 10);

g_Map[mer.dwMousePosition.X / 2][mer.dwMousePosition.Y] = -2; break;

case 3:WriteChar(mer.dwMousePosition.X / 2, mer.dwMousePosition.Y, "■", 15);

g_Map[mer.dwMousePosition.X / 2][mer.dwMousePosition.Y] = 0; break;

}

}

}

}

int flag = 1;

int MessageLoop()

{

HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);

INPUT_RECORD stcRecord = { 0 };

DWORD dwRead;

SetConsoleMode(hStdin, ENABLE_WINDOW_INPUT | ENABLE_MOUSE_INPUT);

while (flag)

{

//等待事件

ReadConsoleInput(hStdin, &stcRecord, 1, &dwRead);

/*char flag = waitkey();*/

int c = 1;

switch (ch)

{

case '1':

c = 1; break;

case '2':

c = 2; break;

case '3':

c = 3; break;

case '4':

flag = 0; break;

default:

break;

}

/*MouseEventProc(stcRecord.Event.MouseEvent, c);*/

处理事件

if (stcRecord.EventType == KEY_EVENT)

{

KeyEventProc(stcRecord.Event.KeyEvent);

}

else

{

MouseEventProc(stcRecord.Event.MouseEvent, c);

}

if (flag == 0)

{

//system("cls");

cout << "保存成功" << endl;

}

}

return 0;

}

/************************欢迎结束界面***********/

void welcome()

{

PlaySoundA("lalala.wav", NULL, SND_ASYNC | SND_NODEFAULT);

WriteChar(15, 10, "", 3 | 10);

printf("/**********************************************/");

WriteChar(15, 20, "", 3 | 10);

printf("/**********************************************/");

WriteChar(17, 13, "", 3 | 10);

printf("WELCOME TO THE GAME OF RETRO SNAKE");

WriteChar(17, 16, "", 3 | 10);

printf("*请在英文输入法中操作*,wasd控制p暂停\n");

WriteChar(20, 19, "", 3 | 10);

system("pause");

system("cls");

}

void Finish()

{

system("cls");

WriteChar(15, 10, "", 3 | 10);

printf("/**********************************************/");

WriteChar(15, 20, "", 3 | 10);

printf("/**********************************************/");

WriteChar(18, 14, "", 3 | 10);

printf("GAME OVER o(* ̄▽ ̄*)o");

WriteChar(20, 16, " ", 3 | 10);

WriteChar(18, 18, " ", 3 | 10);

printf("游戏结束,下次努力");

WriteChar(0, 27, "", 3 | 10);

system("pause");

}

void Finish2()

{

system("cls");

WriteChar(15, 10, "", 3 | 10);

printf("/**********************************************/");

WriteChar(15, 20, "", 3 | 10);

printf("/**********************************************/");

WriteChar(18, 14, "", 3 | 10);

printf("GAME OVER o(* ̄▽ ̄*)o");

WriteChar(20, 16, " ", 3 | 10);

WriteChar(18, 18, " ", 3 | 10);

printf("玩家1胜利!!!!");

WriteChar(0, 27, "", 3 | 10);

system("pause");

}

/************地图的绘制*********/

void DrwsMap()

{

int XX = rand() % 28 + 1;

int YY = rand() % 28 + 1;

for (int i = 0; i < MAP_X; i++)

{

for (int j = 0; j < MAP_Y; j++)

{

if (g_Map[i][j] == 障碍物)

{

WriteChar(i, j, "□", 15);

}

else

{

WriteChar(i, j, "■", 14);

}

}

}

for (int i = 0; i < 20; i++)

{

XX = rand() % 28 + 1;

YY = rand() % 28 + 1;

if (g_Map[XX][YY] == 空地) //地图上的这一点是不是空地,如果是空地就附为障碍物,画出来

{

g_Map[XX][YY] = 障碍物;

WriteChar(XX, YY, "□", 15);

}

}

}

/*****************草丛********************/

void Thick()//草丛

{

WriteChar(25, 26, "※", 10);

g_Map[12][14] = 草丛;

WriteChar(12, 14, "※", 10);

g_Map[12][15] = 草丛;

WriteChar(12, 15, "※", 10);

g_Map[12][16] = 草丛;

WriteChar(12, 16, "※", 10);

WriteChar(25, 26, "※", 10);

g_Map[12][17] = 草丛;

WriteChar(12, 17, "※", 10);

g_Map[12][18] = 草丛;

WriteChar(12, 18, "※", 10);

g_Map[12][19] = 草丛;

WriteChar(12, 19, "※", 10);

WriteChar(15, 26, "※", 10);

g_Map[26][14] = 草丛;

WriteChar(26, 14, "※", 10);

g_Map[26][15] = 草丛;

WriteChar(26, 15, "※", 10);

g_Map[26][16] = 草丛;

WriteChar(26, 16, "※", 10);

g_Map[26][17] = 草丛;

WriteChar(26, 17, "※", 10);

g_Map[26][18] = 草丛;

WriteChar(26, 18, "※", 10);

g_Map[26][19] = 草丛;

WriteChar(26, 19, "※", 10);

}

/****************手工绘制地图***********/

int DrewMap()

{

DrwsMap();

Thick();

WriteChar(36, 17, "按1:绘制障碍物", 3 | 0);

WriteChar(36, 18, "按2:绘制草地", 9 | 0);

WriteChar(36, 19, "按3:清除", 4 | 2);

WriteChar(36, 20, "按4:保存", 4 | 2);

MessageLoop();

getchar();

return 0;

}

/***********信息显示***********/

void Tips()

{

WriteChar(MAP_X + 3, 1, "", 10);//显示信息

printf("hello Welcome To Play");

WriteChar(MAP_X + 3, 2, "", 10);

printf("按 W S A D 移动方向\n");

WriteChar(MAP_X + 3, 3, " ", 10);

printf("按P暂停\n");

}

void P1State()

{

WriteChar(MAP_X + 3, 4, " ", 10);

printf("得分:", &len);

WriteChar(MAP_X + 3, 5, " ", 10);

printf_s("我的生命:", &hp);

}

void P2State()

{

WriteChar(MAP_X + 3, 9, " ", 10);

printf("得分:", &len2);

WriteChar(MAP_X + 3, 10, " ", 10);

printf_s("我的生命:", &hp2);

}

/************游戏保和读取*************/

void Save()

{

FILE * PFile = NULL;

//打开存档文件

if (fopen_s(&PFile, "G:\\123.txt", "w+") != 0)

{

fprintf(stderr, "Can't open memory.txt!\n");

exit(1);

}

//保存地图

fwrite(g_Map, sizeof(g_Map), 1, PFile);

//保存蛇长度

fwrite(&g_nlenth, sizeof(int), 1, PFile);

//保存方向

fwrite(&g_Dir, sizeof(g_Dir), 1, PFile);

//保存食物坐标(结构体是值类型)

fwrite(&g_FoodExist, sizeof(g_FoodExist), 1, PFile);

//保存积分

fwrite(&len, sizeof(int), 1, PFile);

//保存生命

fwrite(&hp, sizeof(int), 1, PFile);

//保存蛇坐标

fwrite(g_Snake, sizeof(g_Snake), 1, PFile);

fclose(PFile);

WriteChar(MAP_X + 6, 15, " ", 11);

printf("保存成功");

fclose(PFile);

}

void Read()

{

FILE * PFile = NULL;

//打开存档文件

if (fopen_s(&PFile, "G:\\123.txt", "r+") != 0)

{

fprintf(stderr, "Can't open memory.txt!\n");

exit(1);

}

fread(g_Map, sizeof(g_Map), 1, PFile);

//保存蛇长度

fread(&g_nlenth, sizeof(int), 1, PFile);

//保存方向

fread(&g_Dir, sizeof(g_Dir), 1, PFile);

//保存食物坐标(结构体是值类型)

fread(&g_FoodExist, sizeof(g_FoodExist), 1, PFile);

//保存积分

fread(&len, sizeof(int), 1, PFile);

//保存生命

fread(&hp, sizeof(int), 1, PFile);

//保存蛇坐标

fread(g_Snake, sizeof(g_Snake), 1, PFile);

fclose(PFile);

}

/***********用户操作输入*****************/

void GetPlayerInput()

{

int Oper = 0;

//接收用户的输入,修改蛇的方向

Oper = waitKey();

//根据蛇的方向去移动蛇

switch (Oper)

{

case 'w':case'W':

if (g_Dir != 下)

{

g_Dir = 上;

}

break;

case 's':case 'S':

if (g_Dir != 上)

{

g_Dir = 下;

}

break;

case 'a':case 'A':

if (g_Dir != 右)

{

g_Dir = 左;

}

break;

case 'd':case'D':

if (g_Dir != 左)

{

g_Dir = 右;

}

break;

case 'p':case 'P':

n = -n;

break;

case 'b':case 'B':

Save();

break;

case 'e':case 'E':

g_Dir = 退出;

break;

}

}

void GetPlayerInput2() //P2控制

{

int Oper = 0;

//接收用户的输入,修改蛇的方向

Oper = waitKey2();

//根据蛇的方向去移动蛇

switch (Oper)

{

case 'i':case'I':

if (g_Dir != DOWN)

{

g_Dir = UP;

}

break;

case 'k':case 'K':

if (g_Dir != UP)

{

g_Dir = DOWN;

}

break;

case 'j':case 'J':

if (g_Dir != RIGHT)

{

g_Dir = LEFT;

}

break;

case 'l':case'L':

if (g_Dir != LEFT)

{

g_Dir = RIGHT;

}

break;

}

}

/***************双蛇的清理*************/

void ClearSnake()

{

//根据蛇现在的坐标,将其在屏幕上清除

for (int i = 0; i < g_nlenth; i++)

{

WriteChar(g_Snake[i].X, g_Snake[i].Y, "■", 14); //清除蛇尾巴的点

g_Map[g_Snake[i].X][g_Snake[i].Y] = 空地; //清除蛇尾巴的点,取消自己的点

}

}

void ClearSnake2()

{

//根据蛇现在的坐标,将其在屏幕上清除

for (int i = 0; i < g2_nlenth; i++)

{

WriteChar(g2_Snake[i].xx, g2_Snake[i].yy, "■", 14); //清除蛇尾巴的点

g_Map[g2_Snake[i].xx][g2_Snake[i].yy] = 空地; //清除蛇尾巴的点,取消自己的点

}

}

/***************画蛇*************/

void DrawSnake()

{

for (int i = 0; i < g_nlenth; i++)

{

WriteChar(g_Snake[i].X, g_Snake[i].Y, "", 15); //描绘蛇身

g_Map[g_Snake[i].X][g_Snake[i].Y] = P1; //将整个蛇身,定义给自己,确定位置

if (i == 0)

{

printf("○");

}

else if (i == g_nlenth - 1)

{

printf("¤");

}

else

{

printf("⊙");

}

}

}

void DrawSnake2()

{

for (int i = 0; i < g2_nlenth; i++)

{

WriteChar(g2_Snake[i].xx, g2_Snake[i].yy, "", 2); //描绘蛇身

g_Map[g2_Snake[i].xx][g2_Snake[i].yy] = P2; //将整个蛇身,定义给自己,确定位置

if (i == 0)

{

printf("○");

}

else if (i == g2_nlenth - 1)

{

printf("¤");

}

else

{

printf("⊙");

}

}

}

/*******双蛇的移和吃东西********************/

int MoveSnake()

{

int nTempX = g_Snake[0].X;

int nTempY = g_Snake[0].Y;

switch (g_Dir)

{

case 上:

nTempY--;

break;

case 下:

nTempY++;

break;

case 左:

nTempX--;

break;

case 右:

nTempX++;

break;

}

if (g_Map[nTempX][nTempY] == 空地)

{

}

else if (g_Map[nTempX][nTempY] == 食物)

{

g_nlenth++;

len++;

g_Map[nTempX][nTempY] = 空地;

g_FoodExist = 0;

WriteChar(MAP_X + 6, 4, "", 15);

printf("%d", len);

}

else if (g_Map[nTempX][nTempY] == 奖品)

{

g_nlenth;

len++;

if (g_nlenth <= 0)

{

return 0;

}

g_Map[nTempX][nTempY] = 空地;

g_Food = -1;

WriteChar(MAP_X + 6, 4, "", 15);

printf("%d", len);

}

else if (g_Map[nTempX][nTempY] == 障碍物)

{

//g_Map[nTempX][nTempY] = 障碍物;

--hp;

if (hp <= 0)

{

return 0;

}

WriteChar(MAP_X + 8, 5, "", 7);

printf("%d", hp);

return true;

}

else

{

if (g_Map[nTempX][nTempY] == P1)

{

return 0;

}

}

ClearSnake(); //根据蛇现在的坐标,将其在屏幕上清除掉

for (int i = g_nlenth - 1; i >= 0; i--)

{

g_Snake[i + 1].X = g_Snake[i].X;

g_Snake[i + 1].Y = g_Snake[i].Y;

}

g_Snake[0].X = nTempX;

g_Snake[0].Y = nTempY;

DrawSnake(); //根据新坐标将蛇绘制出来

Thick();

return 1;

}

int MoveSnake2() //2p移动

{

int nTempX = g2_Snake[0].xx;

int nTempY = g2_Snake[0].yy;

switch (g2_Dir)

{

case UP:

nTempY--;

break;

case DOWN:

nTempY++;

break;

case LEFT:

nTempX--;

break;

case RIGHT:

nTempX++;

break;

}

if (g_Map[nTempX][nTempY] == 空地)

{

}

else if (g_Map[nTempX][nTempY] == 食物)

{

g2_nlenth++;

len2++;

g_Map[nTempX][nTempY] = 空地;

g_FoodExist = 0;

WriteChar(MAP_X + 6, 4, "", 15);

printf("%d", len2);

}

else if (g_Map[nTempX][nTempY] == 奖品)

{

g2_nlenth--;

len2++;

if (g2_nlenth <= 0)

{

return 0;

}

g_Map[nTempX][nTempY] = 空地;

g_Food = -1;

WriteChar(MAP_X + 6, 4, "", 15);

printf("%d", len2);

}

else if (g_Map[nTempX][nTempY] == 障碍物)

{

--hp2;

if (hp2 <= 0)

{

return 0;

}

WriteChar(MAP_X + 8, 5, "", 7);

printf("%d", hp2);

return true;

}

else

{

if (g_Map[nTempX][nTempY] == P1)

{

return 0;

}

}

ClearSnake2(); //根据蛇现在的坐标,将其在屏幕上清除掉

for (int i = g2_nlenth - 1; i >= 0; i--)

{

g2_Snake[i + 1].xx = g2_Snake[i].xx;

g2_Snake[i + 1].yy = g2_Snake[i].yy;

}

g2_Snake[0].xx = nTempX;

g2_Snake[0].yy = nTempY;

DrawSnake2(); //根据新坐标将蛇绘制出来

return 1;

}

/*******两种食物******************/

void Food()

{

while (true)

{

int FoodX = rand() % 28 + 1;

int FoodY = rand() % 28 + 1;

if (g_Map[FoodX][FoodY] == 空地) //地图上的这一点是不是空地,如果是空地就附为食物,画出来

{

g_Map[FoodX][FoodY] = 食物;

WriteChar(FoodX, FoodY, "●", 12);

g_FoodExist = 1;

break;

}

}

}

void SuperFood()

{

while (true)

{

int FoodX = rand() % 28 + 1;

int FoodY = rand() % 28 + 1;

if (g_Map[FoodX][FoodY] == 空地) //地图上的这一点是不是空地,如果是空地就附为食物,画出来

{

g_Map[FoodX][FoodY] = 奖品;

WriteChar(FoodX, FoodY, "*", 12);

g_Food = 1;

break;

}

}

}

/**********简单模式*************/

void Easy()

{

if (flag)

{

InitGame();//根据蛇现在的坐标

}

DrwsMap(); //画地图

Tips();

P1State();

int nLive = 1;

while (nLive)

{

GetPlayerInput();//获取用户输入

if (n < 0)

{

continue;

}

nLive = MoveSnake(); //根据蛇的方向去移动蛇

if (g_FoodExist == 0)

{

Food();

}

else if (g_Food == -1)

{

SuperFood();

}

Sleep(abs(200 - 5 * len));

//Thick();

}

Save();

Finish();

}

/**********有难度的模式************/

void Difficult()

{

if (flag)

{

InitGame();//根据蛇现在的坐标

}

DrwsMap(); //画地图

Tips();

P1State();

int nLive = 1;

while (nLive)

{

GetPlayerInput();//获取用户输入

if (n < 0)

{

continue;

}

nLive = MoveSnake(); //根据蛇的方向去移动蛇

if (g_FoodExist == 0)

{

Food();

}

else if (g_Food == -1)

{

SuperFood();

}

Sleep(abs(100 - 5 * len));

//Thick();

}

Save();

Finish();

}

/**********双蛇大战****************/

void Double()

{

InitGame();

InitGame2();//根据蛇现在的坐标

DrwsMap(); //画地图

Tips();

P1State();

P2State();

int nLive = 1;

while (nLive)

{

Thick();

GetPlayerInput();

GetPlayerInput2();//获取用户输入

if (n < 0)

{

continue;

}

nLive = MoveSnake(); //根据蛇的方向去移动蛇

nLive = MoveSnake2();

if (g_FoodExist == 0)

{

Food();

}

else if (g_Food == -1)

{

SuperFood();

}

Sleep(abs(200 - 1 * len));

}

Finish2();

Save();

}

/**********游戏结束窗口******************/

void First()

{

int i = 0;

printf(" \n");

printf(" \n");

printf(" \n");

printf(" \n");

printf(" \n");

printf(" \n");

printf(" ■ ■ ■ ■\n");

printf(" ■ ■ ■■■ ■■■■ ■ ■ ■ ■■■■■ \n");

printf(" ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■\n");

printf(" ■ ■ ■ ■ ■ ■■■ ■ ■ ■ ■ ■\n");

printf(" ■■■■■ ■ ■ ■ ■ ■ ■ ■ ■\n");

printf(" ■ ■ ■ ■■■ ■ ■ ■ ■ ■ ■ \n");

printf(" ■ ■ ■ ■ ■ ■ ■ ■ ■ \n");

printf(" ■ ■ ■ ■ ■ ■ ■ ■\n");

printf(" ■ ■ ■ ■ ■ ■ ■ ■\n");

printf(" ■ ■ ■■■■ ■■■■■ ■■■■\n");

WriteChar(20, 20, "1 简单\n", 3 | 10);

WriteChar(20, 21, "2 困难\n", 3 | 10);

WriteChar(20, 22, "", 3 | 10);

printf("请输入你的选择:\n");

WriteChar(28, 22, "", 3 | 10);

scanf_s("%d", &i);

switch (i)

{

case 1:

system("cls");

Easy();

break;

case 2:

system("cls");

Difficult();

break;

}

}

/*********游戏退出*****************/

void QUIT()

{

mem = 0;

}

/********* 选择模式*****************/

void Choince()

{

while (mem)

{

system("cls");

int ch = 0;

WriteChar(15, 10, "*", 3 | 10);

printf("/**********************************************/");

WriteChar(15, 20, "*", 3 | 10);

printf("/**********************************************/");

WriteChar(20, 12, "*", 3 | 10);

printf("请选择你的游戏\n");

WriteChar(20, 14, "", 3 | 10);

printf("1、新游戏\n");

WriteChar(20, 15, "", 3 | 10);

printf("2、保存的游戏\n");

WriteChar(20, 16, "", 3 | 10);

printf("3、自定义游戏\n");

WriteChar(20, 17, "", 3 | 10);

printf("4、双蛇对战\n");

WriteChar(20, 18, "", 3 | 10);

printf("5、退出游戏\n");

WriteChar(20, 19, "", 3 | 10);

printf("请输入你的选择:");

scanf_s("%d", &ch);

WriteChar(20, 30, "", 3 | 10);

switch (ch)

{

case 1:

{

system("cls");

First();

}

break;

case 2:

{

system("cls");

Read();

}

break;

case 3:

{

system("cls");

DrewMap();

}

break;

case 4:

{

system("cls");

Double();

}

break;

case 5:

{

QUIT();

}

}

}

}

int _tmain(int argc, _TCHAR* argv[])

{

welcome();

Choince();

return 0;

}

//主函数

贪吃蛇项目面试C语言,【游戏数组面试题】面试问题:C语言贪吃蛇(… - 看准网...相关推荐

  1. 京东网站具有的服务器,【京东后台服务器开发面试】问的都是比较基础,但个人准备不够充分-看准网...

    1.简历内容介绍,会问比较详细 工具实现思路,主要做什么 2.http 请求格式 请求行 请求头 各个头作用 :useragent:为了识别浏览器的类型版本,操作系统及版本等信息的 :cookie : ...

  2. 贪吃蛇项目面试C语言,【游戏数组面试题】面试问题:c语言版贪吃蛇… - 看准网...

    主要运用了光标的移动-.- 教程会在一个月内发布-.-最近考试好多...... 看代码应该能看懂.... 3.1 规则模块与动画模块 1)函数原型:void gui( );void dong( ); ...

  3. C语言 编程判断花瓶是谁打碎的,【数组编程面试题】面试问题:C语言解决是谁… - 看准网...

    逛贴吧偶遇一道很新颖的C语言编程题,想到自己的C语言荒废了很久,便决定花点时间解决一下练练手. 具体题目如下: 实验题目(4)[见实验教材实验五的题目6]:编写程序exp5_6.c,请判断花瓶是谁打碎 ...

  4. java语言的数组描述_下列关于Java语言的数组描述中,错误的是()。_学小易找答案...

    [单选题]下面()是正确的main()方法说明. [填空题]Java规定,如果子类中定义的成员方法与父类中定义的成员方法同名,并且参数的( )和类型以及( )的类型也相同,则父类中的同名成员方法被屏蔽 ...

  5. c语言中数组的概念及作用,C语言数组的定义及其使用方法

    什么是数组? 在我们学习数组前先让我们介绍一下c语言中数组是什么?数组就是一个个元素按照一定顺序排列的集合.它将数据从最低的内存地址保存到最高的内存地址. 声明一个数组 c语言规定了声明数组的格式: ...

  6. c语言比较数组中的元素大小,C语言之数组的冒泡排序

    原标题:C语言之数组的冒泡排序 在实际开发中,有很多场景需要我们将数组元素按照从大到小(或者从小到大)的顺序排列,这样在查阅数据时会更加直观,例如: l 一个保存了班级学号的数组,排序后更容易分区好学 ...

  7. 英业达软件测试工程师,「天津英业达软件测试工程师」面试招聘|工资待遇 - 看准网...

    校招,一共两轮面试,过去先笔试,然后面试官拿着笔试卷子和简历进行面试,问的主要是简历里项目的一些细节第一轮笔试试题: 1.web项目中用到过的前端技术列举: 2.数据库索引,事务,锁的概念: 3.li ...

  8. 字节跳动python面试_【字节跳动Python面试】生平遇到最好的面试体验-看准网

    总的来说面试并不难,面试主要围绕自身背景,所做过的项目,考察SQL能力以及一些结合产品来分析的贴近现实的题目.面试官是个帅帅的小帅哥(感觉很年轻),人很好.Zoom面试,这里一定要指出,面试前最好准备 ...

  9. 多益网络社招iq_【多益网络技术面试】岗位就不说了,社招网申填简历。-看准网...

    先说下面试过程吧,下午3点准时qq视频面试,首先是常规的自我介绍,然后就让你介绍下现在做的项目经验,说了一下自己正在负责的项目之后就开始问一些项目上的细节,如项目的开发流程是什么样的如何确定需求-原型 ...

  10. java技术主管的岗位职责_【JAVA项目经理/技术负责人职责】2021年利必达电商JAVA项目经理/技术负责人岗位职责-看准网...

    本人机械方向大三学生,参加了17年5月底的大疆提前批校招,应聘机械工程师职位,经过了两轮简历筛选.一轮网测.一次电话初面和一次视频面试,因为自身能力不够,视频面试表现不好,应该拿不到最后的offer了 ...

最新文章

  1. Java项目:CRM客户管理系统(java+SSM+jsp+mysql+maven)
  2. mysql查询各个知识点
  3. YII2 载入默认值 loadDefaultValues
  4. Python练习_三级菜单
  5. php计算昨天,php时间计算,明天,昨天,前天,上周,本周,上月等等
  6. python入门第四章十大歌手 手机通讯录 神奇魔方阵 青春有你
  7. php限制接口访问次数_令牌桶限流思路分享(PHP+Redis实现机制)
  8. 15. (附加)链表是否有环(C++版本)
  9. 计算机控制器的简写,工业控制常用英语及缩写
  10. Eclipse中文版之完美汉化教程(详细图解)
  11. 矩阵和向量的范式(Norms for Vectors and Matrices)
  12. Linux文件打包与解压缩
  13. 搜狗输入法自动打开问题
  14. HTML(进阶核心标签)
  15. HorizontalScrollview+recycleview实现横向滑动
  16. 《Parallel batch k-means for Big data clustering》 SCI (聚类k-means)
  17. 2019蓝桥杯B组省赛反思总结
  18. 基于JavaScript的问卷调查系统
  19. dnf 服务器喇叭怎么制作,一个服务器喇叭的独白 - DNF玩家交流 - 地下城与勇士 - DNF-游久网(UUU9)DNF资料站...
  20. 网页中的th/th是什么意思

热门文章

  1. 基于idea-SSM的房产中介房屋租赁出租出售交易平台(javaweb-php-asp.netC#-j2ee-springboot)
  2. 扩展运算符的作用及使用场景
  3. 演讲时,如何提高逻辑思维能力
  4. java手机号、身份证信息脱敏
  5. Mysql 唯一索引的字段值 允许多个NULL值存在吗
  6. wget 正在连接 127.0.0.1:36627... 失败:拒绝连接
  7. openfire android 发送图片,基于openfire+smack开发Android即时聊天应用[四]-单人聊天、群聊、发送接收文件等...
  8. 某公司软件开发工程师孙工,作息规律为上三天班,休息一天,经常不确定休 息日是否周末,为此,请你开发一个程序,当孙工输入年及月,以日历方式显示对 应月份的休息日,用中括号进行标记.同时,统计出本月有几天
  9. 今天来干一件大事,安装微软正版WINPE.
  10. OD代码滚动变化的原因和解决方法