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

Python014

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

“猜数字小游戏”,每个数字后按空格,最后按回车确认

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

int a[4],b[4]

int count=0  //计算猜测次数

void csh( )  //初始化

void start( )  //开始游戏

int main( )

{ csh( )

start( )

}

void csh( )  //初始化

{ printf("\n\n         猜  数  字  小  游  戏\n\n")

printf(“    猜四个数字,如数字与顺序都正确记为A,数字正确位置不对记为B.\n”)

}

void start( )  //开始游戏

{int m,n  //m是完全猜对的个数,n是顺序不对的个数

while(1)

{srand((unsigned)time(NULL))  //初始化随机数发生器srand( )

while(1) { for(int i=0i<4i++) a[i]=rand( )%10 //rand( )函数每次随机产生一个0-9的数

if( (a[3]!=a[2]&&a[3]!=a[1]&&a[3]!=a[0])&&

(a[2]!=a[1]&&a[2]!=a[0])&&a[1]!=a[0] ) break}  //4个随机数各自不相等

printf("    请依次输入4个一位整数:\n\n   ")

while(1)

{for(int i=0i<4i++) scanf(“%d”,&b[i])

printf("    你输入的是:%d  %d  %d  %d ",b[0],b[1],b[2],b[3])

m=0n=0

for(int i=0i<4i++)

{for(int j=0j<4j++)

{ if(b[i]==a[j]&&i==j)m=m+1if(b[i]==a[j]&&i!=j)n=n+1}

}

count=count+1

printf("      %dA  %dB   你试了%d次\n   ",m,n,count)

if(m==4)break

if(count==8){ count=0break}

}

printf("\n")

if(m==4)printf("     你猜对了(^-^)! 就是:%d %d %d %d\n",a[0],a[1],a[2],a[3])

else printf("     你输了(T-T)!哈哈!应该是:%d %d %d %d\n",a[0],a[1],a[2],a[3])

int z

printf("     (要继续吗?1或0)\n   ")

scanf(“%d”,&z)

if(z==0) break

}

}

