网上有关血战到底麻将开挂多少钱(详细开挂教程)

06-26 36阅读

网上有关“简单代码编程 贪吃蛇C语言”话题很是火热,小编也是针对简单代码编程 贪吃蛇C语言寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

您好:手机麻将有挂是真的吗这款游戏可以开挂,确实是有挂的,咨询加微信【】很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的
http://www.boyicom.net/sheng/1.jpg
1.手机麻将有挂是真的吗这款游戏可以开挂,确实是有挂的,通过添加客服微信 2.咨询软件加微信【】在"设置DD功能DD微信手麻工具"里.点击"开启". 3.打开工具.在"设置DD新消息提醒"里.前两个选项"设置"和"连接软件"均勾选"开启"(好多人就是这一步忘记做了) 4.打开某一个微信组.点击右上角.往下拉."消息免打扰"选项.勾选"关闭"(也就是要把"群消息的提示保持在开启"的状态.这样才能触系统发底层接口)

//******友情提示:如想速度快点,请改小_sleep(500)函数中参数*****

#include

#include

#include

#include

#include

const int H = 8; //地图的高

const int L = 16; //地图的长

char GameMap[H][L]; //游戏地图

int key; //按键保存

int sum = 1, over = 0; //蛇的长度, 游戏结束(自吃或碰墙)

int dx[4] = {0, 0, -1, 1}; //左、右、上、下的方向

int dy[4] = {-1, 1, 0, 0};

struct Snake //蛇的每个节点的数据类型

{

int x, y; //左边位置

int now; //保存当前节点的方向, 0,1,2,3分别为左右上下

}Snake[H*L];

const char Shead = '@'; //蛇头

const char Sbody = '#'; //蛇身

const char Sfood = '*'; //食物

const char Snode = '.'; //'.'在地图上标示为空

void Initial(); //地图的初始化

void Create_Food(); //在地图上随机产生食物

void Show(); //刷新显示地图

void Button(); //取出按键,并判断方向

void Move(); //蛇的移动

void Check_Border(); //检查蛇头是否越界

void Check_Head(int x, int y); //检查蛇头移动后的位置情况

int main()

{

Initial();

Show();

return 0;

}

void Initial() //地图的初始化

{

int i, j;

int hx, hy;

system("title 贪吃蛇"); //控制台的标题

memset(GameMap, '.', sizeof(GameMap)); //初始化地图全部为空'.'

system("cls");

srand(time(0)); //随机种子

hx = rand()%H; //产生蛇头

hy = rand()%L;

GameMap[hx][hy] = Shead;

Snake[0].x = hx; Snake[0].y = hy;

Snake[0].now = -1;

Create_Food(); //随机产生食物

for(i = 0; i < H; i++) //地图显示

{

for(j = 0; j < L; j++)

printf("%c", GameMap[i][j]);

printf("\n");

}

printf("\n小小C语言贪吃蛇\n");

printf("按任意方向键开始游戏\n");

getch(); //先接受一个按键,使蛇开始往该方向走

Button(); //取出按键,并判断方向

}

void Create_Food() //在地图上随机产生食物

{

int fx, fy;

while(1)

{

fx = rand()%H;

fy = rand()%L;

if(GameMap[fx][fy] == '.') //不能出现在蛇所占有的位置

{

GameMap[fx][fy] = Sfood;

break;

}

}

}

void Show() //刷新显示地图

{

int i, j;

while(1)

{

_sleep(500); //延迟半秒(1000为1s),即每半秒刷新一次地图

Button(); //先判断按键在移动

Move();

if(over) //自吃或碰墙即游戏结束

{

printf("\n**游戏结束**\n");

printf(" >_<\n");

getchar();

break;

}

system("cls"); //清空地图再显示刷新吼的地图

for(i = 0; i < H; i++)

{

for(j = 0; j < L; j++)

printf("%c", GameMap[i][j]);

printf("\n");

}

printf("\n小小C语言贪吃蛇\n");

printf("按任意方向键开始游戏\n");

}

}

void Button() //取出按键,并判断方向

{

if(kbhit() != 0) //检查当前是否有键盘输入,若有则返回一个非0值,否则返回0

{

while(kbhit() != 0) //可能存在多个按键,要全部取完,以最后一个为主

key = getch(); //将按键从控制台中取出并保存到key中

switch(key)

{ //左

case 75: Snake[0].now = 0;

break;

//右

case 77: Snake[0].now = 1;

break;

//上

case 72: Snake[0].now = 2;

break;

//下

case 80: Snake[0].now = 3;

break;

}

}

}

