当前位置: 首页 > news >正文

C语言·贪吃蛇游戏(上)

1. 游戏任务

        使用C语言在Windows环境的控制台中模拟实现小游戏贪吃蛇

        游戏中要包含以下功能:

        1. 贪吃蛇地图绘制

        2. 贪吃蛇上下左右移动和吃食物

        3. 蛇撞墙,或撞到自身死亡

        4. 计算得分

        5. 蛇身加速、减速

        6. 暂停游戏

2. Win32 API 介绍

        Windows是一种多作业的操作系统(同时进行多个任务进程),它除了协调应用程序的执行、分配内存、管理资源之外。它还是一个很大的服务中心,服务中心有很多函数接口,我们可以通过调用这些函数或者说是服务,来帮助应用程序达到开启视窗、描绘图形、使用周边设备等功能。由于这些服务的对象是应用程序,所以我们把这些服务称为 Application Programming Interface (应用程序编程接口) 简称API函数

2.1 控制台程序(Console)

        首先操作系统是win11的朋友们要注意了,我们运行程序的时候弹出的那个黑色窗口不是控制台,而是win11新提供的终端窗口,在终端窗口中是不能实现控制台程序中的一些功能的

        上面这个窗口就是终端窗口,下面我们讲解如何改成控制台窗口

        鼠标放到下箭头上,然后选择设置

        在启动中选择Windows控制台主机,并保存

        下次再运行起来的就是控制台窗口了

        下面我们介绍两个控制台程序命令:

2.1.1 设置控制台的大小

                        mode con cols=100 lines=30

        当我们把这段命令敲到cmd里头之后就会发现窗口的大小改变了

        cols 控制的是列,lines 控制的是行,现在我们就可以根据喜好控制游戏窗口的大小了

2.1.2 设置控制台的名字

                        title 贪吃蛇

        现在可以注意到,控制台窗口的名字变成了贪吃蛇

2.1.3 system()函数

        上面我们是在cmd中进行的操作,那么我们如何把这些操作写进C程序中呢,这时就用到了system函数,system函数就相当于帮你把内容输入到控制台中了,这个函数需要引用头文件<stdlib.h>

                                int system (const char* command);

        官网链接:system - C++ Reference

        上面我们展示了一下使用的效果,我们将窗口大小和名字都修改了,但是我在最后输入了一个pause暂停的语句,这是因为如果不暂停的话程序就直接结束了,紧接着刚刚输入的这些命令就失效了,那我们就看不到效果了。

2.2 控制台屏幕上的坐标 COORD

        COORD 是Windows API中定义的一个结构体,表示一个字符在控制台屏幕缓冲区上的坐标,坐标系原点(0,0)位于缓冲区的顶部左侧单元格

     

http://www.xdnf.cn/news/817147.html

相关文章:

  • 巧妙从进程中判断出病毒和木马
  • nc命令用法举例【转】
  • “熊猫烧香”变种“金猪报喜”制作者落网
  • kustomize/kubectl自动镜像部署互联网企业规范化上线流程(下) —— k8s从入门到高并发系列教程 (七)
  • 时域抽样定理,信号重建,附带频域抽样定理
  • OA系统流程效率改进方案
  • Java:81-RabbitMQ详解
  • “绿坝—花季护航”使用全攻略
  • 鬼影病毒学习总结
  • js复制URL链接
  • response.setContentType()和response.setCharacterEncoding()使用区别及统一处理request和response编码
  • python 网盘搭建_超简单!基于Python搭建个人“云盘”
  • 【MFC】Ribbon界面开发(一)
  • 刷机介绍----超详细
  • 公司内部邮件格式范文
  • SpringBoot -- 软件许可(License)证书生成+验证+应用完整流程
  • 手把手教你安装 Fedora
  • 计算机系列之排序算法
  • 2021年高考成绩查询宜春昌黎,2021年全国各省高考成绩排名查询系统入口
  • DIV简单个人静态HTML网页设计作品 WEB静态个人介绍网页模板代码 DW个人网站制作成品 期末网页制作与实现
  • Ubuntu下MPlayer(万能播放器)的使用
  • 利用百度API获取mp3及歌词lrc下载地址
  • 最全的Gateway统一网关快速入门
  • Java中的方法递归
  • HDL FPGA 学习 - Avlon 总线,从端口传输、主端口传输,单周期、可变周期传输
  • 盘点那些免费的AI对话工具(国内篇):国内TOP3 AI聊天机器人产品介绍
  • Spring ResourceLoader.getResource() getResources()的理解
  • 史上最全最新Ubuntu安装教程(图文)
  • ECshop 模板制作教程
  • sql2000数据库挂起问题