当前位置:网站首页>C language greedy snake
C language greedy snake
2022-07-07 23:40:00 【Bald happiness you don't understand】
Novice self study C, Writing games for the first time , Very excited , Make a note of
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <time.h>
#include <conio.h>
// auxiliary
#define mapheight 25
#define mapwidth 60
#define shejieshu 50
// Auxiliary function , Cursor movement
void gotoxy(int x, int y)
{
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(handle, coord);
}
struct // food
{
int x;
int y;
}food;
// The snake
struct
{
int x[shejieshu];
int y[shejieshu];
int len;
int v;
}she;
int fangxiang = 'A';
int chuchang = 0;
int grade = 0;
void map()
{
srand((unsigned int)time(NULL)); // Random function seed
for (int i = 0; i <= mapheight; i++)
{
gotoxy(0, i);
printf("□");
gotoxy(mapwidth, i);
printf("□");
}
for (int j = 0; j<= mapwidth; j+=2)
{
gotoxy(j, 0);
printf("□");
gotoxy(j, mapheight);
printf("□");
}
she.len = 3;
she.v ;
she.x[0] = mapwidth / 2;
she.y[0] = mapheight / 2;
gotoxy(she.x[0], she.y[0]);
printf("■");
for (int k = 1; k < she.len; k++)
{
she.x[k] = she.x[k - 1] + 2;
she.y[k] = she.y[k - 1];
gotoxy(she.x[k], she.y[k]);
printf("■");
}
while (1)
{
food.x = rand() % (mapwidth - 4) + 2;
food.y = rand() % (mapheight - 2) + 1;
if (food.x % 2 == 0)
{
break;
}
}
gotoxy(food.x, food.y);
printf("■");
}
void makefood()
{
if (she.x[0] == food.x&&she.y[0] == food.y)
{
srand((unsigned int)time(NULL));
while (1)
{
int flag = 1;
while (1)
{
food.x = rand() % (mapwidth - 4) + 2;
food.y = rand() % (mapheight - 2) + 1;
if (food.x % 2 == 0)
{
break;
}
}
int k;
for ( k = 0; k < she.len; k++);
{
if (she.y[k] == food.y&&she.x[k] == food.x||food.x % 2 != 0)
{
flag = 1;
break;
}
if (flag == 0)
{
break;
}
}
gotoxy(food.x, food.y);
printf("■");
she.len++;
//chuchang = 1;
grade = grade + 1;
break;
}
}
}
void anjian()
{
int chaoxiang;
if (_kbhit()) // Get keyboard information
{
fflush(stdin);
chaoxiang = _getch();
if (fangxiang != 'A'&&chaoxiang == 'D')
{
fangxiang = chaoxiang;
}
if (fangxiang != 'W'&&chaoxiang == 'S')
{
fangxiang = chaoxiang;
}
if (fangxiang != 'S'&&chaoxiang == 'W')
{
fangxiang = chaoxiang;
}
if (fangxiang != 'D'&&chaoxiang == 'A')
{
fangxiang = chaoxiang;
}
}
if (!chuchang)
{
gotoxy(she.x[she.len - 1], she.y[she.len - 1]);
printf(" ");
}
for (int i = she.len - 1; i > 0; i--)
{
she.x[i] = she.x[i - 1];
she.y[i] = she.y[i - 1];
}
switch (fangxiang)
{
case 'W':she.y[0]--; break;
case 'S':she.y[0]++; break;
case 'A':she.x[0]-= 2; break;
case 'D':she.x[0]+= 2; break;
}
gotoxy(she.x[0], she.y[0]);
printf("■");
chuchang = 0;
gotoxy(mapwidth + 2, 0);
}
int shezhangtai()
{
if (she.y[0] == 0 || she.y[0] == mapheight || she.x[0] == 0 || she.x[0] == mapwidth)
{
return 0;
}
for (int k = 1; k < she.len; k++)
{
if (she.x[0] == she.x[k] && she.y[k] == she.y[0])
return 0;
}
return 1;
}
int main()
{
int c ;
while (1)
{
printf(" Please select the speed ,1 For the ordinary ,2 Advanced ,3 For difficulties ,4 For gods \n");
scanf_s("%d", &c);
switch (c)
{
case 1:she.v = 500; break;
case 2:she.v = 300; break;
case 3:she.v = 100; break;
case 4:she.v = 50; break;
default:printf(" Please enter 1,2,3 A number in \n");
}
if (c == 1 || c == 2 || c == 3 || c == 4)
{
break;
}
}
printf(" Please open capitalization ");
system("pause");
system("cls");
map();
while (1)
{
gotoxy(mapwidth + 2, 0);
printf(" score :%d", grade);
makefood();
Sleep(she.v);
anjian();
if (!shezhangtai())
{
break;
}
}
gotoxy(mapwidth , mapheight +1);
printf("GAME OVER\n");
system("pause");
return 0;
}
边栏推荐
- B_ QuRT_ User_ Guide(40)
- B_QuRT_User_Guide(39)
- Markdown
- @Configuration注解的详细介绍
- [stm32+esp8266 connect Tencent cloud IOT development platform 2] stm32+esp8266-01s connect Tencent cloud
- Download AWS toolkit pycharm
- ASP. Net core middleware request processing pipeline
- SAP HR social work experience 0023
- One of the anti climbing methods
- SAP 内存参数调优过程
猜你喜欢
SAP 内存参数调优过程
Anxinco EC series modules are connected to the multi protocol access products of onenet Internet of things open platform
archery安装测试
[stm32+esp8266 connect Tencent cloud IOT development platform 2] stm32+esp8266-01s connect Tencent cloud
[stm32+esp8266 connects to Tencent cloud IOT development platform 3] stm32+esp8266-01s dynamically registers devices on Tencent cloud (at instruction mode) -- with source code
Class C design questions
The file format and extension of XLS do not match
SAP HR 家庭成员信息
ASP. Net core middleware request processing pipeline
Ora-01741 and ora-01704
随机推荐
B_QuRT_User_Guide(38)
解析token的网址
Oracle string sorting
[stm32+esp8266 connect Tencent cloud IOT development platform 2] stm32+esp8266-01s connect Tencent cloud
SAP HR 家庭成员信息
Extract the file name under the folder under win
95.(cesium篇)cesium动态单体化-3D建筑物(楼栋)
【7.4】25. Turn over the linked list in groups of K
Rock-paper-scissors
Summary of SQL single table query 2020.7.27
Anxin can internally test offline voice module vb-01 to communicate with esp-c3-12f
Mobile heterogeneous computing technology - GPU OpenCL programming (basic)
Boost regex library source code compilation
C simple question one
USB (XVIII) 2022-04-17
B_ QuRT_ User_ Guide(40)
Get started with mongodb
USB (XV) 2022-04-14
企业应用需求导向开发之人力部门,员工考勤记录和实发工资业务程序案例
Svn relocation