void Move() //蛇的移动

{

int i, x, y;

int t = sum; //保存当前蛇的长度

//记录当前蛇头的位置,并设置为空,蛇头先移动

x = Snake[0].x; y = Snake[0].y; GameMap[x][y] = '.';

Snake[0].x = Snake[0].x + dx[ Snake[0].now ];

Snake[0].y = Snake[0].y + dy[ Snake[0].now ];

Check_Border(); //蛇头是否越界

Check_Head(x, y); //蛇头移动后的位置情况,参数为: 蛇头的开始位置

if(sum == t) //未吃到食物即蛇身移动哦

for(i = 1; i < sum; i++) //要从蛇尾节点向前移动哦,前一个节点作为参照

{

if(i == 1) //尾节点设置为空再移动

GameMap[ Snake[i].x ][ Snake[i].y ] = '.';

if(i == sum-1) //为蛇头后面的蛇身节点,特殊处理

{

Snake[i].x = x;

Snake[i].y = y;

Snake[i].now = Snake[0].now;

}

else //其他蛇身即走到前一个蛇身位置

{

Snake[i].x = Snake[i+1].x;

Snake[i].y = Snake[i+1].y;

Snake[i].now = Snake[i+1].now;

}

GameMap[ Snake[i].x ][ Snake[i].y ] = '#'; //移动后要置为'#'蛇身

}

}

void Check_Border() //检查蛇头是否越界

{

if(Snake[0].x 0 || Snake[0].x >= H

|| Snake[0].y 0 || Snake[0].y >= L)

over = 1;

}

void Check_Head(int x, int y) //检查蛇头移动后的位置情况

{

if(GameMap[ Snake[0].x ][ Snake[0].y ] == '.') //为空

GameMap[ Snake[0].x ][ Snake[0].y ] = '@';

else

if(GameMap[ Snake[0].x ][ Snake[0].y ] == '*') //为食物

{

GameMap[ Snake[0].x ][ Snake[0].y ] = '@';

Snake[sum].x = x; //新增加的蛇身为蛇头后面的那个

Snake[sum].y = y;

Snake[sum].now = Snake[0].now;

GameMap[ Snake[sum].x ][ Snake[sum].y ] = '#';

sum++;

Create_Food(); //食物吃完了马上再产生一个食物

}

else

over = 1;

}

求贪吃蛇C语言代码,有一定功能要求

共俩个文件,一个game.h的头文件, 一个main.c的主程序文件

//////////////game.h文件

#ifndef?_SNAKE_H_H_H

#define?_SNAKE_H_H_H

//调节游戏界面大小,这里设置为15*15

int?const?COL?=?15;?/**const?修饰的值具有不可变性**/

int?const?ROW?=?15;

//蛇节点

typedef?struct?Node

{

int?x;

int?y;

struct?Node?*pre;

struct?Node?*next;

}NODE,?*pNODE;

//食物

typedef?struct?Food

{

int?x;

int?y;

char?c;

}FOOD,?*pFOOD;

//初始化,创建蛇的第一节

pNODE?InitSnake(void);

//初始化食物成员

FOOD?InitFood(void);

//蛇运动函数

int?MoveSnake(pNODE?pHead,?char?c);

//检查键盘按键

char?KbHit(char?orient);

//蛇吃到食物处理函数

pNODE?SnakeEatFood(pNODE?pHead,?pFOOD?pFood);

//打印游戏界面函数

void?Print(pNODE?pHead,?FOOD?food);

//游戏结束,释放内存函数

void?FreeMemory(pNODE?*ppHead);

#endif

//////////main.c文件

#include?<stdio.h>

#include?<stdlib.h>

#include?<time.h>

#include?<conio.h>

#include?<Windows.h>

#include?"game.h"

//主函数

int?main(void)

