用c语言写的游戏

c语言可以编译手机游戏。你可以叫他去死,不过我这里有蛇的代码,你可以看看(肯定是用TC编的)

#包括

#包括

#包括

#包括

#包括

#定义输入7181

#定义ESC 283

#向上定义18432

#向下定义20480

#定义左侧19200

#定义权利19712

#ifdef __cplusplus

#define __CPPARGS...

#否则

#define __CPPARGS

#endif

void中断(* old handler)(_ _ CPPARGS);

void中断new handler(_ _ CPP args);

void SetTimer(void interrupt(* int proc)(_ _ CPPARGS));

void kill timer(void);

void Initgra(void);

void the first block(void);

void draw map(void);

void Initsnake(void);

void init food(void);

void Snake _ Headmv(void);

void标志(int,int,int,int);

void game over(void);

void Snake _ body mv(void);

void Snake _ body add(void);

void PrntScore(void);

void定时器(void);

void Win(无效);

void TheSecondBlock(void);

作废食物(void);

void Dsnkorfd(int,int,int);

无效延迟(int);

结构蛇

{ int x;int y;int颜色;}Snk用c语言编写的猜字游戏。 分类:计算机/网络操作系统/系统故障

问题描述:

请写一个小游戏程序。程序开始时,从一个文件中读取一批字,从命令行获取文件名。程序运行过程中,每次从这些单词中随机抽取一个单词,让玩家猜。玩家反复询问单词中是否出现某些字母,程序给出答案。直到人们猜出这个词(或者放弃)。

分析:

#包含stdio.h

#包含stdlib.h

#包含字符串. h

#包含时间. h

#定义最大值1024

#定义最小值50

void main()

