1. 首页 > 手游资讯

c大型手机游戏源码 超大型手机游戏

作者:admin 更新时间:2024-12-02
摘要:c语言游戏代码大全(收录100多款经典游戏源码)C语言是一种广泛使用的编程语言,其强大的功能和高效的性能使其成为游戏开发的首选语言。本文将介绍100多款经典游戏的C语言源码,供游戏开发,c大型手机游戏源码 超大型手机游戏

 

c语言游戏代码大全(收录100多款经典游戏源码)

C语言是一种广泛使用的编程语言,其强大的功能和高效的性能使其成为游戏开发的首选语言。本文将介绍100多款经典游戏的C语言源码,供游戏开发者学习和参考。

操作步骤

Step1:下载源码

访问Github上的C语言游戏代码大全仓库,找到需要的游戏源码,点击“Download”按钮下载源码压缩包。

Step2:解压源码

使用解压软件将下载的源码压缩包解压到本地硬盘上。

Step3:编译源码

使用C语言编译器(如GCC)编译源码,生成可执行文件。

Step4:运行游戏

运行生成的可执行文件,开始游戏。

经典游戏源码

1.俄罗斯方块

俄罗斯方块是一款经典的益智游戏,玩家需要通过旋转和移动方块,使其在下落过程中排列成完整的一行或多行,从而消除方块并得分。

操作步骤

使用方向键控制方块移动和旋转,按空格键加速方块下落。

2.扫雷

扫雷是一款经典的单人益智游戏,玩家需要根据周围的数字推断出隐藏在方格中的地雷位置,最终揭开所有非地雷方格并得分。

操作步骤

使用鼠标左键点击方格揭开,使用鼠标右键标记可能的地雷位置。

3.贪吃蛇

贪吃蛇是一款经典的单人游戏,玩家需要通过控制一条蛇在屏幕上移动,吃掉食物并不断成长,直到撞到墙壁或自己的身体为止。

操作步骤

使用方向键控制蛇的移动方向,吃到食物后蛇的长度加1。

4.五子棋

五子棋是一款经典的两人对弈游戏,玩家需要通过在棋盘上下棋,先在横、竖、斜方向上连成五子的一方获胜。

操作步骤

使用鼠标点击棋盘上的空格下棋,先连成五子的一方获胜。

5.推箱子

推箱子是一款经典的益智游戏,玩家需要通过推动箱子使其到达指定位置,最终完成所有关卡。

操作步骤

使用方向键控制人物移动和推动箱子,将箱子推到指定位置即可过关。

C语言的贪吃蛇源代码

//******友情提示:如想速度快点,请改小_sleep(500)函数中参数*****

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

#include<string.h>

#include<time.h>

constintH=8;//地图的高

constintL=16;//地图的长

charGameMap[H][L];//游戏地图

intkey;//按键保存

intsum=1,over=0;//蛇的长度,游戏结束(自吃或碰墙)

intdx[4]={0,0,-1,1};//左、右、上、下的方向

intdy[4]={-1,1,0,0};

structSnake//蛇的每个节点的数据类型

{

intx,y;//左边位置

intnow;//保存当前节点的方向,0,1,2,3分别为左右上下

}Snake[H*L];

constcharShead='@';//蛇头

constcharSbody='#';//蛇身

constcharSfood='*';//食物

constcharSnode='.';//'.'在地图上标示为空

voidInitial();//地图的初始化

voidCreate_Food();//在地图上随机产生食物

voidShow();//刷新显示地图

voidButton();//取出按键,并判断方向

voidMove();//蛇的移动

voidCheck_Border();//检查蛇头是否越界

voidCheck_Head(intx,inty);//检查蛇头移动后的位置情况

intmain()

{

Initial();

Show();

return0;

}

voidInitial()//地图的初始化

{

inti,j;

inthx,hy;

system("title贪吃蛇");//控制台的标题

memset(GameMap,'.',sizeof(GameMap));//初始化地图全部为空'.'

system("cls");

srand(time(0));//随机种子

hx=rand()%H;//产生蛇头

hy=rand()%L;

GameMap[hx][hy]=Shead;

Snake[0].x=hx;Snake[0].y=hy;

Snake[0].now=-1;

Create_Food();//随机产生食物

for(i=0;i<H;i++)//地图显示

{

for(j=0;j<L;j++)

printf("%c",GameMap[i][j]);

printf("\n");

}

printf("\n小小C语言贪吃蛇\n");

printf("按任意方向键开始游戏\n");

getch();//先接受一个按键,使蛇开始往该方向走

Button();//取出按键,并判断方向

}

voidCreate_Food()//在地图上随机产生食物

{

intfx,fy;

while(1)

{

fx=rand()%H;

fy=rand()%L;

if(GameMap[fx][fy]=='.')//不能出现在蛇所占有的位置

{

GameMap[fx][fy]=Sfood;

break;

}

}

}

