用c语言写游戏脚本

可以,但是C和C语言好学难掌握。写脚本时容易出现bug等问题,但其灵活性和简洁性不容忽视。目前比较流行的脚本:python、Lua、ruby和Erlang,详情请看本文。

c语言游戏编程,落鸟求代码。 坠落的鸟

# includestdio.h

#includestdlib.h

#includeconio.h

#includetime.h

#includeWindows.h

int Grade = 1,Score = 0,Max_blank = 9,Distance = 18

结构鸟{ int x;int y;};//定义一个Birds数据类型(有3个成员)

Birds * Bird =(Birds *)malloc(sizeof(Birds))。//定义Birds类型的指针变量Bird并赋一个初始值。

struct Bg{int x,y;int l _ blankBg * priBg *下一个;};//定义一个Bg数据类型(有5个成员)

Bg * Bg1 =(Bg *)malloc(sizeof(Bg));//定义Bg指针变量Bg1,赋初始值。

Void Position(int x,int y) //光标定位函数(在指定位置输出)

{COORD pos = { x - 1,y-1 };

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

SetConsoleCursorPosition(Out,pos);

}

Void Csh() //初始化接口

{

printf("══════════════════════════════════════\n”);

printf("■■■Flappy Bird \ n C语言\ n ");

printf("■■■\ n ");

printf("■■■\ n ");

printf("■■■■Fool:YY poss original \ n ");

Printf(" ■■ ■■鬼混日期:2014年2月\ n ");

printf("■■■\ n ");

Printf ("■■■■改编自:明白蝉2021.7 \ n ");

Printf(" ■■ ■■操作:按向上箭头键让小鸟起飞\ n ");

printf("■■\ n ");

printf("■■\ n ");

printf("■■■\ n ");

printf("■■■\ n ");

printf("■■■\ n ");

printf("■■■\ n ");

printf("■■■■devc贯穿\ n ");

printf("══════════════════════════════════════\n”);

Printf("按下按钮继续…);

getch();

系统(“cls”);

}

Void PrFK() //输出框(游戏范围区域)

{ int I;

位置(1,1);printf("╔”);位置(79,1);printf("╗”);

位置(1,24);printf("╚”);位置(79,24);printf("╝”);

for(I = 3;i = 78I = 2){位置(I,1);printf("═”);位置(I,24);printf("═”);}

for(I = 2;i = 23我)

{位置(1,I);printf("║”);if(i11)printf("0%d ",I-1);else printf("%d ",I-1);

位置(79,I);printf("║”);

}

位置(4,25);Printf("小鸟马上就要出现了,请按下按钮准备起飞……");

getch();

位置(4,25);printf(" ");

}

Void CreatBg() //创建障碍坐标(易于打印输出)

{ Bg * Bg2 =(Bg *)malloc(sizeof(Bg));

bgx = 90;bgy = 8;//确定一对障碍物的基本坐标(此时数值在游戏框外)

Bg2-x = Bgx距离;bg2-y = 9;//下一个障碍物的基本坐标x和y

bgl _ blank = Max _ blank-Grade;//障碍物上下部分之间的空白距离l_blank

bg2-l _ blank = Max _ blank-Grade;

bgnext = Bg2;bgpri = Bg2;

bg2-next = Bg1;bg2-pri = Bg1;

}

Void InsertBg(Bg *p) //随机改变障碍物的Y坐标,使空白通道上下变化。

{ int temp

Bg * Bgs =(Bg *)malloc(sizeof(Bg));

Bgs-x = p-pri-x距离;

bgs-l _ blank = Max _ blank-Grade;

srand((int)time(0));//启动随机数生成器

temp = rand();//生成一个随机数,赋给temp。

if(温度% 2 == 0)

{ if((temp % 4 p-pri-y Max _ blank-Grade)21)

bgs-y = p-pri-y temp % 4;

else Bgs-y = p-pri-y;

}

其他

{ if((p-pri-y-temp % 4)2)Bgs-y = p-pri-y-temp % 4;

else Bgs-y = p-pri-y;

}

bgs-pri = p-pri;bgs-next = p;

p-pri-next = Bgs;p-pri = Bgs;

}

Void CreatBird() //建立鸟的坐标(鸟的位置最初是打印出来的)

{ Bird-x = 41;bird-y = 10;}

Int CheckYN(Bg *q) //判断游戏是否结束(0表示结束,1表示不结束)。

{ Bg * p = q;int I = 0;

while ( i = 5)

{if (Bird-y23)返回0;

if (Bird-x == p-xBird-y = p-y)返回0;

if((Bird-x = = p-x | | Bird-x = = p-x 1 | | Bird-x = = p-x 2)Bird-y = = p-y)返回0;

if(Bird-x = = p-x Bird-yp-y p-l _ blank)返回0;

if((Bird-x = = p-x | | Bird-x = = p-x 1 | | Bird-x = = p-x 2)Bird-y = = p-y p-l _ blank)

返回0;

p = p-next;

}

返回1;

}

Void Check_Bg(Bg *q) //检查第一个障碍物的坐标是否在游戏区域内。

{ Bg * p = q;int i = 0,temp

while ( i = 5)

{ if(p-x-4)p = p-next;

其他

{ srand((int)time(0));temp = rand();

if(温度% 2 == 0)

{ if((temp % 4 p-y Max _ blank-Grade)21)p-y = p-y temp % 4;

else p-y = p-y;p-x = p-pri-x距离;

p-l _ blank = Max _ blank-Grade;

}

其他

{ if((p-y-temp % 4)2)p-y = p-y-temp % 4;

else p-y = p-y;p-x = p-pri-x距离;

p-l _ blank = Max _ blank-Grade;

}

}

}

}

Void Prt_Bg(Bg *q) //打印出障碍物(根据其X,Y坐标输出)。

{ Bg * p = q;int i = 0,k,j;

while ( i = 5)

{if (p-x0 p-x = 78)

{ for(k = 2;KP-y;k){位置(p-x ^ 1,k);printf("■");printf("■");printf(" ");}

位置(p-x,p-y);

printf("■");printf("■");printf("■");printf(" ");

位置(p-x,p-y p-l _ blank);

printf("■");printf("■");printf("■");printf(" ");

k = k p-l _ blank 1;

for(k;k = 23k){位置(p-x ^ 1,k);printf("■");printf("■");printf(" ");}

}

p = p-next;

如果(p-x == 0)

{ for(j = 2;jp-y;j){位置(p-x ^ 1,j);printf(" ");printf(" ");}

位置(p-x 1,p-y);

printf(" ");printf(" ");printf(" ");

位置(p-x 1,p-y Max _ blank-Grade);

printf(" ");printf(" ");printf(" ");

j = j Max _ blank-1级;

for(j;j = 22j){位置(p-x ^ 1,j);printf(" ");printf(" ");}

}

}

}

Void PrtBird() //打印出鸟。

{位置(Bird-x,Bird-y-1);printf(" ");

位置(Bird-x,Bird-y);printf("ю”);

位置(38,2);printf("分数:%d ",分数);

}

Void Loop_Bg(Bg *q) //将障碍物的X坐标向左移动,记录结果。

{ Bg * p = q;int I = 0;

while ( i = 5)

{ p-x = p-x-1;p = p-next;

if (Bird-x == p-x)

{ Score = 1;

if(分数% 4 == 0 Grade4)等级;

}

}

}

int main()

{ int I = 0;int t;

while (1)

{

csh();PrFK();creat BG();

insert BG(Bg1);insert BG(Bg1);insert BG(Bg1);

creat bird();

while (1)

{如果(!CheckYN(Bg1))break;

check _ Bg(Bg1);PRT _ Bg(Bg1);

PRT bird();loop _ Bg(Bg1);

Bird-y = Bird-y 1;

If (GetAsyncKeyState(VK_UP)) //按向上箭头键。

{位置(Bird-x,Bird-y-1);printf(" ");

Bird-y = Bird-y-4;

}

睡眠(200);//程序延迟200ms(数值决定游戏速度)

I = 0;

}

位置(6,25);

Printf("游戏结束!请输入:0。1号出口。再玩一次”);

scanf("%d ",t);

if(t = = 0)break;

系统(“cls”);得分= 0;

}

返回0;

}

如何用C语言编程制作汉诺塔游戏? #include\x0d\x0a void move(char x,char y)\ x0d \ x0a { \ x0d \ x0a printf(" % c-% c \ n ",x,y);\ x0d \ x0a } \ x0d \ x0a void Hanoi(int n,char one,char two,char three)\ x0d \ x0a { \ x0d \ x0a if(n = = 1)move(one,three);\ x0d \ x0a else \ x0d \ x0a { \ x0d \ x0a Hanoi(n-1,一,三,二);\x0d\x0a移动(一、三);\x0d\x0a河内(n-1,二,一,三);\ x0d \ x0a } \ x0d \ x0a } \ x0d \ x0a main()\ x0d \ x0a { \ x0d \ x0a int m;\x0d\x0a printf("输入磁盘数量:");\x0d\x0a scanf("%d ",m);\x0d\x0a printf("移动的步骤= disks:\ n ",m);\x0d\x0a hanoi(m,' A ',' B ',' C ');\x0d\x0a }\x0d\x0a算法介绍:\x0d\x0a其实算法很简单。当板数为n时,移动的次数应该等于2^n _ 1(有兴趣可以自己证明)。后来,一位美国学者发现了一种出乎意料的简单方法,只需要依次两步。首先将三列按顺序排列成成品字体,将所有圆盘按降序放在A列上,根据圆盘数量确定列排列顺序:若n为偶数,A B C;顺时针放置;\x0d\x0a如果n是奇数,顺时针依次放A C B。\x0d\x0a (1)将光盘1从当前列顺时针移动到下一列,即当n为偶数时,如果光盘1在A列,则移动到B;如果光盘1在b列,将其移动到c;如果磁盘1在列c中,将其移动到a中,\x0d\x0a (2)接下来,将其他两列上的可移动磁盘移动到新列中。即,将非空列上的光盘移动到空列,当两列都不为空时,移动较小的光盘。此步骤不指定要移动哪个磁盘。你可能觉得有很多可能,其实不是,唯一能实施的行动就是。\x0d\x0a (3)重复操作(1)和(2),最后按照规定完成汉诺塔的移动。\x0d\x0a所以结果很简单,就是按照移动规则把金块往一个方向移动:\x0d\x0a比如汉诺塔三阶塔的移动:A → C,A → B,A → C,B → A,B → C,A → C \ x0d \ x0a汉诺塔问题也是一个程序。

c语言写的最好的三个猜谜游戏编程。 /*假设有A和B供猜测。

x代表剪刀,Y代表石头,Z代表布。

规则如下:

1.石头剪刀

2、布石

3、剪刀布

*/

#包含stdio.h

#定义WIN 1

#定义输-1

#定义等于0

/*游戏规则功能*/

int game_rule(char a,char b)

{

开关(a)

案例“x”:

{

开关(b)

case“x”:返回相等值;

大小写“y”:return LOSE;

case ' z ':return WIN;

}

案例“y”:

{

开关(b)

情况“x”:返回WIN

case“y”:返回相等值;

case ' z ':return LOSE;

}

案例“z”:

{

开关(b)

情况“x”:return LOSE;

大小写“y”:return WIN;

case“z”:返回等于;

}

}

/*主函数*/

无效总管(无效)

{

int ans

int a = b = 0;

char A;

char B;

{

prinf("请输入A:\ n ");

scanf("%c ",A);

getchar();

prinf("请输入B:\ n ");

scanf("%c ",B);

getchar();

//请自行添加有效性检查。

ans = game_rule(A,B);

if(ans==WIN)

{

a;

Prinf("A赢了%d场比赛\n ",A);

}

else if(ans==LOSE)

{

b;

Prinf("A赢了%d局\n ",b);

}

if((a==2)||(b==2))

{

prinf(“游戏结束”);

打破;

}

} while(1);

}

相关文章

发表新评论