C言語の開発は蛇を食べるゲームを実現します。
本論文の実例はC言語の実現について、蛇ゲームの具体的なコードを共有しています。参考にしてください。具体的な内容は以下の通りです。
1、最高VSで運転する
2、使用する関数は、_kbhit_getch EasyXグラフィックスライブラリ内の一連の関数
3、蛇の体と食べ物は長方形で描かれています。
コードは以下の通りです
C++クラシックミニゲームまとめ
pythonクラシックミニゲームまとめ
pythonテトリスゲーム集合
JavaScript経典ゲームは遊んで止まらないです。
java経典の小さいゲームのまとめ
javascript経典ミニゲームのまとめ
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。
1、最高VSで運転する
2、使用する関数は、_kbhit_getch EasyXグラフィックスライブラリ内の一連の関数
3、蛇の体と食べ物は長方形で描かれています。
コードは以下の通りです
#include<stdio.h>
#include<graphics.h> //easyx
#include<conio.h>
#include<time.h>
/******************** **********************/
//
typedef struct point {
int x, y;
}PYINT;
//
struct snake {
PYINT xy[100]; //
int position; //
int num; //
}SNAKE;
//
struct food{
PYINT fdxy;
int flag; //
int grade; //
}FOOD;
// :
// #define
enum position
{
up, down, left, right
};
/********************** *****************************/
//
// 10x10
void initsnake()
{
SNAKE.xy[0].x = 0;
SNAKE.xy[0].y = 0;
//
SNAKE.xy[1].x = 10;
SNAKE.xy[1].y = 0;
SNAKE.xy[2].x = 20;
SNAKE.xy[2].y = 0;
SNAKE.position = right; // ( )
SNAKE.num = 3; // ( )
}
//
void Drawsnake()
{
for (int i = 0; i < SNAKE.num; i++)
{
setlinecolor(BLACK);
setfillcolor(RGB(rand() % 255, rand() % 255, rand() % 255));
fillrectangle(SNAKE.xy[i].x, SNAKE.xy[i].y, SNAKE.xy[i].x + 10, SNAKE.xy[i].y + 10);
}
}
//
/*
, :
( ), , ( ) , ;
*/
void Movesnake()
{
for (int i = SNAKE.num; i > 0; i--) {
SNAKE.xy[i].x = SNAKE.xy[i - 1].x;
SNAKE.xy[i].y = SNAKE.xy[i - 1].y; //
}
switch (SNAKE.position)
{
case up:
SNAKE.xy[0].y -= 10;
break;
case down:
SNAKE.xy[0].y += 10;
break;
// X
case left:
SNAKE.xy[0].x -= 10;
break;
case right:
SNAKE.xy[0].x += 10;
break;
// Y
}
}
/****************************** *****************************************/
// , ( )
void Keydown()
{
char ch = _getch();
switch (ch)
{
case 'W':
case 'w':
case 72: // “ ”
if (SNAKE.position != down) //
SNAKE.position = up;
break;
case 'S':
case 's':
case 80: // “ ”
if (SNAKE.position != up) //
SNAKE.position = down;
break;
case 'A':
case 'a':
case 75: // “ ”
if (SNAKE.position != right) //
SNAKE.position = left;
break;
case 'D':
case 'd':
case 77: // “ ”
if (SNAKE.position != left) //
SNAKE.position = right;
break;
}
}
/****************************** **************************************/
//
void initfood()
{
FOOD.fdxy.x = rand() % 60 * 10;
FOOD.fdxy.y = rand() % 40 * 10; //
FOOD.flag = 1; //1
//FOOD.grade = 0;
for (int i = 0; i < SNAKE.num; i++) {
if (FOOD.fdxy.x == SNAKE.xy[i].x&&FOOD.fdxy.y == SNAKE.xy[i].y) // , X Y
{
FOOD.fdxy.x = rand() % 60 * 10;
FOOD.fdxy.y = rand() % 40 * 10;
}
}
}
//
void Drawfood()
{
setlinecolor(BLACK);
setfillcolor(RGB(rand() % 255, rand() % 255, rand() % 255));
fillrectangle(FOOD.fdxy.x, FOOD.fdxy.y, FOOD.fdxy.x + 10, FOOD.fdxy.y + 10);
}
/************************************* *************************************************/
void eatfood()
{
if (SNAKE.xy[0].x == FOOD.fdxy.x&&SNAKE.xy[0].y == FOOD.fdxy.y) {
SNAKE.num++;
FOOD.flag = 0; // (1: 0; )
FOOD.grade += 10; // 10 ( 10 , )
}
}
/************************************* *************************************************/
void putgrade()
{
char str[20] = " ";
sprintf_s(str, "greade: %d", FOOD.grade);
settextcolor(RED); //
outtextxy(500, 50, str);
}
/*********************************** ***************************************************/
// ( )
//
int gameover()
{
if (SNAKE.xy[0].x > 600 || SNAKE.xy[0].x < 0 | SNAKE.xy[0].y>400 || SNAKE.xy[0].y < 0) //
{
initgraph(800, 600);
settextcolor(RED);
outtextxy(600, 400, " ");
settextcolor(YELLOW);
settextstyle(50, 50, " "); //
outtextxy(200, 250, "GAME OVER"); //
return 1;
}
return 0;
}
/*****************************************************************************************/
int main()
{
initgraph(600, 400);
setbkcolor(BLACK); //
cleardevice(); // :
srand((unsigned int)time(NULL)); //
initsnake();
Drawsnake();
while (1)
{
cleardevice(); //
Movesnake();
Drawsnake();
if (FOOD.flag == 0) {
initfood();
}
Drawfood();
if (_kbhit()) { //_kbhit:
Keydown();
}
if (gameover()) { // 1:
break;
}
eatfood();
putgrade();
Sleep(100); // ( )
}
_getch(); //
closegraph(); //
return 0;
}
/**********************************************************/
//RGB(rand() % 255, rand() % 255, rand() % 255)
// EasyX
もっと面白い経典ミニゲームはテーマを実現して、みんなに共有します。C++クラシックミニゲームまとめ
pythonクラシックミニゲームまとめ
pythonテトリスゲーム集合
JavaScript経典ゲームは遊んで止まらないです。
java経典の小さいゲームのまとめ
javascript経典ミニゲームのまとめ
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。