#include \x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0a\x0d\x0a#define U 1\x0d\x0a#define D 2\x0d\x0a#define L 3\x0d\x0a#define R 4 //蛇的状态,U:上 ;D:下;L:左 R:右\x0d\x0a\x0d\x0atypedef struct SNAKE { //蛇身的一个节点\x0d\x0aint x\x0d\x0aint y\x0d\x0astruct SNAKE *next\x0d\x0a} snake\x0d\x0a\x0d\x0a//全局变量//\x0d\x0aint score=0,add=10//总得分与每次吃食物得分。\x0d\x0aint status,sleeptime=200//每次运行的时间间隔\x0d\x0asnake *head, *food//蛇头指针,食物指针\x0d\x0asnake *q//遍历蛇的时候用到的指针\x0d\x0aint endgamestatus=0//游戏结束的情况,1:撞到墙;2:咬到自己;3:主动退出游戏。\x0d\x0a\x0d\x0a//声明全部函数//\x0d\x0avoid Pos()\x0d\x0avoid creatMap()\x0d\x0avoid initsnake()\x0d\x0aint biteself()\x0d\x0avoid createfood()\x0d\x0avoid cantcrosswall()\x0d\x0avoid snakemove()\x0d\x0avoid pause()\x0d\x0avoid gamecircle()\x0d\x0avoid welcometogame()\x0d\x0avoid endgame()\x0d\x0avoid gamestart()\x0d\x0a\x0d\x0avoid Pos(int x,int y)//设置光标位置\x0d\x0a{\x0d\x0aCOORD pos\x0d\x0aHANDLE hOutput\x0d\x0apos.X=x\x0d\x0apos.Y=y\x0d\x0ahOutput=GetStdHandle(STD_OUTPUT_HANDLE)\x0d\x0aSetConsoleCursorPosition(hOutput,pos)\x0d\x0a}\x0d\x0a\x0d\x0avoid creatMap()//创建地图\x0d\x0a{\x0d\x0aint i\x0d\x0afor(i=0ix=24\x0d\x0atail->y=5\x0d\x0atail->next=NULL\x0d\x0afor(i=1inext=tail\x0d\x0ahead->x=24+2*i\x0d\x0ahead->y=5\x0d\x0atail=head\x0d\x0a}\x0d\x0awhile(tail!=NULL) { //从头到为,输出蛇身\x0d\x0aPos(tail->x,tail->y)\x0d\x0aprintf("■")\x0d\x0atail=tail->next\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0aint biteself()//判断是否咬到了自己\x0d\x0a{\x0d\x0asnake *self\x0d\x0aself=head->next\x0d\x0awhile(self!=NULL) {\x0d\x0aif(self->x==head->x &&self->y==head->y) {\x0d\x0areturn 1\x0d\x0a}\x0d\x0aself=self->next\x0d\x0a}\x0d\x0areturn 0\x0d\x0a}\x0d\x0a\x0d\x0avoid createfood()//随机出现食物\x0d\x0a{\x0d\x0asnake *food_1\x0d\x0asrand((unsigned)time(NULL))\x0d\x0afood_1=(snake*)malloc(sizeof(snake))\x0d\x0awhile((food_1->x%2)!=0) { //保证其为偶数,使得食物能与蛇头对其\x0d\x0afood_1->x=rand()%52+2\x0d\x0a}\x0d\x0afood_1->y=rand()%24+1\x0d\x0aq=head\x0d\x0awhile(q->next==NULL) {\x0d\x0aif(q->x==food_1->x &&q->y==food_1->y) { //判断蛇身是否与食物重合\x0d\x0afree(food_1)\x0d\x0acreatefood()\x0d\x0a}\x0d\x0aq=q->next\x0d\x0a}\x0d\x0aPos(food_1->x,food_1->y)\x0d\x0afood=food_1\x0d\x0aprintf("■")\x0d\x0a}\x0d\x0a\x0d\x0avoid cantcrosswall()//不能穿墙\x0d\x0a{\x0d\x0aif(head->x==0 || head->x==56 ||head->y==0 || head->y==26) {\x0d\x0aendgamestatus=1\x0d\x0aendgame()\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0avoid snakemove()//蛇前进,上U,下D,左L,右R\x0d\x0a{\x0d\x0asnake * nexthead\x0d\x0acantcrosswall()\x0d\x0a\x0d\x0anexthead=(snake*)malloc(sizeof(snake))\x0d\x0aif(status==U) {\x0d\x0anexthead->x=head->x\x0d\x0anexthead->y=head->y-1\x0d\x0aif(nexthead->x==food->x &&nexthead->y==food->y) { //如果下一个有食物//\x0d\x0anexthead->next=head\x0d\x0ahead=nexthead\x0d\x0aq=head\x0d\x0awhile(q!=NULL) {\x0d\x0aPos(q->x,q->y)\x0d\x0aprintf("■")\x0d\x0aq=q->next\x0d\x0a}\x0d\x0ascore=score+add\x0d\x0acreatefood()\x0d\x0a} else { //如果没有食物//\x0d\x0anexthead->next=head\x0d\x0ahead=nexthead\x0d\x0aq=head\x0d\x0awhile(q->next->next!=NULL) {\x0d\x0aPos(q->x,q->y)\x0d\x0aprintf("■")\x0d\x0aq=q->next\x0d\x0a}\x0d\x0aPos(q->next->x,q->next->y)\x0d\x0aprintf(" ")\x0d\x0afree(q->next)\x0d\x0aq->next=NULL\x0d\x0a}\x0d\x0a}\x0d\x0aif(status==D) {\x0d\x0anexthead->x=head->x\x0d\x0anexthead->y=head->y+1\x0d\x0aif(nexthead->x==food->x &&nexthead->y==food->y) { //有食物\x0d\x0anexthead->next=head\x0d\x0ahead=nexthead\x0d\x0aq=head\x0d\x0awhile(q!=NULL) {\x0d\x0aPos(q->x,q->y)\x0d\x0aprintf("■")\x0d\x0aq=q->next\x0d\x0a}\x0d\x0ascore=score+add\x0d\x0acreatefood()\x0d\x0a} else { //没有食物\x0d\x0anexthead->next=head\x0d\x0ahead=nexthead\x0d\x0aq=head\x0d\x0awhile(q->next->next!=NULL) {\x0d\x0aPos(q->x,q->y)\x0d\x0aprintf("■")\x0d\x0aq=q->next\x0d\x0a}\x0d\x0aPos(q->next->x,q->next->y)\x0d\x0aprintf(" ")\x0d\x0afree(q->next)\x0d\x0aq->next=NULL\x0d\x0a}\x0d\x0a}\x0d\x0aif(status==L) {\x0d\x0anexthead->x=head->x-2\x0d\x0anexthead->y=head->y\x0d\x0aif(nexthead->x==food->x &&nexthead->y==food->y) { //有食物\x0d\x0anexthead->next=head\x0d\x0ahead=nexthead\x0d\x0aq=head\x0d\x0awhile(q!=NULL) {\x0d\x0aPos(q->x,q->y)\x0d\x0aprintf("■")\x0d\x0aq=q->next\x0d\x0a}\x0d\x0ascore=score+add\x0d\x0acreatefood()\x0d\x0a} else {//没有食物\x0d\x0anexthead->next=head\x0d\x0ahead=nexthead\x0d\x0aq=head\x0d\x0awhile(q->next->next!=NULL) {\x0d\x0aPos(q->x,q->y)\x0d\x0aprintf("■")\x0d\x0aq=q->next\x0d\x0a}\x0d\x0aPos(q->next->x,q->next->y)\x0d\x0aprintf(" ")\x0d\x0afree(q->next)\x0d\x0aq->next=NULL\x0d\x0a}\x0d\x0a}\x0d\x0aif(status==R) {\x0d\x0anexthead->x=head->x+2\x0d\x0anexthead->y=head->y\x0d\x0aif(nexthead->x==food->x &&nexthead->y==food->y) { //有食物\x0d\x0anexthead->next=head\x0d\x0ahead=nexthead\x0d\x0aq=head\x0d\x0awhile(q!=NULL) {\x0d\x0aPos(q->x,q->y)\x0d\x0aprintf("■")\x0d\x0aq=q->next\x0d\x0a}\x0d\x0ascore=score+add\x0d\x0acreatefood()\x0d\x0a} else { //没有食物\x0d\x0anexthead->next=head\x0d\x0ahead=nexthead\x0d\x0aq=head\x0d\x0awhile(q->next->next!=NULL) {\x0d\x0aPos(q->x,q->y)\x0d\x0aprintf("■")\x0d\x0aq=q->next\x0d\x0a}\x0d\x0aPos(q->next->x,q->next->y)\x0d\x0aprintf(" ")\x0d\x0afree(q->next)\x0d\x0aq->next=NULL\x0d\x0a}\x0d\x0a}\x0d\x0aif(biteself()==1) { //判断是否会咬到自己\x0d\x0aendgamestatus=2\x0d\x0aendgame()\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0avoid pause()//暂停\x0d\x0a{\x0d\x0awhile(1) {\x0d\x0aSleep(300)\x0d\x0aif(GetAsyncKeyState(VK_SPACE)) {\x0d\x0abreak\x0d\x0a}\x0d\x0a\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0avoid gamecircle()//控制游戏\x0d\x0a{\x0d\x0a\x0d\x0aPos(64,15)\x0d\x0aprintf("不能穿墙,不能咬到自己\n")\x0d\x0aPos(64,16)\x0d\x0aprintf("用↑.↓.←.→分别控制蛇的移动.")\x0d\x0aPos(64,17)\x0d\x0aprintf("F1 为加速,F2 为减速\n")\x0d\x0aPos(64,18)\x0d\x0aprintf("ESC :退出游戏.space:暂停游戏.")\x0d\x0aPos(64,20)\x0d\x0a//\x0d\x0astatus=R\x0d\x0awhile(1) {\x0d\x0aPos(64,10)\x0d\x0aprintf("得分:%d ",score)\x0d\x0aPos(64,11)\x0d\x0aprintf("每个食物得分:%d分",add)\x0d\x0aif(GetAsyncKeyState(VK_UP) &&status!=D) {\x0d\x0astatus=U\x0d\x0a} else if(GetAsyncKeyState(VK_DOWN) &&status!=U) {\x0d\x0astatus=D\x0d\x0a} else if(GetAsyncKeyState(VK_LEFT)&&status!=R) {\x0d\x0astatus=L\x0d\x0a} else if(GetAsyncKeyState(VK_RIGHT)&&status!=L) {\x0d\x0astatus=R\x0d\x0a} else if(GetAsyncKeyState(VK_SPACE)) {\x0d\x0apause()\x0d\x0a} else if(GetAsyncKeyState(VK_ESCAPE)) {\x0d\x0aendgamestatus=3\x0d\x0abreak\x0d\x0a} else if(GetAsyncKeyState(VK_F1)) {\x0d\x0aif(sleeptime>=50) {\x0d\x0asleeptime=sleeptime-30\x0d\x0aadd=add+2\x0d\x0aif(sleeptime==320) {\x0d\x0aadd=2//防止减到1之后再加回来有错\x0d\x0a}\x0d\x0a}\x0d\x0a} else if(GetAsyncKeyState(VK_F2)) {\x0d\x0aif(sleeptime 回答于 2022-11-16

