c语言格斗游戏,[原创]格斗游戏

news/2024/11/16 20:47:17/

[原创]格斗游戏

/*呵呵,其实这个没什么技术含量,自我感觉就像在放幻灯片一样!呵呵,

我没学过数据结构,所以写得很乱,还望见谅!(不过我准备学了!)

做这个只是放松一下心情,太累了!

以下在TC2.0/XP 通过编译*/

#include

#include

#include

#include

#include

#include

#include

#define ESC 0x011b

#define LEFT 0x4b00

#define RIGHT 0x4d00

#define D 0x2064 /* 用手攻击 */

#define F 0x2166 /* 用脚攻击 */

void gameplay()

{

void shiftleft(int move);

void fail();

void win();

void shiftright(int move);

void score(int blood,int blood1);

void onset_by_hand(int move,int j,int k);

void onset_by_leg(int move,int b,int v,int c);

void opponent(int move1,int y,int h,int u,int w,int s,int o,int p);

void drawmap();

int key,move=0,move1=0,j=0,k=0,a=1,t=1,b=0,c=0,v=0,x,e;

int y=520,h=480,u=320,w=490,s=240,o=480,p=260,f1;

int blood=0,blood1=0;

shiftright(move);

score(blood,blood1);

opponent(move1,y,h,u,w,s,o,p);

drawmap();

while(1)

{

f1=random(4);

key=bioskey(0);

if(blood1>=100)

{

cleardevice();

win();

sleep(10);

closegraph();

exit(0);

}

if(key==RIGHT)

{

if(move<410&&move<330+move1)

{

move+=5;

cleardevice();

shiftright(move);

drawmap();

opponent(move1,y,h,u,w,s,o,p);

score(blood,blood1);

}

else

getch();

a=0;

t=0;

}

else if(key==LEFT)

{

if(move>-60)

{

move-=5;

cleardevice();

shiftleft(move);

drawmap();

opponent(move1,y,h,u,w,s,o,p);

score(blood,blood1);

}

else

getch();

a=0;

t=0;

}

else if(key==D)

{

if(a==1)

{

j=130;

k=260;

a=0;

}

else if(a==0)

{

j=160;

k=210;

a=1;

}

cleardevice();

onset_by_hand(move,j,k);

drawmap();

if(((485+move1)-(115+move))<=45)

{

move1+=50;

if(move1>80)

move1=80;

blood1+=1;

}

opponent(move1,y,h,u,w,s,o,p);

score(blood,blood1);

delay(1000);

t=0;

}

else if(key==F)

{

if(t==1)

{

b=80;

v=120;

c=320;

t=0;

}

else if(t==0)

{

b=100;

v=180;

c=240;

t=1;

}

cleardevice();

onset_by_leg(move,b,v,c);

drawmap();

if(((485+move1)-(115+move))<=45)

{

move1+=60;

if(move1>80)

move1=80;

blood1+=2;

}

opponent(move1,y,h,u,w,s,o,p);

score(blood,blood1);

delay(1000);

a=0;

}

else if(key==ESC)

{

cleardevice();

settextstyle(0,0,3);

outtextxy(200,100,"GAME OVER !");

sleep(10);

closegraph();

exit(0);

}

else

getch();

if(f1==2||f1==0) /*对手的移动*/

{

while(!kbhit())

{

if(move1>-390&&((485+move1)-(115+move))>40)

{

move1-=10;

cleardevice();

opponent(move1,y,h,u,w,s,o,p);

shiftright(move);

drawmap();

score(blood,blood1);

delay(100000);

move1+=5;

cleardevice();

opponent(move1,y,h,u,w,s,o,p);

shiftright(move);

drawmap();

score(blood,blood1);

}

else

break;

}

}

while(!kbhit()) /* 对手的攻击 */

{

x=random(50);

if(((485+move1)-(115+move))<=40)

{

if(x==11) /* 用手*/

{

w=485;

s=210;

o=440;

p=210;

cleardevice();

opponent(move1,y,h,u,w,s,o,p);

shiftright(move);

drawmap();

score(blood,blood1);

delay(100000);

cleardevice();

w=490;

s=240;

o=480;

p=260;

move-=40;

if(move

move=-60;

blood+=1;

if(blood>=100)

{

cleardevice();

fail();

sleep(10);

closegraph();

exit(0);

}

opponent(move1,y,h,u,w,s,o,p);

shiftright(move);

drawmap();

score(blood,blood1);

}

else if(x==48) /* 用脚*/

{

y=500;

h=420;

u=240;

cleardevice();

opponent(move1,y,h,u,w,s,o,p);

shiftright(move);

drawmap();

score(blood,blood1);

delay(100000);

cleardevice();

y=520;

h=480;

u=320;

move-=50;

if(move

move=-60;

blood+=2;

if(blood>=100)

{

cleardevice();

fail();

sleep(10);

closegraph();

exit(0);

}

opponent(move1,y,h,u,w,s,o,p);

shiftright(move);

drawmap();

score(blood,blood1);

}

}

/*if(!kbhit()&&key==ESC||!kbhit()&&key==LEFT||!kbhit()&&key==RIGHT||!kbhit()&&key==D||!kbhit()&&key==F)

break;*/

}

}

}

void shiftright(int move) /*右移*/

{

int i=10;

circle(100+move,180,10); /*head*/

line(100+move,190,100+move,200); /*neck*/

rectangle(85+move,200,115+move,240); /*body*/

line(100+move,240,80+move-i,320); /*left leg*/

line(100+move,240,120+move,320); /*right leg*/

line(100+move,210,130+move,260); /* right hand*/

line(110+move,240,120+move,260); /* left hand*/

i+=30;

if(i>=30)

i=10;

}

void shiftleft(int move) /*左移*/

{

int i=10;

circle(100+move,180,10); /*head*/

line(100+move,190,100+move,200); /*neck*/

rectangle(85+move,200,115+move,240); /*body*/

line(100+move,240,80+move,320); /*left leg*/

line(100+move,240,120+move-i,320); /*right leg*/

line(100+move,210,130+move,260); /*right hand*/

line(115+move,207,160+move,200); /*left hand*/

i+=20;

if(i>=30)

i=10;

}

void onset_by_hand(int move,int j,int k) /* 用手攻击*/

{

int i=10;

circle(100+move,180,10);

line(100+move,190,100+move,200);

rectangle(85+move,200,115+move,240);

line(100+move,240,80+move,320);

line(100+move,240,120+move-i,320);

line(100+move,210,j+move,k);

line(110+move,240,120+move,260);

i+=20;

if(i>=30)

i=10;

}

void onset_by_leg(int move,int b,int v,int c) /* 用脚攻击 */

{

circle(100+move,180,10);

line(100+move,190,100+move,200);

rectangle(85+move,200,115+move,240);

line(100+move,240,b+move,320);

line(100+move,240,v+move,c);

line(100+move,210,130+move,260);

line(110+move,240,120+move,260);

}

void drawmap()

{

bar(0,300,600,320);

bar(600,0,620,320);

}

void opponent(int move1,int y,int h,int u,int w,int s,int o,int p) /* 对手*/

{

circle(500+move1,180,10);

line(500+move1,190,500+move1,200);

rectangle(485+move1,200,515+move1,240);

line(500+move1,240,h+move1,u);

line(500+move1,240,y+move1,320);

line(500+move1,210,470+move1,260);

line(w+move1,s,o+move1,p);

/*line(485,210,440,210);*/

}

void score(int blood,int blood1) /* 生命力 */

{

bar(50,5,150-blood,10);

bar(450,5,550-blood1,10);

}

void fail() /* 输了的画面*/

{

bar(0,300,600,320);

bar(600,0,620,320);

circle(500,180,10);

line(500,190,500,200);

rectangle(480,200,520,240);

line(485,240,485,300);

line(515,240,515,300);

line(450,170,480,210);

line(550,170,520,210);

circle(100,290,10);

line(110,290,120,285);

rectangle(120,270,160,300);

line(130,285,190,285);

line(160,290,220,295);

settextstyle(0,0,3);

outtextxy(200,100,"YOU FAIL !");

}

void win()

{

bar(0,300,600,320);

bar(600,0,620,320);

circle(100,180,10);

line(100,190,100,200);

rectangle(80,200,120,240);

line(85,240,85,300);

line(115,240,115,300);

line(50,170,80,210);

line(150,170,120,210);

circle(500,290,10);

line(490,290,480,285);

rectangle(480,270,440,300);

line(470,285,410,285);

line(440,290,380,295);

settextstyle(0,0,3);

outtextxy(200,100,"YOU WIN !");

}

int main(void)

{

int gd=DETECT,mode;

initgraph(&gd,&mode,"");

gameplay();

}

/* 本来想左右移只做一个函数的,不过为了好区分一点,就分开写了!

实际上是不能这写的!(汗!还好意思说?) */


http://www.ppmy.cn/news/247727.html

相关文章

nba2k20手游修改器服务器已到,NBA2K20修改器

详情 NBA2K20修改器是一款最新的的修改NBA2K20游戏的辅助工具&#xff0c;玩家再有玩游戏的时候在总会遇到各种各样的困难&#xff0c;导致无法通关游戏&#xff0c;现在有了这修改器&#xff0c;忘记就可以在有的在篮球场上面自由发挥&#xff0c;通关游戏不再是手残党的梦&am…

第八章:聚合函数

第八章&#xff1a;聚合函数 ​ 我们上一章讲了SQL单行单数。实际上SQL函数还有一类&#xff0c;叫做聚合(或聚集、分组)函数&#xff0c;它是对一组数据进行汇总好函数&#xff0c;输入的是一组数据的集合&#xff0c;输出的是单个值。 8.1&#xff1a;聚合函数 AVG和SUM函数…

关于修改街机游戏的一些方法

心得也算是记录一下最近熬了三天&#xff0c;修改街机游戏的心得。 对于编程 我也只是算刚入门&#xff0c;所以关于程序方面可能有说的不对的地方&#xff0c;如果有大神求纠正&#xff0c;然后说下原理&#xff0c;我也学习学习。 PC上我们接触的街机游戏都是模拟器运行的&a…

root比例修改器,免root修改器修改数值

华为手机root成功后用什么修改器? 一般的xiuliqi都能在手机上&#xff0c;但必须是手机 上是获取到稳定的权限。 你使用下载应用宝软件在电脑上&#xff0c;让root的 手机连接到电脑上&#xff0c;看看在工具箱上显示的是 jiechu root就可以了。 证明手机上获取到的是…

圣魔大战3(Castle Fantisia)艾伦希亚战记修改器/秘籍——究极修改大法

艾伦西亚战记 艾伦希亚战记,是一个游戏 武器&#xff1a;UltraEdit&#xff08;金山游侠自带的文件修改器也可以&#xff0c;只是这个专业&#xff09; 目标&#xff1a; 存档文件&#xff08;建议先备份&#xff09; 知识&#xff1a;save00.dat-save19.dat&#xff0c;玩家…

Battle Mages (魔法之战,精灵传说)修改器

最近很忙&#xff0c;没有更新&#xff0c;程序也没写&#xff0c;只是玩了一块这个游戏&#xff0c;顺便改了改&#xff0c;写在下面&#xff0c;有兴趣的朋友可以写修改器。 一、金钱1、汇编将ECX修改为所需要数值 005D99E0、005DAA95两处MOV [EBP00000270],ECX修改为CALL …

java文字版格斗游戏。

javabean类&#xff1a; package Test; import java.util.Random; class Role { private String name;//创建角色属性 private int blood; private char gender; private String face; String[] boyfaces {"风流优雅", "气宇轩昂", …

文字格斗游戏

ps:分享学习java的第五天 简单的文字格斗游戏 以下是我的运行结果和源代码 import java.util.Random;public class Role {private String name;//姓名private int blood;//血量public Role() {}public Role(String name, int blood) {this.name name;this.blood blood;}pub…