{

FILE * fp

char c;

int I = 0;

int j = 0;

阅读文件

char str[max][min]= { 0 };

if((fp=fopen("word.txt "," r ")= = NULL)

{

printf("打不开文件word . txt \ n ");

退出(0);

}

c = fgetc(FP);

而(c!=EOF)

{

如果(c!=' ')

{

str[I][j]= c;

j;

}

其他

{

我;

j = 0;

}

c = fgetc(FP);

}

生成随机数0-i。

srand((无符号int)time(NULL));

int n = rand()/20;

while((n0)||(ni))

{

n = rand()/20;

}

Printf("得到的随机数是%d字\n ",n);

检查单词

printf(" # # # # # # # guess begin # # # # # \ n ");

printf(" \ n ");

char gs

char con = ' y

while(con=='y ')

{

Printf("请输入字母,#表示结束\ n ");

scanf("%c ",GS);

getchar();

char gue[min]= { 0 };

int flag = 0;

而(gs!='#')

{

for(int I = 0;str[n][i]!='\0';我)

{

if(str[n][i]==gs)

{

Printf("字母%c在单词\n中",GS);

flag = 1;

打破;

}

}

如果(!旗帜)

{

Printf("字母%不在单词\n "中",GS);

}

Printf("请输入字母,#表示结束\ n ");

scanf("%c ",GS);

getchar();

}

Printf("请输入你猜的单词\ n ");

scanf("%s ",gue);

getchar();

如果(!(strcmp(str[n],gue)))

{

Printf("恭喜你,你答对了!\ n ");

}

其他

{

Printf("对不起,你猜错了\ n ");

}

printf("继续?y是再次猜测,按任意键结束\ n ");

scanf("%c ",con);

getchar();

}

fclose(FP);

}

用C语言编一个小游戏,注明代码,(简单易懂,不复杂) //用C语言写的,玩石头剪刀布的小游戏。下面是源代码。

# includestdio.h

#includestdlib.h

int main()

{

Char cq[][10]={ "石头","剪刀","布" };

int guess=-1,r,youwin=0,mewin=0,daping=0,total = 0;

srand(time(NULL));

while(1)

{

r =(int)((RAND()/(RAND _ MAX 1.0))* 3);

Printf("0,石头\n1,剪刀\n2,布\n3,出口\ nI已经做了,请做:");

scanf("%d ",猜测);

if(3==guess)

{

打破;

}

其他

{

总计;

Printf("这次你给了%s,我给了%s,所以",cq[guess],CQ[r]);

if(0 = = guess 1 = = r | | 1 = = guess 2 = = r | | 2 = = guess 0 = = r)

{

youwin

Printf("你赢了!\ n ");

}

else if(guess==r)

{

大坪;

Printf("我们扯平了!\ n ");

}

其他

{

mewin

Printf("我赢了!\ n ");

}

}

}

Printf("一共玩了%d次,你赢了%d次,我赢了%d次,平了%d次!\n”、total、youwin、mewin、大平);

系统(“暂停”);

返回EXIT _ SUCCESS

}

如何用C语言写一个小游戏? “蛇”的C代码:

#包含stdio.h

#包含stdlib.h

#包含conio.h

#包含时间. h

#包含Windows.h

#定义W 78 //游戏框的宽度,x轴

#定义H 26 //游戏框的高度,y轴

int dir = 3;//方向变量,初始值为3表示“左”

int Flag = 0;//吃食物的标志(1为0,否)

int得分= 0;//玩家得分

结构食品{ int x;//食物的x坐标

int y;//食物的Y坐标

} fod//结构fod有两个成员。

struct snake { int len//长度

int速度;//速度

int x[100];

int y[100];

} snk//结构snk有四个成员。

Void gtxy( int x,int y) //控制光标移动的函数。

{ COORD coord

坐标。X = x

坐标。Y = y

SetConsoleCursorPosition(GetStdHandle(STD _ OUTPUT _ HANDLE),coord);

}

void gtxy( int x,int y);//以下语句是关于几个要使用的自制函数。

void csh();//初始化接口

void key move();//按键移动蛇。

void put fod();//放入食物

int Over();//游戏结束(1为0,否)

void setColor(无符号短p,无符号短q);//设置显示颜色

Int main() //主函数

{ csh();

while(1)

{ Sleep(snk . speed);

key move();

put fod();

if(Over())

{ system(" cls ");

gtxy(W/2 1,H/2);Printf("游戏结束!T _ _ T”);

gtxy(W/2 1,H/2 2);Printf("总玩家分数:%d ",分数);

getch();

打破;

}

}

返回0;

}

Void csh() //初始化接口

{ int I;

gtxy(0,0);

CONSOLE _ CURSOR _ INFO CURSOR _ INFO = { 1,0}//下面两行是隐藏光标的设置。

SetConsoleCursorInfo(GetStdHandle(STD _ OUTPUT _ HANDLE),cursor _ info);

for(I = 0;I = W;I = I ^ 2)//横坐标应该是偶数,因为这个要打印的字符占了2个位置。

{ setColor(2,0);//将打印颜色设置为绿色和黑色。

gtxy(i,0);printf("■");//打印上边框

gtxy(i,H);printf("■");//打印下边框

}

for(I = 1;iH;我)

{ gtxy(0,I);printf("■");//打印左边框

gtxy(W,I);printf("■");//打印右边框

}

while(1)

{ srand((无符号)时间(空));//初始化随机数生成器srand()

fod . x = rand()%(W-4)2;//随机函数rand()生成一个从0到1小于“(W-4)”加2的数。

fod . y = rand()%(H-2)1;//随机函数rand()生成一个从0到1小于“(H-2)”加1的数。

if(fod . x % 2 = = 0)break;//fod.x是食物的横坐标,如果是2的倍数(偶数)

}

setColor(12,0);//将打印颜色设置为浅红色,黑色背景。

gtxy(fod.x,fod . y);printf("●");//打印食物坐标处的初步食物。

snk . len = 3;//蛇形长度

snk.speed = 350//刷新蛇的时间就是移动速度。

snk . x[0]= W/2 1;//蛇头的横轴应该是偶数(因为W/2=39)

snk . y[0]= H/2;//蛇头纵坐标

setColor(9,0);//将打印颜色设置为浅蓝色,黑色背景。

gtxy(snk.x[0],snk . y[0]);printf("■");//打印黑鱼

for(I = 1;isnk.len我)

{ snk . x[I]= snk . x[I-1]2;snk . y[I]= snk . y[I-1];

gtxy(snk.x[i],snk . y[I]);printf("■");//打印蛇体

}

setColor(7,0);//恢复默认的白色字符和黑色背景。

返回;

}

Void keymove() //键操作移动蛇。

{ int key

If( kbhit()) //只有在有键输入的情况下才执行以下操作。

{ key = getch();

If (key==224) //值224表示已经按下了方向键,要重新获取键值。

{ key = getch();

if(key==72dir!= 2)dir = 1;//72表示向上箭头键已被按下。

if(key==80dir!= 1)dir = 2;//80向下。

if(key==75dir!= 4)dir = 3;//75在左边。

if(key==77dir!= 3)dir = 4;//77在右边。

}

if (key==32)

{ while(1)if((key = getch())= = 32)break;} //32是空格键,这里用来暂停。

}

If (Flag==0) //如果你不吃食物,执行以下操作来擦掉蛇的尾巴。

{ gtxy(snk.x[snk.len-1],snk . y[snk . len-1]);printf(" ");}

int I;

for(I = snk . len-1;I 0;I-)//从蛇头(蛇头除外)开始存储每一段中上一段的坐标值。

{ snk . x[I]= snk . x[I-1];snk . y[I]= snk . y[I-1];}

Switch (dir) //确定蛇头应该往哪个方向移动,得到最新的坐标值。

{案例1:snk . y[0]-;打破;//dir=1向上移动。

案例二:snk . y[0];打破;//dir=2向下移动。

情况三:snk . x[0]-= 2;打破;//dir=3向左移动

案例四:snk . x[0]= 2;打破;//dir=4向右移动

}

setColor(9,0);

gtxy(snk.x[0],snk . y[0]);printf("■");//打印黑鱼

If(snk . x[0]= = fod . xsnk . y[0]= = fod . y)//如果你吃了食物,请执行以下操作。

{ printf(" \ 007 ");snk.len得分= 100;snk . speed-= 5;flag = 1;} //007是铃铛。

else标志= 0;//缺失食物标志的值为0。

if(snk . speed 150)snk . speed = snk . speed 5;//作弊代码,不是为了无限提速。

}

Void putFod() //放食物进去。

{if (Flag == 1) //如果食物被吃掉,执行以下操作生成另一个食物。

{ while (1)

{ int i,n = 1;

srand((无符号)时间(空));//初始化随机数生成器srand()

fod . x = rand()%(W-4)2;//在游戏框内生成一个X坐标值。

fod . y = rand()%(H-2)1;//在游戏框内生成一个Y坐标值。

for(I = 0;i snk.lenI) //随机食物不能在蛇的身上。

{ if(fod . x = = snk . x[I]fod . y = = snk . y[I]){ n = 0;打破;} }

if(n fod . x % 2 = = 0)break;//n不为0,横坐标为偶数,则食物坐标值成功。

}

setColor(12,0);

gtxy(fod.x,fod . y);printf("●");//光标移动到获得的坐标来打印食物。

}

返回;

}

Int Over() //判断游戏是否结束的函数。

{ int I;

setColor(7,0);

gtxy(2,h1);Printf("暂停键:空格。");//在下面打印一些其他信息。

gtxy(2,H2);Printf("游戏分数:% d ",分数);

if (snk.x[0] == 0 || snk.x[0] == W)返回1;//蛇头触及左右边界。

if (snk.y[0] == 0 || snk.y[0] == H)返回1;//蛇头触及上下边界

for(I = 1;i snk.len我)

{ if(snk . x[0]= = snk . x[I]snk . y[0]= = snk . y[I])返回1;}//蛇头摸自己

返回0;//未触及边界及其本身时返回0。

}

void set color(unsigned short ForeColor = 7,unsigned short BackGroundColor = 0)

{ HANDLE HANDLE = GetStdHandle(STD _ OUTPUT _ HANDLE);

SetConsoleTextAttribute( handle,ForeColor background color * 0x 10);

}//用于设置颜色的函数

相关文章

发表新评论