用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);
}//用于设置颜色的函数
最后更新于 2023-10-11 14:28:52 并被添加「」标签,已有 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
相关文章