贪吃蛇怎么用c语言编写(贪吃蛇怎么用c语言编写名字)

贪吃蛇怎么用C语言编写?

C语言贪吃蛇源代码必须经过相应的C/C++编译器编译成EXE文件后才能运行。 由于我们通常使用的操作系统是Windows系统,而在该系统下最长用的C/C++编译器是VC++编译器,目前在大专院校常用的版本还是VC++6.0 下面就以VC++6.0来说明编译过程:

1.在VC++6.0中通过“File”菜单下的 “Open”子菜单打开贪吃蛇代码

2.在VC++6.0中通过“Build”菜单下的 “Compile xxxx.xx”子菜单编译贪吃蛇代码

3.在VC++6.0中通过“Build”菜单下的 “Execute xxxx.exe”子菜单运行贪吃蛇程序 附:在VC++6环境下可运行的C/C++贪吃蛇源代码(无版权,自己编写,欢迎任意修改拷贝)

写学生管理系统时怎么用c语言实现读取一个txt文件里的数据?

#include#define F_PATH “d:\myfile\file.dat”char c;int main(){ FILE*fp=NULL;//需要注意 fp=fopen(F_PATH,”w”)

; //创建文件 if(NULL==fp) return -1;//要返回错误代码 while(scanf(“%c”,&c)!=EOF) fprintf(fp,”%c”,c)

; //从控制台中读入并在文本输出 fclose(fp); fp=NULL;//需要指向空,否则会指向原打开文件地址 return 0;}

c语言开发学生管理系统的目的和意义?

通过管理系统让学生知道c语言能干什么,让学生学以致用,熟悉c的语法,知道自己在学习中的欠缺。

用C语言编写的小游戏代码是什么?

最基础的贪吃蛇的代码

#include<stdio.h>

#include<windows.h>//基本型态定义。支援型态定义函数。使用者界面函数图形装置界面函数。

#include<conio.h>

//用户通过按键盘产生的对应操作(控制台)

#include<stdlib.h>

#include<time.h>//日期和时间头文件

#defineLEN30

#defineWID25

intSnake[LEN][WID]={0};

//数组的元素代表蛇的各个部位

charSna_Hea_Dir=’a’;//记录蛇头的移动方向

intSna_Hea_X,Sna_Hea_Y;//记录蛇头的位置

intSnake_Len=3;//记录蛇的长度

clock_tNow_Time;//记录当前时间,以便自动移动

intWait_Time;//记录自动移动的时间间隔

intEat_Apple=1;//吃到苹果表示为1

intLevel;

intAll_Score=-1;

intApple_Num=-1;

HANDLEhConsole=GetStdHandle(STD_OUTPUT_HANDLE);

//获取标准输出的句柄<windows.h>

//句柄:标志应用程序中的不同对象和同类对象中的不同的实例方便操控,

voidgotoxy(intx,inty)//设置光标位置

{

COORDpos={x,y};

//定义一个字符在控制台屏幕上的坐标POS

SetConsoleCursorPosition(hConsole,pos);

//定位光标位置的函数<windows.h>

}

voidHide_Cursor()//隐藏光标固定函数

{

CONSOLE_CURSOR_INFOcursor_info={1,0};

SetConsoleCursorInfo(hConsole,&cursor_info);

}

voidSetColor(intcolor)//设置颜色

{

SetConsoleTextAttribute(hConsole,color);

//是API设置字体颜色和背景色的函数格式:SetConsoleTextAttribute(句柄,颜色);

}

voidPrint_Snake()//打印蛇头和蛇的脖子和蛇尾

{

intiy,ix,color;

for(iy=0;iy<WID;++iy)

for(ix=0;ix<LEN;++ix)

{

if(Snake[ix][iy]==1)//蛇头

{

SetColor(0xf);//oxf代表分配的内存地址setcolor:34行自定义设置颜色的函数

gotoxy(ix*2,iy);

printf(“※”);

}

if(Snake[ix][iy]==2)//蛇的脖子

{

color=rand()%15+1;

//rand()函数是产生随机数的一个随机函数。C语言里还有srand()函数等。

//头文件:stdlib.h

if(color==14)

color-=rand()%13+1;

//变色

SetColor(color);

gotoxy(ix*2,iy);

printf(“■”);

}

if(Snake[ix][iy]==Snake_Len)

{

gotoxy(ix*2,iy);

SetColor(0xe);

printf(“≈”);

}

}

}

voidClear_Snake()//擦除贪吃蛇

{

intiy,ix;

for(iy=0;iy<WID;++iy)

for(ix=0;ix<LEN;++ix)

{

gotoxy(ix*2,iy);

if(Snake[ix][iy]==Snake_Len)

printf(“”);

}

}

