您的位置:首页 > 编程语言 > C语言/C++

C语言项目-精忠报国-第三天-孩子快哭了,进来看看吧-控制每行打印字符数-完结感言

2020-05-10 04:16 816 查看

项目来源:老九君

项目名称:精忠报国之笑傲江湖

视频课地址:网易云课堂

基本功能/架构:

第三天

  • 最后一天咯,诸位加油!
  • 简易目录

  • 1.控制每行打印字符数

    • 2.完结感言

    1.控制每行打印字符数

    • 在项目中,地图描述信息打印时需要进行每行的字符数控制(就像下图),否则就会打出界去,直到屏幕边缘,破坏整体感觉

    • 实现方法如下
      –1.首先用<string.h>库中的strlen() 函数获取地图描述信息的长度
    char * desc = mapArray[Y][X].desc;
    int descLen = strlen(desc);

          --2.因为在C语言中字符串都是用字符数组存储的,所以我们可以用一个for循环一个字符一个字符的打印

    for(i = 0; i < descLen; i++)
    {
    if(i != 0 && i % 60 == 0)//控制此行只能打印60个中文字符
    {
    SetPosition(MARGIN_X + 10, INFO_START_Y + 1 + i / 60);
    }
    printf("%c", desc[i]);
    }

          --3.在我们每次打印了60个字符后就使用<windows.h>库中提供的函数将光标位置移动到下一行的开头

    if(i != 0 && i % 60 == 0)//控制此行只能打印60个中文字符
    {
    SetPosition(MARGIN_X + 10, INFO_START_Y + 1 + i / 60);
    }
    • 以下是详细实现代码
    /* 在信息界面显示当前地图的信息 */
    void ShowMapInfo()
    {
    //1.清除信息窗的信息
    Clear(MARGIN_X, INFO_START_Y, 7);
    //2.显示当前玩家所在地图的信息
    SetPosition(MARGIN_X + 25, INFO_START_Y);
    printf("当前玩家所在地图:《%s》", mapArray[Y][X].name);
    SetPosition(MARGIN_X + 10, INFO_START_Y + 1);
    //需要控制文字显示的行
    char * desc = mapArray[Y][X].desc;
    int descLen = strlen(desc);
    int i, j;
    for(i = 0; i < descLen; i++)
    {
    if(i != 0 && i % 60 == 0)//控制此行只能打印60个中文字符
    {
    SetPosition(MARGIN_X + 10, INFO_START_Y + 1 + i / 60);
    }
    printf("%c", desc[i]);
    }
    }

    2.完结感言

    首先感谢老九君,老九学堂的这个项目,我也是在找项目的时候知道有这样一个机构的,我看了他们官网,很多编程课都是免费的,网易云课堂也可以搜到,这个项目还有不理解的话也可以去最上面我给的超链接去看看视频,虽然我没看过他们的课,但祝他们越办越好!!
    做完这个小小小项目,除开大量对windows函数的调用外,逻辑很简单,但是基本实现了一个传统游戏的功能,剩下的就是对素材的绑定,让他们显示在屏幕上罢了,有时间有精力的话可以自己去写一下这个小游戏,乐趣还有频繁的C语言基础语句的使用,相信一定对C语言基础的巩固有帮助,对数组,指针,结构体,函数调用,传参这些一定能有更多领会。毕竟之前一个项目,也算是个小游戏-<后宫选妃系统>是我自己写的,当时也是觉得蛮简单的,但是实际上写下来感想也是蛮多的,有兴趣可以去我之前文章看,好玩的是有两次让我查了几个小时的bug都是多了个空格!!
    之后准备的项目是一个是C语言的简易服务器实现,另一个是C语言编写一个数据库,都是带着了解服务器和数据库的目的去的,github上都能找到,想要找项目的话也可以来这看看hellogithub-分享 GitHub 上有趣、入门级的开源项目,如果大家有更好的项目推荐的话也欢迎留言私聊,草鸡感谢!!!
    关于CSDN的话其实注册了已经有半年多了吧,但是之前也注册过后也没来看过了,感觉就是这么奇妙,突然想写了,然后我就开始了,今天3/17,算上这篇刚好17篇,也算是小有成就吧,哈哈。虽然阅读量都不高,给了两次热门推荐全部铺噶,哎,我太难了!接下来半个月应该不会继续发博客,一鼓作气,再而衰,三而竭。不想一次把所有力气都用掉,一个月15篇,我感觉这个节奏够了,我又不是写网络小说的,是不是。再说更重要的不是博客的质量嘛,我也需要趁这个时间好好去偷师一下博客该怎么写,然后把我之前落下的课补回来,哎,快开学了。祝我好运,诸君,加油!

    北海以北没有小王 原创文章 32获赞 861访问量 3万+ 关注 私信
  • 内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: