C语言小游戏初学者浅试

*推箱子的逻辑原型

还不算真正的游戏

就只能编译器里看看

小白可以瞅瞅

我也是小白

兴起学的

这还是手机撸的

写完告诉自己写程序得多造轮子__自定义函数

 

#include<stdio.h>

#include<conio.h>

#include<math.h>

#include<unistd.h>

#include<time.h>

#include<stdlib.h>

#include<string.h>

/*小s推箱子*/

int x=1,y=2;/*小s初始点*/

int k=2,l=3,k2=5,l2=2,k3=6,l3=5;/*爱情初始点*/

int renew;/*重开逻辑值*/

int come1,here1,come2,here2,come3,here3;/*别过来啊!!!*/

char map[8][8];

void print(char map[][8]);

void target(char map[][8]);

void move(char map[][8]);

void A(char map[][8]);

void B(char map[][8]);

void C(char map[][8]);

int winor(char map[][8]);

void wall(char map[][8])/*墙壁位置刷新*/

{

int i,j;

for(i=0;i<8;i++){

for(j=0;j<8;j++)map[i][j]=' ';}

for(i=1;i<6;i++)

map[0][i]='#';

map[1][1]='#';map[1][4]='#';map[1][5]='#';map[1][6]='#';

map[2][1]='#';map[2][6]='#';

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

map[3][i]='#';map[3][3]=' ';map[3][5]=' ';

map[4][0]='#';map[4][2]='#';map[4][4]='#';map[4][7]='#';

map[5][0]='#';map[5][5]='#';map[5][7]='#';

map[6][0]='#';map[6][7]='#';

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

map[7][i]='#';}

 

void target(char map[][8]){/*目标点刷新*/

map[4][1]='$';map[5][1]='$';map[6][1]='$';}

 

void move(char map[][8]){/*小s移动*/

map[x][y]=' ';

if(kbhit()){

switch(getchar()){/*不能撞墙 不能推两个箱子*/

case 'w':x--;if(map[x][y]=='a'||map[x][y]=='b'||map[x][y]=='c'){

if(map[x-1][y]=='a'||map[x-1][y]=='b'||map[x-1][y]=='c')

x++;};if(map[x][y]=='#')x++;break;

case 's':x++;if(map[x][y]=='a'||map[x][y]=='b'||map[x][y]=='c'){

if(map[x+1][y]=='a'||map[x+1][y]=='b'||map[x+1][y]=='c')

x--;}if(map[x][y]=='#')x--;break;

case 'a':y--;if(map[x][y]=='a'||map[x][y]=='b'||map[x][y]=='c'){

if(map[x][y-1]=='a'||map[x][y-1]=='b'||map[x][y-1]=='c')

y++;}if(map[x][y]=='#')y++;break;

case 'd':y++;if(map[x][y]=='a'||map[x][y]=='b'||map[x][y]=='c'){

if(map[x][y+1]=='a'||map[x][y+1]=='b'||map[x][y+1]=='c')

y--;}if(map[x][y]=='#')y--;break;

case 'r':renew=1;break;}}

map[x][y]='s';}

 

void A(char map[][8]){/*推推爱情1*/

map[k][l]=' ';

if(x!=k||y!=l){

if(x>=(k-1)||x<=(k+1)){

if(y>=(l-1)||y<=(l+1)){come1=x;here1=y;}}}

if(x==k&&y==l){

k+=k-come1;l+=l-here1;}

map[k][l]='a';}

 

void B(char map[][8]){/*推推爱情2*/

map[k2][l2]=' ';

if(x!=k2||y!=l2){

if(x>=(k2-1)||x<=(k2+1)){

if(y>=(l2-1)||y<=(l2+1)){come2=x;here2=y;}}}

if(x==k2&&y==l2){

k2+=k2-come2;l2+=l2-here2;}

map[k2][l2]='b'; }

 

void C(char map[][8]){/*推推爱情3*/

map[k3][l3]=' ';

if(x!=k3||y!=l3){

if(x>=(k3-1)||x<=(k3+1)){

if(y>=(l3-1)||y<=(l3+1)){come3=x;here3=y;}}}

if(x==k3&&y==l3){

k3+=k3-come3;l3+=l3-here3;}

map[k3][l3]='c';}

 

void print(char map[][8]){/*大屏幕*/

int i,j;

printf("*********************\n");

printf("小s之推推推!\n");

printf("小tips--两下r重新开始哟!不用担心走错啦!");

for(i=0;i<8;i++){

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

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

printf("\n");}

printf("w上 s下 a左 d右\n");

printf("操作起来!:\n");

clrscr();}

 

int winor(char map[][8]){/*胜利条件*/

if(map[4][1]=='b'&&map[5][1]=='a'&&map[6][1]=='c')

{clrscr();printf("你 赢 啦 宝 贝!");return(1);}return(0);}

 

void main(){

while(1){

renew=0;x=1,y=2;

k=2,l=3,k2=5,l2=2,k3=6,l3=5;

printf("宝 贝,Do you want to play?\n");

if(getchar()=='y'){

wall(map);

while(1){

target(map);

move(map);

A(map);B(map);C(map);

print(map);

if(winor(map))

exit(1);

if(renew)

break;

sleep(1);}clrscr();continue;}

else

if(getchar()!='r'&&getchar()!='y')printf("滚吧你");

if(getchar()=='r')printf("想重开嘛");if(getchar()){clrscr();continue;}}}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值