voidRand_Apple()//随机产生苹果

{

intix,iy;

do

{

ix=rand()%LEN;

iy=rand()%WID;

}while(Snake[ix][iy]);

Snake[ix][iy]=-1;

gotoxy(ix*2,iy);

printf(“⊙”);

Eat_Apple=0;

}

voidGame_Over()//蛇死掉了

{

gotoxy(30,10);

printf(“GameOver”);

Sleep(3000);

system(“pause>nul”);

exit(0);

}

voidMove_Snake()//让蛇动起来

{

intix,iy;

for(ix=0;ix<LEN;++ix)//先标记蛇头

for(iy=0;iy<WID;++iy)

if(Snake[ix][iy]==1)

{

switch(Sna_Hea_Dir)//根据新的蛇头方向标志蛇头

{

case’w’:

if(iy==0)

Game_Over();

else

Sna_Hea_Y=iy-1;

Sna_Hea_X=ix;

break;

case’s’:

if(iy==(WID-1))

Game_Over();

else

Sna_Hea_Y=iy+1;

Sna_Hea_X=ix;

break;

case’a’:

if(ix==0)

Game_Over();

else

Sna_Hea_X=ix-1;

Sna_Hea_Y=iy;

break;

case’d’:

if(ix==(LEN-1))

Game_Over();

else

Sna_Hea_X=ix+1;

Sna_Hea_Y=iy;

break;

default:

break;

}

}

if(Snake[Sna_Hea_X][Sna_Hea_Y]!=1&&Snake[Sna_Hea_X][Sna_Hea_Y]!=0&&Snake[Sna_Hea_X][Sna_Hea_Y]!=-1)

Game_Over();

if(Snake[Sna_Hea_X][Sna_Hea_Y]<0)//吃到苹果

{

++Snake_Len;

Eat_Apple=1;

}

for(ix=0;ix<LEN;++ix)//处理蛇尾

for(iy=0;iy<WID;++iy)

{

if(Snake[ix][iy]>0)

{

if(Snake[ix][iy]!=Snake_Len)

Snake[ix][iy]+=1;

else

Snake[ix][iy]=0;

}

}

Snake[Sna_Hea_X][Sna_Hea_Y]=1;//处理蛇头

}

voidGet_Input()//控制蛇的移动方向

{

if(kbhit())

{

switch(getch())

{

case87:

Sna_Hea_Dir=’w’;

break;

case83:

Sna_Hea_Dir=’s’;

break;

case65:

Sna_Hea_Dir=’a’;

break;

case68:

Sna_Hea_Dir=’d’;

break;

default:

break;

}

}

if(clock()-Now_Time>=Wait_Time)//蛇到时间自动行走

{

Clear_Snake();

Move_Snake();

Print_Snake();

Now_Time=clock();

}

}

voidInit()//初始化

{

system(“title贪吃毛毛蛇”);

system(“modecon:cols=80lines=25”);

Hide_Cursor();

gotoxy(61,4);

printf(“YouScore:”);

gotoxy(61,6);

printf(“YouLevel:”);

gotoxy(61,8);

printf(“TheLenght:”);

gotoxy(61,10);

printf(“TheSpeed:”);

gotoxy(61,12);

printf(“AppleNum:”);

inti;

for(i=0;i<Snake_Len;++i)//生成蛇

Snake[10+i][15]=i+1;

intiy,ix;//打印蛇

for(iy=0;iy<WID;++iy)

for(ix=0;ix<LEN;++ix)

{

if(Snake[ix][iy])

{

SetColor(Snake[ix][iy]);

gotoxy(ix*2,iy);

printf(“■”);

}

}

}

voidPri_News()//打印信息

{

SetColor(0xe);

gotoxy(73,4);

All_Score+=Level;

printf(“%3d”,All_Score);

gotoxy(73,6);

printf(“%3d”,Level);

gotoxy(73,8);

printf(“%3d”,Snake_Len);

gotoxy(73,10);

printf(“0.%3ds”,Wait_Time/10);

gotoxy(73,12);

printf(“%d”,Apple_Num);

}

voidLev_Sys()//等级系统

{

if(((Apple_Num-1)/10)==Level)

{

++Level;

if(Wait_Time>50)

Wait_Time-=50;

else

if(Wait_Time>10)

Wait_Time-=10;

else

Wait_Time-=1;

}

}

intmain(void)