{

char?orien?=?'a',?get_char;

int?game_over?=?0;

FOOD?food?=?InitFood();?/**初始化食物**/

pNODE?head?=?InitSnake();/**初始化头节点*/

while?(1)

{

head?=?SnakeEatFood(head,?&food);

get_char?=?KbHit(orien);

if?(27?==?get_char)

{

game_over?=?1;

break;

}

else

orien?=?get_char;

game_over?=?MoveSnake(head,?orien);

if?(game_over)

break;

system("cls");

Print(head,?food);

Sleep(200);?//ms级,刷屏间隔时间

}

if?(game_over)

{

printf("游戏结束!\n");

FreeMemory(&head);

if?(NULL?==?head)

printf("内存释放成功!\n");

else

printf("内存释放失败!\n");

}

getch();

return?0;

}

//初始化,创建蛇的第一节

pNODE?InitSnake(void)

{

pNODE?pHead?=?(pNODE)malloc(sizeof(NODE));

srand((unsigned)(time(NULL)+1));

if?(NULL?==?pHead)

{

printf("内存分配失败!\n");

exit(-1);

}

pHead->x?=?rand()?%?ROW;

pHead->y?=?rand()?%?COL;

pHead->next?=?NULL;

pHead->pre?=?NULL;

return?pHead;

}

//初始化食物成员

FOOD?InitFood(void)

{

FOOD?food;

srand((unsigned)time(NULL));

food.x?=?rand()?%?ROW;

food.y?=?rand()?%?COL;

food.c?=?65?+?rand()%26;

return?food;

}

//蛇吃到食物处理函数

pNODE?SnakeEatFood(pNODE?pHead,?pFOOD?pFood)

{

pNODE?p_add?=?NULL,?pt?=?NULL,?rear?=?NULL;

if?(pFood->x?==?pHead->x?&&?pFood->y?==?pHead->y)

{

p_add?=?(pNODE)malloc(sizeof(NODE));

if?(NULL?==?p_add)

{

printf("内存分配失败!\n");

exit(-1);

}

pt?=?pHead;

while?(pt->next?!=?NULL)

{

pt?=?pt->next;

}

p_add->pre?=?pt;

p_add->next?=?NULL;

pt->next?=?p_add;

*pFood?=?InitFood();

//不让食物出现在蛇的位置上

pt?=?pHead;

while?(pt?!=?NULL)

{

if?(pFood->x?==?pHead->x?&&?pFood->y?==?pHead->y)

{

*pFood?=?InitFood();

break;

}

pt?=?pt->next;

}

}

return?pHead;

}

//检查键盘按键

char?KbHit(char?orient)

{

char?c;

if?(kbhit())

{

c?=?getch();

if?(orient?!=?'d'?&&?c?==?'a')

{

orient?=?c;

}

else?if?(orient?!=?'a'?&&?c?==?'d')

{

orient?=?c;

}

else?if?(orient?!=?'w'?&&?c?==?'s')

{

orient?=?c;

}

else?if?(orient?!=?'s'?&&?c?==?'w')

{

orient?=?c;

}

else?if?(27?==?c)

{

orient?=?c;

}

}

return?orient;

}

//蛇运动函数

int?MoveSnake(pNODE?pHead,?char?c)

{

INT?game_over?=?0;

pNODE?pt?=?pHead;

//让pt指向蛇尾

while?(pt->next?!=?NULL)

{

pt?=?pt->next;

}

//从蛇尾向向蛇头前进

while(pt?!=?pHead)

{

pt->x?=?pt->pre->x;

pt->y?=?pt->pre->y;

pt?=?pt->pre;

}

if?('d'?==?c)

{

pHead->x?+=?1;

if?(pHead->x?>=?ROW)

{

pHead->x?-=?ROW;

}

}

if?('a'?==?c)

{

pHead->x?-=?1;

if?(pHead->x?<?0)

{

pHead->x?+=?ROW;

}

}

if?('s'?==?c)

{

pHead->y?+=?1;

if?(pHead->y?>=?COL)

{

pHead->y?-=?COL;

}

}

if?('w'?==?c)

{

pHead->y?-=?1;

if?(pHead->y?<?0)

{

pHead->y?+=?COL;

}

}

//当蛇头碰到蛇身,游戏结束

pt?=?pHead->next;

while?(pt?!=?NULL)

{

if?(pt->x?==?pHead->x?&&?pt->y?==?pHead->y)

{

game_over?=?1;

}

pt?=?pt->next;

}

return?game_over;

}

//打印游戏界面函数

void?Print(pNODE?pHead,?FOOD?food)