记忆游戏

#include<stdio.h>

#include<time.h>

#include<stdlib.h>

#include<windows.h>

#define N 10

int main(  )

{int i,k,n,a[N],b[N],f=0

srand(time(NULL))

printf("  按1开始\n  按0退出:_")

scanf("%d",&n)

system("cls")

while(n!=0)

{for(k=0k<Nk++)a[k] = rand( )%N

printf("\n\t\t[请您牢记看到颜色的顺序]\n\n")

for(k=0k<Nk++)

{switch(a[k])

{case 0:system("color 90")printf("  0:淡蓝色\n")break  //淡蓝色

case 1:system("color f0")printf("  1:白色\n")break  //白色

case 2:system("color c0")printf("  2:淡红色\n")break  //淡红色

case 3: system("color d0")printf("  3:淡紫色\n")break  //淡紫色

case 4: system("color 80")printf("  4:灰色\n") break  //灰色

case 5: system("color e0")printf("  5:黄色\n")break  //黄色

case 6: system("color 10")printf("  6:蓝色\n") break  //蓝色

case 7: system("color 20")printf("  7:绿色\n")break  //绿色

case 8: system("color 30")printf("  8:浅绿色\n")break  //浅绿色

case 9: system("color 40")printf("  9:红色\n")break  //红色

}

Sleep(1500)

system("color f")  //单个控制 文字颜色

Sleep(100)

}

system("cls")

printf(" 0:淡蓝色,1:白色,2:淡红色,3:淡紫色,4:灰色,5:黄色,6:蓝色7:绿色,8:浅绿色,9:红色\n")

printf("\n\t请输入颜色的顺序:")

for(k=0k<Nk++)scanf("%d",&b[k])

for(k=0k<Nk++)if(a[k] == b[k]) f++

if(f==0) printf("  你的记忆弱爆了0\n")

else if(f==1) printf("  你的记忆有点弱1\n")

else if(f<5) printf("  你的记忆一般<5\n")

else printf("  你的记忆力很强!\n")

Sleep(2000)

system("cls")

printf("\t\t按0退出\n\t\t按任意键继续游戏:\n")

scanf("%d",&n)

system("cls")

}

return 0

}

注:DEVc++运行通过,每输入一个数字要加入一个空格。