voidShow()//刷新显示地图

{

inti,j;

while(1)

{

_sleep(500);//延迟半秒(1000为1s),即每半秒刷新一次地图

Button();//先判断按键在移动

Move();

if(over)//自吃或碰墙即游戏结束

{

printf("\n**游戏结束**\n");

printf(">_<\n");

getchar();

break;

}

system("cls");//清空地图再显示刷新吼的地图

for(i=0;i<H;i++)

{

for(j=0;j<L;j++)

printf("%c",GameMap[i][j]);

printf("\n");

}

printf("\n小小C语言贪吃蛇\n");

printf("按任意方向键开始游戏\n");

}

}

voidButton()//取出按键,并判断方向

{

if(kbhit()!=0)//检查当前是否有键盘输入,若有则返回一个非0值,否则返回0

{

while(kbhit()!=0)//可能存在多个按键,要全部取完,以最后一个为主

key=getch();//将按键从控制台中取出并保存到key中

switch(key)

{//左

case75:Snake[0].now=0;

break;

//右

case77:Snake[0].now=1;

break;

//上

case72:Snake[0].now=2;

break;

//下

case80:Snake[0].now=3;

break;

}

}

}

voidMove()//蛇的移动

{

inti,x,y;

intt=sum;//保存当前蛇的长度

//记录当前蛇头的位置,并设置为空,蛇头先移动

x=Snake[0].x;y=Snake[0].y;GameMap[x][y]='.';

Snake[0].x=Snake[0].x+dx[Snake[0].now];

Snake[0].y=Snake[0].y+dy[Snake[0].now];

Check_Border();//蛇头是否越界

Check_Head(x,y);//蛇头移动后的位置情况,参数为:蛇头的开始位置

if(sum==t)//未吃到食物即蛇身移动哦

for(i=1;i<sum;i++)//要从蛇尾节点向前移动哦,前一个节点作为参照

{

if(i==1)//尾节点设置为空再移动

GameMap[Snake[i].x][Snake[i].y]='.';

if(i==sum-1)//为蛇头后面的蛇身节点,特殊处理

{

Snake[i].x=x;

Snake[i].y=y;

Snake[i].now=Snake[0].now;

}

else//其他蛇身即走到前一个蛇身位置

{

Snake[i].x=Snake[i+1].x;

Snake[i].y=Snake[i+1].y;

Snake[i].now=Snake[i+1].now;

}

GameMap[Snake[i].x][Snake[i].y]='#';//移动后要置为'#'蛇身

}

}

voidCheck_Border()//检查蛇头是否越界

{

if(Snake[0].x<0||Snake[0].x>=H

||Snake[0].y<0||Snake[0].y>=L)

over=1;

}

voidCheck_Head(intx,inty)//检查蛇头移动后的位置情况

{

if(GameMap[Snake[0].x][Snake[0].y]=='.')//为空

GameMap[Snake[0].x][Snake[0].y]='@';

else

if(GameMap[Snake[0].x][Snake[0].y]=='*')//为食物

{

GameMap[Snake[0].x][Snake[0].y]='@';

Snake[sum].x=x;//新增加的蛇身为蛇头后面的那个

Snake[sum].y=y;

Snake[sum].now=Snake[0].now;

GameMap[Snake[sum].x][Snake[sum].y]='#';

sum++;

Create_Food();//食物吃完了马上再产生一个食物

}

else

over=1;

}

C语言简易文字冒险游戏源代码

记忆游戏

#include<stdio.h>

#include<time.h>

#include<stdlib.h>

#include<windows.h>

#defineN10

intmain()

{inti,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=0;k<N;k++)a[k]=rand()%N;

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

for(k=0;k<N;k++)

{switch(a[k])

{case0:system("color90");printf("0:淡蓝色\n");break;//淡蓝色

case1:system("colorf0");printf("1:白色\n");break;//白色

case2:system("colorc0");printf("2:淡红色\n");break;//淡红色

case3:system("colord0");printf("3:淡紫色\n");break;//淡紫色

case4:system("color80");printf("4:灰色\n");break;//灰色

case5:system("colore0");printf("5:黄色\n");break;//黄色

case6:system("color10");printf("6:蓝色\n");break;//蓝色

case7:system("color20");printf("7:绿色\n");break;//绿色

case8:system("color30");printf("8:浅绿色\n");break;//浅绿色

case9:system("color40");printf("9:红色\n");break;//红色

}

Sleep(1500);

system("colorf");//单个控制文字颜色

Sleep(100);

}

system("cls");

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

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

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

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

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

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

elseif(f<5)printf("你的记忆一般<5\n");

elseprintf("你的记忆力很强!\n");

Sleep(2000);

system("cls");

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

scanf("%d",&n);

system("cls");

}

return0;

}

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