{

int?row?=?0,?col?=?0,?flag?=?0;

pNODE?pt?=?NULL;

printf("?方向控制——上:w?下:s?左:a?右:d(Esc退出)\n?");

for?(row=0;?row<ROW;?row++)

{

printf("—");

}

putchar('\n');

for?(col=0;?col<COL;?col++)

{

printf("?|");

for?(row=0;?row<ROW;?row++)

{

pt?=?pHead;

flag?=?0;

//打印出蛇

while?(pt?!=?NULL)

{

if?(row?==?pt->x?&&?col?==?pt->y)

{

if?(pt?==?pHead)

printf("■");

else

printf("□");

flag?=?1;

break;

}

pt?=?pt->next;

}

//打印出食物或两个空格

if?(0?==?flag)

{

if?(row?==?food.x?&&?col?==?food.y)

{

putchar(food.c);

putchar(food.c);

continue;

}

printf("?");

}

}

printf("|");

putchar('\n');

}

printf("?");

for?(row=0;?row<ROW;?row++)

{

printf("—");

}

putchar('\n');

}

//释放内存函数

void?FreeMemory(pNODE?*ppHead)

{

pNODE?p_delete?=?NULL,?pt?=?NULL;

while?(*ppHead?!=?NULL)

{

pt?=?(*ppHead)->next;

if?(pt?!=?NULL)

{

pt->pre?=?NULL;

}

p_delete?=?*ppHead;

free(p_delete);

p_delete?=?NULL;

*ppHead?=?pt;

}

}

求C语言贪吃蛇代码能在DEV上运行通过的贪吃蛇,不要TC上的啊我们老师上课给在DEV我们运行了一次

以下是代码

/* 贪吃蛇程序 by champking */

#define N 200

#include <graphics.h>

#include <stdlib.h>

#include <dos.h>

#define LEFT 0x4b00

#define RIGHT 0x4d00

#define DOWN 0x5000

#define UP 0x4800

#define ESC 0x011b

int i,key;

int score = 0;/*得分*/

int gamespeed = 100000;/*游戏速度自己调整*/

struct Food

{

? int x;/*食物的横坐标*/

? int y;/*食物的纵坐标*/

? int yes;/*判断是否要出现食物的变量*/

}food;/*食物的结构体*/

struct Snake

{

? int x[N];

? int y[N];

? int node;/*蛇的节数*/

? int direction;/*蛇移动方向*/

? int life;/* 蛇的生命,0活着,1死亡*/

}snake;

void Init(void);/*图形驱动*/

void Close(void);/*图形结束*/

void DrawK(void);/*开始画面*/

void GameOver(void);/*结束游戏*/

void GamePlay(void);/*玩游戏具体过程*/

void PrScore(void);/*输出成绩*/

/*主函数*/

void main(void)

{

? Init();/*图形驱动*/

? DrawK();/*开始画面*/

? GamePlay();/*玩游戏具体过程*/

? Close();/*图形结束*/

}

/*图形驱动*/

void Init(void)

{

? int gd = DETECT, gm;

? initgraph(&gd, &gm, "c:\\tc");

? cleardevice();

}

/*开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙*/

void DrawK(void)

{

/*setbkcolor(LIGHTGREEN);*/

setcolor(11);

setlinestyle(SOLID_LINE, 0, THICK_WIDTH);/*设置线型*/

?

for(i = 50; i <= 600; i += 10)/*画围墙*/

{

?rectangle(i, 40, i + 10, 49); /*上边*/

?rectangle(i, 451, i + 10, 460);/*下边*/

}

for(i = 40; i <= 450; i += 10)

{

?rectangle(50, i, 59, i + 10); /*左边*/

?rectangle(601, i, 610, i + 10);/*右边*/

}

}

/*玩游戏具体过程*/

void GamePlay(void)

