c语言自定义游戏地图
Wccyy883 人气:0博主相信每个人都有想做游戏的冲动,那么本文将给出一个用c语言制作的可自定义大小的游戏地图(包含player,撞墙设置)。废话不多说,直接给出全代码!
1.完整代码
#include<stdio.h> #include<windows.h> #include<conio.h> //this is the add function int drawroom(int length,int height,int x,int y); int transform(int tran); //begin the function int main() { int p=10; int q=10; printf("control player to move:up“8” down“2” left“4” right“6”\n");//control the player int y,x; int ret=1; int a,b; printf("请输入地图的大小,例如:10 10:\n"); scanf("%d %d",&p,&q); printf("请输入玩家的位置:“例如:3 5”\n"); //get the first player place scanf("%d %d",&y,&x); drawroom(p,q,y,x); printf("\n"); while(ret!=0){ printf("\n"); int i; i=0; int tran; tran=getch(); i=transform(tran); if(i==8){ drawroom(p,q,y-1,x); y=y-1; } else if(i==2){ drawroom(p,q,y+1,x); y=y+1; } else if(i==4){ drawroom(p,q,y,x-1); x=x-1; } else if(i==6){ drawroom(p,q,y,x+1); x=x+1; } if(y==0 || x==0){ ret=0; printf("\n\nyou touch the board!game over!!"); break; } if(y==p+1 || x==q+1){ ret=0; printf("\n\nyou touch the board!game over!!"); break; } } getchar(); system("pause"); return 0; } int drawroom(int length,int height,int y,int x) { int ret=1; int size1=height+2; int size2=length+2; int a[size1][size2]; int i,j; int count=1; for(i=0;i<size1;i++){ for(j=0;j<size2;j++){ a[i][j]=0; } } a[0][0]=1; a[0][size2-1]=1; a[size1-1][0]=1; a[size1-1][size2-1]=1; for(j=1;j<size2-1;j++){ a[0][j]=2; } for(j=1;j<size2-1;j++){ a[size1-1][j]=2; } for(i=1;i<size1-1;i++){ a[i][0]=3; } for(i=1;i<size1-1;i++){ a[i][size2-1]=3; } a[y][x]=4; for(i=0;i<size1;i++){ printf("\n"); for(j=0;j<size2;j++){ if(a[i][j]==1){ printf("+ "); }else if(a[i][j]==2){ printf("- "); }else if(a[i][j]==3){ printf("| "); }else if(a[i][j]==4){ printf("@ "); }else{ printf(". "); } } } printf("\n\n\n\n\n\n\n\n\n\n"); return 0; } int transform(int tran) { int tot; if(tran==52)tot=4; if(tran==54)tot=6; if(tran==50)tot=2; if(tran==56)tot=8; return tot; }
注:游戏说明:先自定义游戏地图的大小,然后自定义玩家生成在游戏棋盘中的哪个位置,最后通过数字键盘控制玩家的移动:下:2 上:8 左:4 右:6
2.运行成果
大家可以自己在游戏地图的基础上设置不同的玩家,甚至可以进行双人对战!
加载全部内容