{

Init();

srand((unsigned)time(NULL));//设置随机数的种子

Now_Time=clock();

intspeed1=1000,speed2,a;

printf(“n”);

printf(“请输入你想要的速度n”);

scanf(“%d”,&speed2);

Level=1;

Wait_Time=speed1-speed2;

printf(“请输入你想要的苹果数n”);

scanf(“%d”,&a);

while(a–)

Rand_Apple();

while(1)

{

if(Eat_Apple)

{

++Apple_Num;

Rand_Apple();

Lev_Sys();

Pri_News();

}

Get_Input();

Sleep(10);

}

return0;

}

贪吃蛇c语言程序功能描述?

提供启动,暂停,停止游戏功能,能控制走向,能能检测到碰撞,合理判断失败条件,会逐渐加快。

c语言如何编写贪吃蛇小游戏基础?

1、游戏开始界面进行一个简单的展示,

2、选择1进入游戏,可以看到左面的游戏界面,还有旁边的说明模块

3、如果死掉的话,游戏就会结束,就会有选择阶段。

4、选择2,进行游戏的说明,需要对界面的设置,还有清屏等功能。

前期准备阶段

1首先,我们需要做一个蛇的身体,就是在界面上显示一条蛇的样子。

2下面是代码展示模块,通过输出语句组成了我们想要的蛇的样子。

3我们需要一个开始界面所以现在来绘制开始游戏界面

4画出开始游戏菜单的边框

5画出游戏菜单中间的字体以及选项框

贪吃蛇c语言代码最短?

#include <bits/stdc++.h>

#include <windows.h>

#include <conio.h>

using namespace std;

void gotoxy(int x,int y) {COORD pos={x,y}; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);}//光标定位

class Food {//食物类

private: int m_x; int m_y;

public:

void randfood() {//随机产生一个食物

srand((int)time(NULL));//利用时间添加随机数种子,需要ctime头文件

L1:{m_x=rand()%(85)+2;//2~86

m_y=rand()%(25)+2;//2~26

if(m_x%2) goto L1;//如果食物的x坐标不是偶数则重新确定食物的坐标

gotoxy(m_x,m_y);//在确认好的位置输出食物

cout << “★”;}}

int getFoodm_x() {return m_x;}//返回食物的x坐标

int getFoodm_y() {return m_y;}};//返回食物的y坐标

class Snake {

private:

struct Snakecoor {int x; int y;};//定义一个蛇的坐标机构

vector<Snakecoor> snakecoor;//将坐标存入vector容器中

//判断并改变前进方向的函数

void degdir(Snakecoor&nexthead) {//定义新的蛇头变量

static char key=’d’;//静态变量防止改变移动方向后重新改回来

if(_kbhit()) {

char temp=_getch();//定义一个临时变量储存键盘输入的值

switch(temp) {//如果临时变量的值为wasd中的一个,则赋值给key

default: break;//default是缺省情况,只有任何条件都不匹配的情况下才会执行 必须写在前面!不然蛇无法转向

case’w’: case’a’: case’s’: case’d’:

//如果temp的方向和key的方向不相反则赋值 因为两次移动方向不能相反 将蛇设置为初始向右走

if(key==’w’ && temp!=’s’ || key==’s’ && temp!=’w’ || key==’a’ && temp!=’d’ || key==’d’ && temp!=’a’) key=temp;}}

switch (key) {//根据key的值来确定蛇的移动方向

case’d’: nexthead.x=snakecoor.front().x+2; nexthead.y=snakecoor.front().y; break;

//新的蛇头的头部等于容器内第一个数据(旧蛇头)x坐标+2 因为蛇头占两个坐标,移动一次加2

case’a’: nexthead.x=snakecoor.front().x-2; nexthead.y=snakecoor.front().y; break;

case’w’: nexthead.x=snakecoor.front().x; nexthead.y=snakecoor.front().y-1; break;

//因为控制台的x长度是y的一半,所以用两个x做蛇头,需要的坐标是二倍

case’s’: nexthead.x=snakecoor.front().x; nexthead.y=snakecoor.front().y+1;}}

//游戏结束时设计一个界面输出“游戏结束”以及分数

void finmatt(const int score) {

system(“cls”); gotoxy(40, 14);//清屏然后输出

cout << “游戏结束”; gotoxy(40, 16);

cout << “得分:” << score; gotoxy(0, 26);

exit(0);}//exit为C++的退出函数 exit(0)表示程序正常退出,非0表示非正常退出

void finishgame(const int score) {//游戏结束

if(snakecoor[0].x>=88 || snakecoor[0].x<0 || snakecoor[0].y>=28 || snakecoor[0].y<0) finmatt(score);//撞墙

for(int i=1;i<snakecoor.size();i++) if(snakecoor[0].x==snakecoor[i].x && snakecoor[0].y==snakecoor[i].y) finmatt(score

版权声明