{

randomize();/*随机数发生器*/

food.yes = 1;/*1表示需要出现新食物,0表示已经存在食物*/

snake.life = 0;/*活着*/

snake.direction = 1;/*方向往右*/

snake.x[0] = 100; snake.y[0] = 100;/*蛇头*/

snake.x[1] = 110; snake.y[1] = 100;

snake.node = 2;/*节数*/

PrScore();/*输出得分*/

while(1)/*可以重复玩游戏,压ESC键结束*/

{

?while(!kbhit())/*在没有按键的情况下,蛇自己移动身体*/

?{

? if(food.yes == 1)/*需要出现新食物*/

? {

food.x = rand() % 400 + 60;

food.y = rand() % 350 + 60;

while(food.x % 10 != 0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/

food.x++;

while(food.y % 10 != 0)

food.y++;

food.yes = 0;/*画面上有食物了*/

? }

?

? if(food.yes == 0)/*画面上有食物了就要显示*/

? {

setcolor(GREEN);

rectangle(food.x, food.y, food.x + 10, food.y - 10);

? }

?

? for(i = snake.node - 1; i > 0; i--)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/

? {

snake.x[i] = snake.x[i-1];

snake.y[i] = snake.y[i-1];

? }

?

? /*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/

? switch(snake.direction)

? {

case 1: snake.x[0] += 10; break;

case 2: snake.x[0] -= 10; break;

case 3: snake.y[0] -= 10; break;

case 4: snake.y[0] += 10; break;

? }

?

? for(i = 3; i < snake.node; i++)/*从蛇的第四节开始判断是否撞到自己了,因为蛇头为两节,第三节不可能拐过来*/

? {

if(snake.x[i] == snake.x[0] && snake.y[i] == snake.y[0])

{

GameOver();/*显示失败*/

snake.life = 1;

break;

}

? }

?

? if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55||

? snake.y[0]>455)/*蛇是否撞到墙壁*/

? {

GameOver();/*本次游戏结束*/

snake.life=1; /*蛇死*/

? }

?

? if(snake.life == 1)/*以上两种判断以后,如果蛇死就跳出内循环,重新开始*/

break;

? if(snake.x[0] == food.x && snake.y[0] == food.y)/*吃到食物以后*/

? {

setcolor(0);/*把画面上的食物东西去掉*/

rectangle(food.x, food.y, food.x + 10, food.y - 10);

snake.x[snake.node] =- 20; snake.y[snake.node] =- 20;

/*新的一节先放在看不见的位置,下次循环就取前一节的位置*/

snake.node++;/*蛇的身体长一节*/

food.yes = 1;/*画面上需要出现新的食物*/

score += 10;

PrScore();/*输出新得分*/

? }

?

? setcolor(4);/*画出蛇*/

?

? for(i = 0; i < snake.node; i++)

rectangle(snake.x[i], snake.y[i], snake.x[i] + 10,

snake.y[i] - 10);

?

? delay(gamespeed);

? setcolor(0);/*用黑色去除蛇的的最后一节*/ ?

? rectangle(snake.x[snake.node-1], snake.y[snake.node-1],

? snake.x[snake.node-1] + 10, snake.y[snake.node - 1] - 10);

?} ?/*endwhile(!kbhit)*/

?

?if(snake.life == 1)/*如果蛇死就跳出循环*/

? break;

?

?key = bioskey(0);/*接收按键*/

?

?if(key == ESC)/*按ESC键退出*/

? break;

?else

? if(key == UP&&snake.direction!=4)

/*判断是否往相反的方向移动*/

snake.direction=3;

?else

? if(key == RIGHT &&snake.direction != 2)

snake.direction=1;

?else

? if(key == LEFT && snake.direction != 1)

snake.direction = 2;

?else

? if(key == DOWN && snake.direction != 3)

snake.direction = 4;

}/*endwhile(1)*/

}

/*游戏结束*/

void GameOver(void)

{

cleardevice();

PrScore();

setcolor(RED);

settextstyle(0, 0, 4);

outtextxy(200, 200, "GAME OVER");

getch();

}

/*输出成绩*/

void PrScore(void)

{ ?

char str[10];

setfillstyle(SOLID_FILL, YELLOW);

bar(50, 15, 220, 35);

setcolor(6);

settextstyle(0,0,2);

sprintf(str, "score:%d", score);

outtextxy(55, 20, str);

}

/*图形结束*/

void Close(void)

{ ?

getch();

closegraph();

}

#include?<time.h>

#include?<stdio.h>

#include?<stdlib.h>

#include?<windows.h>

#define?U?1

#define?D?2

#define?L?3

#define?R?4//蛇的状态,U:上?;D:下;L:左?R:右

typedef?struct?SNAKE?{?//蛇身的一个节点

int?x;

int?y;

struct?SNAKE?*next;

}?snake;

//全局变量//

int?score=0,add=10;//总得分与每次吃食物得分。

int?status,sleeptime=200;//每次运行的时间间隔

