c语言编写格斗小游戏(如何使用C语言编写简单小游戏)
本文目录
- 如何使用C语言编写简单小游戏
- 求帮忙写一个C语言的猜拳小游戏
- 大叔用C语言实现俄罗斯方块小游戏,高手在民间!
- 关于一个c语言实现猜拳小游戏的程序 输出有点点问题 求大神解救!
- 使用C语言编写小游戏的方法是什么
- 怎样用C语言编写一个小游戏
- 怎么制作格斗游戏
如何使用C语言编写简单小游戏
C语言是计算机专业都要学习的一门基础学科。一般来说,是比较枯燥的.那么,我们能不能通过编一些小游戏来提高它的趣味性呢?这样学习程序设计,就不会是一件艰苦 ,枯燥的事,它变得象电脑游戏一样充满好奇,富有乐趣。
例如2048这款游戏:
方法/步骤:
#include《*****》
#include《*****》
#include《*****》
#include《*****》
#include《*****》
#define SIZE 4
static int score=0;
void putn(int n);
void getn(int n);
int isempty(int n);
int isfull(int n);
void math(int n,char c);
void tow(int n);
void toa(int n);
void tos(int n);
void tod(int n);
//主函数
int main()
{
int i,j;
int n;
char c=’ ’;
for(i=0;i《SIZE;i++)
{
for(j=0;j《SIZE;j++)
{
n=0;
}
}
printf( "***********************\n"
" 2048(%dX%d) \n"
" control:W/A/S/D \n"
"press any key to begin \n"
"***********************\n",SIZE,SIZE);
getch();
system("cls");
//n=2048;
//n=2048;
while(1)
{
if(isempty(n))
getn(n);
putn(n);
if(!isempty(n)&&isfull(n))
break;
sleep(200);
c=getch();
while(c!=’w’&&c!=’a’&&c!=’s’&&c!=’d’)
c=getch();
math(n,c);
system("cls");
}
printf(" Game Over!\n",score);
return 0;
}
//函数
void putn(int n)
{
int i,j;
for(i=0;i《SIZE;i++)
{
for(j=0;j《SIZE;j++)
printf("| ");
printf("|\n");
for(j=0;j《SIZE;j++)
{
if(n==0)
printf("| ");
else
printf("|%4d ",n);
}
printf("|\n");
for(j=0;j《SIZE;j++)
printf("|_____");
printf("|\n");
}
printf("score: %d",score);
}
void getn(int n)
{
int a,b;
a=rand()%SIZE;
b=rand()%SIZE;
while(n!=0)
{
a=rand()%SIZE;
b=rand()%SIZE;
}
n=2;
}
int isempty(int n)
{
int i,j,count=0;
for(i=0;i《SIZE;i++)
for(j=0;j《SIZE;j++)
if(n==0)
count++;
return count;
}
int isfull(int n)
{
int i,j,count=0;
for(i=0;i《SIZE;i++)
{
for(j=1;j《SIZE-1;j++)
{
if(n)
count++;
}
}
for(j=0;j《SIZE;j++)
{
for(i=1;i《SIZE-1;i++)
{
if(n)
count++;
}
}
return count》0?0:1;
}
void math(int n,char c)
{
switch(c)
{
case ’w’:tow(n);break;
case ’a’:toa(n);break;
case ’s’:tos(n);break;
case ’d’:tod(n);break;
default :;
}
}
void tow(int n)
{
int i,j,a;
int m;
for(a=0;a《SIZE;a++)
m=0;
for(j=0;j《SIZE;j++)
{
for(a=0;a《SIZE;a++)
{
for(i=0;i《SIZE-1;i++)
{
if(n==0)
{
n;
n=0;
}
}
}
}
for(j=0;j《SIZE;j++)
{
for(a=0,i=0;i《SIZE;i++)
{
if(n==2048)
{
m;
n=0;
}
else if(n)
{
m;
score+=m;
n=0;
}
}
for(i=0;i《SIZE;i++)
{
n;
m=0;
}
}
}
void toa(int n)
{
int i,j,a;
int m;
for(a=0;a《SIZE;a++)
m=0;
for(i=0;i《SIZE;i++)
{
for(a=0;a《SIZE;a++)
{
for(j=0;j《SIZE-1;j++)
{
if(n==0)
{
n;
n=0;
}
}
}
}
for(i=0;i《SIZE;i++)
{
for(a=0,j=0;j《SIZE;j++)
{
if(n==2048)
{
m;
n=0;
}
else if(n)
{
m;
score+=m;
n=0;
}
}
for(j=0;j《SIZE;j++)
{
n;
m=0;
}
}
}
void tos(int n)
{
int i,j,a;
int m;
for(a=0;a《SIZE;a++)
m=0;
for(j=SIZE-1;j》=0;j--)
{
for(a=SIZE-1;a》=0;a--)
{
for(i=SIZE-1;i》0;i--)
{
if(n==0)
{
n;
n=0;
}
}
}
}
for(j=SIZE-1;j》=0;j--)
{
for(a=SIZE-1,i=SIZE-1;i》=0;i--)
{
if(n==2048)
{
m;
n=0;
}
else if(n)
{
m;
score+=m;
n=0;
}
}
for(i=SIZE-1;i》=0;i--)
{
n;
m=0;
}
}
}
void tod(int n)
{
int i,j,a;
int m;
for(a=0;a《SIZE;a++)
m=0;
for(i=SIZE-1;i》=0;i--)
{
for(a=SIZE-1;a》=0;a--)
{
for(j=SIZE-1;j》0;j--)
{
if(n==0)
{
n;
n=0;
}
}
}
}
for(i=SIZE-1;i》=0;i--)
{
for(a=SIZE-1,j=SIZE-1;j》=0;j--)
{
if(n==2048)
{
m;
n=0;
}
else if(n)
{
m;
score+=m;
n=0;
}
}
for(j=SIZE-1;j》=0;j--)
{
n;
m=0;
}
}
}
求帮忙写一个C语言的猜拳小游戏
import *****;
public class aaa{
public static void main(String args){
int count1 = 0;
int count2 = 0;
String dnc = "";
String nic = "";
while(true){
int dn = (int)(*****()*3+1);
int ni = 0;
while(true){
*****("请输入1-3的数字");
Scanner s1 = new Scanner(*****);
ni = *****();
if(ni》=1 && ni《=3){
break;
}
}
if(ni==1){
nic = "石头";
}else if(ni==2){
nic = "剪刀";
}else{
nic = "布";
}
if(dn==1){
dnc = "石头";
}else if(dn==2){
dnc = "剪刀";
}else{
dnc = "布";
}
if(dn==1 && ni==2 || dn==2 && ni==3 || dn==3 && ni==1){
*****("电脑赢了1次!电脑出:"+dnc+",你出:"+nic+"");
count1++;
}else if(dn==ni){
*****("平局!电脑出:"+dnc+",你出:"+nic+"");
}else{
*****("你赢了1次!电脑出:"+dnc+",你出:"+nic+"");
count2++;
}
if(count1==2){
*****("三局两胜,电脑赢了!");
break;
}else if(count2==2){
*****("三局两胜,你赢了!");
break;
}
}
}
}
这个是个Java源代码 是Java文件 在DOS命令框运行 至于C语言不了解 但是C语言和Java语言基本上相似,所以写了这段代码 希望可以帮到你
大叔用C语言实现俄罗斯方块小游戏,高手在民间!
我这次给大家带来的是,俄罗斯方块的小 游戏 ,在这个程序中,我们几乎用到了之前所有的知识点,还用到了一些ege库里边的函数和功能,比如:按键处理,文字输出、图形绘制,还有图片的显示等。
主要为大家详细介绍了Linux下C语言实现俄罗斯方块小 游戏 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
下面是我整理的C++资料,私信我“01”就可以获取了
游戏 欢迎界面
游戏 主界面:
游戏 结束界面:
我们看到的 游戏 池中所有的方块(包括正在下落的模块),都是根据上述的结构体pool中的数据在屏幕中打印出来的结果。也就是我们通过不断更改pool结构体中的数据,然后再将pool中的数据不停的显示到屏幕,就变成了我们看到的模块的移动、翻转、消行等效果。
C语言实现俄罗斯方块小 游戏 的制作代码,具体内容如下
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我下次的作品。
关于一个c语言实现猜拳小游戏的程序 输出有点点问题 求大神解救!
两个问题
1、
c="石头"。类似这里,你感觉错了吧
2、
判断有点错误,a是石头,b是布。那么逻辑上a《b,但是b赢了
所以,不能这么判断。
等于也就是平局没问题
判断输赢需要这么判断
if(a==(b+1)%3)电脑赢
else if((a+1)%3==b)你赢
else 平局
使用C语言编写小游戏的方法是什么
//声明
#include《*****》
#include《*****》
#include《*****》
#include《*****》
#include《*****》
#define SIZE 4
static int score=0;
void putn(int n);
void getn(int n);
int isempty(int n);
int isfull(int n);
void math(int n,char c);
void tow(int n);
void toa(int n);
void tos(int n);
void tod(int n);
//主函数
int main()
{
int i,j;
int n;
char c=’ ’;
for(i=0;i《SIZE;i++)
{
for(j=0;j《SIZE;j++)
{
n=0;
}
}
printf( "***********************\n"
" 2048(%dX%d) \n"
" control:W/A/S/D \n"
"press any key to begin \n"
"***********************\n",SIZE,SIZE);
getch();
system("cls");
//n=2048;
//n=2048;
while(1)
{
if(isempty(n))
getn(n);
putn(n);
if(!isempty(n)&&isfull(n))
break;
sleep(200);
c=getch();
while(c!=’w’&&c!=’a’&&c!=’s’&&c!=’d’)
c=getch();
math(n,c);
system("cls");
}
printf(" Game Over!\n",score);
return 0;
}
//函数
void putn(int n)
{
int i,j;
for(i=0;i《SIZE;i++)
{
for(j=0;j《SIZE;j++)
printf("| ");
printf("|\n");
for(j=0;j《SIZE;j++)
{
if(n==0)
printf("| ");
else
printf("|%4d ",n);
}
printf("|\n");
for(j=0;j《SIZE;j++)
printf("|_____");
printf("|\n");
}
printf("score: %d",score);
}
void getn(int n)
{
int a,b;
a=rand()%SIZE;
b=rand()%SIZE;
while(n!=0)
{
a=rand()%SIZE;
b=rand()%SIZE;
}
n=2;
}
int isempty(int n)
{
int i,j,count=0;
for(i=0;i《SIZE;i++)
for(j=0;j《SIZE;j++)
if(n==0)
count++;
return count;
}
int isfull(int n)
{
int i,j,count=0;
for(i=0;i《SIZE;i++)
{
for(j=1;j《SIZE-1;j++)
{
if(n)
count++;
}
}
for(j=0;j《SIZE;j++)
{
for(i=1;i《SIZE-1;i++)
{
if(n)
count++;
}
}
return count》0?0:1;
}
void math(int n,char c)
{
switch(c)
{
case ’w’:tow(n);break;
case ’a’:toa(n);break;
case ’s’:tos(n);break;
case ’d’:tod(n);break;
default :;
}
}
void tow(int n)
{
int i,j,a;
int m;
for(a=0;a《SIZE;a++)
m=0;
for(j=0;j《SIZE;j++)
{
for(a=0;a《SIZE;a++)
{
for(i=0;i《SIZE-1;i++)
{
if(n==0)
{
n;
n=0;
}
}
}
}
for(j=0;j《SIZE;j++)
{
for(a=0,i=0;i《SIZE;i++)
{
if(n==2048)
{
m;
n=0;
}
else if(n)
{
m;
score+=m;
n=0;
}
}
for(i=0;i《SIZE;i++)
{
n;
m=0;
}
}
}
void toa(int n)
{
int i,j,a;
int m;
for(a=0;a《SIZE;a++)
m=0;
for(i=0;i《SIZE;i++)
{
for(a=0;a《SIZE;a++)
{
for(j=0;j《SIZE-1;j++)
{
if(n==0)
{
n;
n=0;
}
}
}
}
for(i=0;i《SIZE;i++)
{
for(a=0,j=0;j《SIZE;j++)
{
if(n==2048)
{
m;
n=0;
}
else if(n)
{
m;
score+=m;
n=0;
}
}
for(j=0;j《SIZE;j++)
{
n;
m=0;
}
}
}
void tos(int n)
{
int i,j,a;
int m;
for(a=0;a《SIZE;a++)
m=0;
for(j=SIZE-1;j》=0;j--)
{
for(a=SIZE-1;a》=0;a--)
{
for(i=SIZE-1;i》0;i--)
{
if(n==0)
{
n;
n=0;
}
}
}
}
for(j=SIZE-1;j》=0;j--)
{
for(a=SIZE-1,i=SIZE-1;i》=0;i--)
{
if(n==2048)
{
m;
n=0;
}
else if(n)
{
m;
score+=m;
n=0;
}
}
for(i=SIZE-1;i》=0;i--)
{
n;
m=0;
}
}
}
void tod(int n)
{
int i,j,a;
int m;
for(a=0;a《SIZE;a++)
m=0;
for(i=SIZE-1;i》=0;i--)
{
for(a=SIZE-1;a》=0;a--)
{
for(j=SIZE-1;j》0;j--)
{
if(n==0)
{
n;
n=0;
}
}
}
}
for(i=SIZE-1;i》=0;i--)
{
for(a=SIZE-1,j=SIZE-1;j》=0;j--)
{
if(n==2048)
{
m;
n=0;
}
else if(n)
{
m;
score+=m;
n=0;
}
}
for(j=SIZE-1;j》=0;j--)
{
n;
m=0;
}
}
}
需要注意的是:
srand((unsigned) time(0);rand();是固定形式,不要更改任何一个字符!
如果不能编译,请把sleep(200);注释掉,如果提示不能找到system("cls");请把system("cls")更换为clrscr()。
c语言中没有类,只有结构,也可以像类一样编写,用结构,但其成员都是公开访问的,C++才有真正的类。
怎样用C语言编写一个小游戏
“贪吃蛇”C代码:
#include 《*****》
#include 《*****》
#include 《*****》
#include 《*****》
#include 《*****》
#define W 78 //游戏框的宽,x轴
#define H 26 //游戏框的高,y轴
int dir=3; //方向变量,初值3表示向“左”
int Flag=0; //吃了食物的标志(1是0否)
int score=0; //玩家得分
struct food{ int x; //食物的x坐标
int y; //食物的y坐标
}fod; //结构体fod有2个成员
struct snake{ int len; //身长
int speed; //速度
int x;
int y;
}snk; //结构体snk有4个成员
void gtxy( int x,int y) //控制光标移动的函数
{ COORD coord;
*****=x;
*****=y;
SetC***oleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
void gtxy( int x,int y); //以下声明要用到的几个自编函数
void csh( ); //初始化界面
void keymove( ); //按键操作移动蛇
void putFod( ); //投放食物
int Over( ); //游戏结束(1是0否)
void setColor(unsigned short p, unsigned short q); //设定显示颜色
int main( ) //主函数
{ csh( );
while(1)
{ Sleep(*****);
keymove( );
putFod( );
if(Over( ))
{system(“cls”);
gtxy(W/2+1,H/2); printf(“游戏结束!T__T”);
gtxy(W/2+1,H/2+2); printf(“玩家总分:%d分”,score);
getch( );
break;
}
}
return 0;
}
void csh( ) //初始化界面
{ int i;
gtxy(0,0);
CONSOLE_CURSOR_INFO cursor_info={1,0}; //以下两行是隐藏光标的设置
SetC***oleCursorInfo(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;i《H;i++)
{ gtxy(0,i); printf("■"); //打印左边框
gtxy(W,i); printf("■"); //打印右边框
}
while(1)
{ srand((unsigned)time(NULL)); //初始化随机数发生器srand( )
*****=rand()%(W-4)+2; //随机函数rand( )产生一个从0到比”(W-4)”小1的数再加2
*****=rand()%(H-2)+1; //随机函数rand( )产生一个从0到比”(H-2)”小1的数再加1
if (*****%2==0) break; //*****是食物的横坐标,要是2的倍数(为偶数)
}
setColor(12, 0); //设定打印颜色为淡红字黑底
gtxy(*****,*****); printf("●"); //到食物坐标处打印初试食物
*****=3; //蛇身长
*****=350; //刷新蛇的时间,即是移动速度
*****=W/2+1; //蛇头横坐标要为偶数(因为W/2=39)
*****=H/2; //蛇头纵坐标
setColor(9, 0); //设定打印颜色为淡蓝字黑底
gtxy(*****); printf("■"); //打印蛇头
for(i=1;i《*****;i++)
{ *****;
gtxy(*****); printf("■"); //打印蛇身
}
setColor(7, 0); //恢复默认的白字黑底
return;
}
void keymove( ) //按键操作移动蛇
{ int key;
if( kbhit( ) ) //如有按键输入才执行下面操作
{ key=getch( );
if (key==224) //值为224表示按下了方向键,下面要再次获取键值
{ key=getch( );
if(key==72&&dir!=2)dir=1; //72表示按下了向上方向键
if(key==80&&dir!=1)dir=2; //80为向下
if(key==75&&dir!=4)dir=3; //75为向左
if(key==77&&dir!=3)dir=4; //77为向右
}
if (key==32)
{ while(1) if((key=getch( ))==32) break; } //32为空格键,这儿用来暂停
}
if (Flag==0) //如没吃食物,才执行下面操作擦掉蛇尾
{ gtxy(*****); printf(" "); }
int i;
for (i = ***** - 1; i 》 0; i--) //从蛇尾起每节存储前一节坐标值(蛇头除外)
{ *****; }
switch (dir) //判断蛇头该往哪个方向移动,并获取最新坐标值
{ case 1: snk.y--; break; //dir=1要向上移动
case 2: *****++; break; //dir=2要向下移动
case 3: snk.x-=2; break; //dir=3要向左移动
case 4: *****+=2; break; //dir=4要向右移动
}
setColor(9, 0);
gtxy(*****); printf("■"); //打印蛇头
if (***** == *****) //如吃到食物则执行以下操作
{ printf("\007"); *****++; score += 100; ***** -= 5; Flag = 1; } //007是响铃
else Flag = 0; //没吃到食物Flag的值为0
if(*****《150) *****= *****+5; //作弊码,不让速度无限加快
}
void putFod( ) //投放食物
{ if (Flag == 1) //如吃到食物才执行以下操作,生成另一个食物
{ while (1)
{ int i,n= 1;
srand((unsigned)time(NULL)); //初始化随机数发生器srand( )
***** = rand( ) % (W - 4) + 2; //产生在游戏框范围内的一个x坐标值
***** = rand( ) % (H - 2) + 1; //产生在游戏框范围内的一个y坐标值
for (i = 0; i 《 *****; i++) //随机生成的食物不能在蛇的身体上
{ if (***** == *****) { n= 0; break;} }
if (n && ***** % 2 == 0) break; //n不为0且横坐标为偶数,则食物坐标取值成功
}
setColor(12, 0);
gtxy(*****, *****); printf("●"); //光标到取得的坐标处打印食物
}
return;
}
int Over( ) //判断游戏是否结束的函数
{ int i;
setColor(7, 0);
gtxy(2,H+1); printf(“暂停键:space.”); //以下打印一些其它信息
gtxy(2,H+2); printf(“游戏得分:%d”,score);
if (***** == W) return 1; //蛇头触碰左右边界
if (***** == H) return 1; //蛇头触碰上下边界
for (i = 1; i 《 *****; i++)
{ if (*****) return 1; } //蛇头触碰自身
return 0; //没碰到边界及自身时就返回0
}
void setColor(unsigned short ForeColor = 7, unsigned short BackGroundColor = 0)
{ HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
SetC***oleTextAttribute( handle, ForeColor + BackGroundColor * 0x10 );
} //用来设定颜色的函数
怎么制作格斗游戏
没有编程基础的话,建议你用*****入门吧!
*****是一款由美国的Elecbyte小组使用C语言与Allegro程序库开发的免费的2D格斗游戏引擎,目前*****有分别在DOS、Windows和Linux等操作系统上运行的版本,而MUGEN在日文中意为无限的意思,制作者们希望通过这个平台能够创造无限格斗的可能。
这个引擎支持导入资源,调整技能和设定等等,是一个功能强大的2D格斗引擎;
***隐藏网址***
这是百度MUGEN吧,有新手教程和各种资源,多看多问,有热情应该很快能掌握!
期待你做出游戏的那天,加油!
更多文章:
windows server 2012的特点(windows server2012有哪些新特性)
2026年5月5日 13:40
java在线教程源码(我想看一点简单的Java程序的源代码)
2026年5月5日 13:20
javase网络编程重要嘛(javase 和javaee的区别)
2026年5月5日 13:00
diverse中文意思(different的同义词有那些呢)
2026年5月5日 11:40
jquery对象可以调用dom种方法(怎么把jquery对象于document对象的相互转换)
2026年5月5日 11:20
oracle游标(oracle存储过程中打开游标有几种方法用open直接打开)
2026年5月5日 11:00
正则匹配注解(用正则表达式在java怎么去匹配注释 //的单行注释 /*单行注释*/ /* *多行注释 */)
2026年5月5日 10:40




