c语言实现可自定义的游戏地图

 更新时间:2022年01月10日 08:27:58   作者:Wccyy883  
这篇文章主要为大家详细介绍了c语言实现可自定义的游戏地图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了c语言实现可自定义的游戏地图的具体代码,供大家参考,具体内容如下

博主相信每个人都有想做游戏的冲动,那么本文将给出一个用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.运行成果

大家可以自己在游戏地图的基础上设置不同的玩家,甚至可以进行双人对战!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • c/c++ 利用sscanf进行数据拆分操作

    c/c++ 利用sscanf进行数据拆分操作

    这篇文章主要介绍了c/c++ 利用sscanf进行数据拆分操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • LeetCode题解C++生成每种字符都是奇数个的字符串

    LeetCode题解C++生成每种字符都是奇数个的字符串

    这篇文章主要为大家介绍了LeetCode题解C++生成每种字符都是奇数个的字符串示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • C++中神奇的tuple详解使用技巧及实例解析

    C++中神奇的tuple详解使用技巧及实例解析

    C++11标准新引入了一种类模板,命名为 tuple(中文可直译为元组),下面这篇文章主要给大家介绍了关于C++中神奇的tuple详解使用技巧及实例解析的相关资料,需要的朋友可以参考下
    2024-01-01
  • 浅谈do {...} while (0) 在宏定义中的作用

    浅谈do {...} while (0) 在宏定义中的作用

    下面小编就为大家带来一篇浅谈do {...} while (0) 在宏定义中的作用。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • 深入解析C++中的虚函数与多态

    深入解析C++中的虚函数与多态

    对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)和一个指向虚函数表的指针(vptr)来实现的
    2013-09-09
  • C语言找出数组中的特定元素的算法解析

    C语言找出数组中的特定元素的算法解析

    这篇文章主要介绍了C语言中找出数组中特定元素的算法解析,包括找出数组中两个只出现一次的数字的方法,需要的朋友可以参考下
    2016-03-03
  • C++ 实现汉诺塔的实例详解

    C++ 实现汉诺塔的实例详解

    这篇文章主要介绍了C++ 实现汉诺塔的实例详解的相关资料,这里主要说明C++中数据结构的递归的应用,需要的朋友可以参考下
    2017-08-08
  • C语言实现简单的文本编辑器

    C语言实现简单的文本编辑器

    这篇文章主要为大家详细介绍了C语言实现简单的文本编辑器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • 深入ORACLE变量的定义与使用的详解

    深入ORACLE变量的定义与使用的详解

    本篇文章是对ORACLE变量的定义与使用进行了详细的分析与介绍,需要的朋友参考下
    2013-05-05
  • C++面试八股文之std::string实现方法

    C++面试八股文之std::string实现方法

    这篇文章主要介绍了C++面试八股文:std::string是如何实现的,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06

最新评论