snake?*head,?*food;//蛇头指针,食物指针

snake?*q;//遍历蛇的时候用到的指针

int?endgamestatus=0;?//游戏结束的情况,1:撞到墙;2:咬到自己;3:主动退出游戏。

//声明全部函数//

void?Pos();

void?creatMap();

void?initsnake();

int?biteself();

void?createfood();

void?cantcrosswall();

void?snakemove();

void?pause();

void?gamecircle();

void?welcometogame();

void?endgame();

void?gamestart();

void?Pos(int?x,int?y)//设置光标位置

{

COORD?pos;

HANDLE?hOutput;

pos.X=x;

pos.Y=y;

hOutput=GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleCursorPosition(hOutput,pos);

}

void?creatMap()//创建地图

{

int?i;

for(i=0;?i<58;?i+=2)?{?//打印上下边框

Pos(i,0);

printf("■");

Pos(i,26);

printf("■");

}

for(i=1;?i<26;?i++)?{?//打印左右边框

Pos(0,i);

printf("■");

Pos(56,i);

printf("■");

}

}

void?initsnake()//初始化蛇身

{

snake?*tail;

int?i;

tail=(snake*)malloc(sizeof(snake));//从蛇尾开始,头插法,以x,y设定开始的位置//

tail->x=24;

tail->y=5;

tail->next=NULL;

for(i=1;?i<=4;?i++)?{

head=(snake*)malloc(sizeof(snake));

head->next=tail;

head->x=24+2*i;

head->y=5;

tail=head;

}

while(tail!=NULL)?{?//从头到为,输出蛇身

Pos(tail->x,tail->y);

printf("■");

tail=tail->next;

}

}

int?biteself()//判断是否咬到了自己

{

snake?*self;

self=head->next;

while(self!=NULL)?{

if(self->x==head->x?&&?self->y==head->y)?{

return?1;

}

self=self->next;

}

return?0;

}

void?createfood()//随机出现食物

{

snake?*food_1;

srand((unsigned)time(NULL));

food_1=(snake*)malloc(sizeof(snake));

while((food_1->x%2)!=0)?{?//保证其为偶数,使得食物能与蛇头对其

food_1->x=rand()%52+2;

}

food_1->y=rand()%24+1;

q=head;

while(q->next==NULL)?{

if(q->x==food_1->x?&&?q->y==food_1->y)?{?//判断蛇身是否与食物重合

free(food_1);

createfood();

}

q=q->next;

}

Pos(food_1->x,food_1->y);

food=food_1;

printf("■");

}

void?cantcrosswall()//不能穿墙

{

if(head->x==0?||?head->x==56?||head->y==0?||?head->y==26)?{

endgamestatus=1;

endgame();

}

}

void?snakemove()//蛇前进,上U,下D,左L,右R

{

snake?*?nexthead;

cantcrosswall();

nexthead=(snake*)malloc(sizeof(snake));

if(status==U)?{

nexthead->x=head->x;

nexthead->y=head->y-1;

if(nexthead->x==food->x?&&?nexthead->y==food->y)?{?//如果下一个有食物//

nexthead->next=head;

head=nexthead;

q=head;

while(q!=NULL)?{

Pos(q->x,q->y);

printf("■");

q=q->next;

}

score=score+add;

createfood();

}?else?{//如果没有食物//

nexthead->next=head;

head=nexthead;

q=head;

while(q->next->next!=NULL)?{

Pos(q->x,q->y);

printf("■");

q=q->next;

}

Pos(q->next->x,q->next->y);

printf("?");

free(q->next);

q->next=NULL;

}

}

if(status==D)?{

nexthead->x=head->x;

nexthead->y=head->y+1;

if(nexthead->x==food->x?&&?nexthead->y==food->y)?{?//有食物

nexthead->next=head;

head=nexthead;

q=head;

while(q!=NULL)?{

Pos(q->x,q->y);

printf("■");

q=q->next;

}

score=score+add;

createfood();

}?else?{//没有食物

nexthead->next=head;

head=nexthead;

q=head;

while(q->next->next!=NULL)?{

Pos(q->x,q->y);

printf("■");

q=q->next;

}

Pos(q->next->x,q->next->y);

printf("?");

free(q->next);

q->next=NULL;

}

}

if(status==L)?{

nexthead->x=head->x-2;

nexthead->y=head->y;

if(nexthead->x==food->x?&&?nexthead->y==food->y)?{?//有食物

nexthead->next=head;

head=nexthead;

q=head;

while(q!=NULL)?{

Pos(q->x,q->y);

printf("■");

q=q->next;

}

score=score+add;

createfood();

}?else?{//没有食物

nexthead->next=head;

head=nexthead;

q=head;

while(q->next->next!=NULL)?{

Pos(q->x,q->y);

printf("■");

q=q->next;

}

Pos(q->next->x,q->next->y);

printf("?");

free(q->next);

q->next=NULL;

}

}

if(status==R)?{

nexthead->x=head->x+2;

nexthead->y=head->y;

if(nexthead->x==food->x?&&?nexthead->y==food->y)?{?//有食物

nexthead->next=head;

head=nexthead;

q=head;

while(q!=NULL)?{

Pos(q->x,q->y);

printf("■");

q=q->next;

}

score=score+add;

createfood();

}?else?{?//没有食物

nexthead->next=head;

head=nexthead;

q=head;

while(q->next->next!=NULL)?{

Pos(q->x,q->y);

printf("■");

q=q->next;

}

Pos(q->next->x,q->next->y);

printf("?");

free(q->next);

q->next=NULL;

}

}

if(biteself()==1)?{?//判断是否会咬到自己

endgamestatus=2;

endgame();

}

}

