当前位置:网站首页>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;
}
边栏推荐
- SAP HR 家庭成员信息
- How can we make money by making video clips from our media?
- B_ QuRT_ User_ Guide(38)
- SAP 内存参数调优过程
- Balanced binary tree [AVL tree] - insert, delete
- C number of words, plus ¥, longest word, average value
- Anxin can internally test offline voice module vb-01 to communicate with esp-c3-12f
- Summary of SQL single table query 2020.7.27
- As a new force, chenglian premium products was initially injected, and the shares of relevant listed companies rose 150% in response
- Right click the idea file to create new. There is no solution to create new servlet
猜你喜欢
SAP HR 家庭成员信息
Anxinco EC series modules are connected to the multi protocol access products of onenet Internet of things open platform
SAP 内存参数调优过程
B_ QuRT_ User_ Guide(36)
ASP. Net core middleware request processing pipeline
ping报错:未知的名称或服务
Navicat connects Oracle
UIC564-2 附录4 –阻燃防火测试:火焰的扩散
0-1背包问题
Pycharm essential plug-in, change the background (self use, continuous update) | CSDN creation punch in
随机推荐
B_QuRT_User_Guide(38)
Oracle statistics by time
AITM3.0005 烟雾毒性测试
C - minute number V3
B_QuRT_User_Guide(39)
Dependency injection
[stm32+esp8266 connect Tencent cloud IOT development platform 2] stm32+esp8266-01s connect Tencent cloud
Download AWS toolkit pycharm
How to change the formula picture in the paper directly into the formula in word
Senior programmers must know and master. This article explains in detail the principle of MySQL master-slave synchronization, and recommends collecting
redis缓存工具类,值得拥有~
受限线性表
Oracle string sorting
C number of words, plus ¥, longest word, average value
Balanced binary tree [AVL tree] - insert, delete
Where are you going
What if once again forgets the login password of raspberry pie? And you don't have a monitor yet! Today, I would like to introduce a method
Summary of SQL single table query 2020.7.27
S2b2b mall solution of intelligent supply chain in packaging industry: opening up a new ecosystem of e-commerce consumption
May day C - most