void?pause()//暂停

{

while(1)?{

Sleep(300);

if(GetAsyncKeyState(VK_SPACE))?{

break;

}

}

}

void?gamecircle()//控制游戏

{

Pos(64,15);

printf("不能穿墙,不能咬到自己\n");

Pos(64,16);

printf("用↑.↓.←.→分别控制蛇的移动.");

Pos(64,17);

printf("F1?为加速,F2?为减速\n");

Pos(64,18);

printf("ESC?:退出游戏.space:暂停游戏.");

Pos(64,20);

//

status=R;

while(1)?{

Pos(64,10);

printf("得分:%d?",score);

Pos(64,11);

printf("每个食物得分:%d分",add);

if(GetAsyncKeyState(VK_UP)?&&?status!=D)?{

status=U;

}?else?if(GetAsyncKeyState(VK_DOWN)?&&?status!=U)?{

status=D;

}?else?if(GetAsyncKeyState(VK_LEFT)&&?status!=R)?{

status=L;

}?else?if(GetAsyncKeyState(VK_RIGHT)&&?status!=L)?{

status=R;

}?else?if(GetAsyncKeyState(VK_SPACE))?{

pause();

}?else?if(GetAsyncKeyState(VK_ESCAPE))?{

endgamestatus=3;

break;

}?else?if(GetAsyncKeyState(VK_F1))?{

if(sleeptime>=50)?{

sleeptime=sleeptime-30;

add=add+2;

if(sleeptime==320)?{

add=2;//防止减到1之后再加回来有错

}

}

}?else?if(GetAsyncKeyState(VK_F2))?{

if(sleeptime<350)?{

sleeptime=sleeptime+30;

add=add-2;

if(sleeptime==350)?{

add=1;?//保证最低分为1

}

}

}

Sleep(sleeptime);

snakemove();

}

}

void?welcometogame()//开始界面

{

Pos(40,12);

//

printf("欢迎来到贪食蛇游戏!");

Pos(40,25);

//

system("pause");

system("cls");

Pos(25,12);

printf("用↑.↓.←.→分别控制蛇的移动,?F1?为加速,2?为减速\n");

Pos(25,13);

printf("加速将能得到更高的分数。\n");

system("pause");

system("cls");

}

void?endgame()//结束游戏

{

system("cls");

Pos(24,12);

if(endgamestatus==1)?{

printf("对不起,您撞到墙了。游戏结束.");

}?else?if(endgamestatus==2)?{

printf("对不起,您咬到自己了。游戏结束.");

}?else?if(endgamestatus==3)?{

printf("您的已经结束了游戏。");

}

Pos(24,13);

printf("您的得分是%d\n",score);

exit(0);

}

void?gamestart()//游戏初始化

{

system("mode?con?cols=100?lines=30");

welcometogame();

creatMap();

initsnake();

createfood();

}

int?main()

{

gamestart();

gamecircle();

endgame();

return?0;

}

关于“简单代码编程 贪吃蛇C语言”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。