学习总结2

第二周总结

一、总结贪吃蛇制作思路

1.绘制API,所以需要引入graphics.h这个图形界面库。

2.游戏规则

  • 蛇是一节一节的,每吃掉一个事物都会长一节
  • 蛇吃食物需要移动,如果需要移动那么就会有坐标的变化。
  • 蛇没吃掉一个事物都会随机产生一个食物,所以食物也是由坐标表示。
  • 如果在蛇移动吃食物的时候与便捷或者自己的身体发生碰撞,则gameover。
  • 进行操作则需要通过键盘来操作来改变蛇的方向。

二、介绍graphics.h图形库

1.基本说明
  • 坐标:定为以左上角开始,水平向右为X轴,竖直向下为Y轴,建立坐标系
  • getch() :图形关闭之前通常要键盘获得一个字符,否则图形一闪就没了。
  • closegraph() :关闭图形窗口函数。
  • cleardevice() :清空屏幕,之后会界面内容全部清空,显示为默认背景颜色。
2.颜色模型

首先:此图形库中采用的是RGB颜色。*RGB色彩模式 是工业界的一种颜色标准,是通过对红 ®、绿 (G)、蓝 (B)三个颜色 通道 的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,*是运用最广的 颜色系统之一。

  1. 设置颜色模型(常用)
    stebkcolor():设置背景颜色,参数颜色
    setfillcolor:设置填充绘制图形形式所用的颜色
  2. 设置风格样式的模型
    setfillstyle():设置填充样式,比如竖线,横线,方格填充。
    setlinestyle():设置线的填充样式
    setbkmode():图案,或文字填充的背景模式(背景色,透明)。
  3. 图形的绘制
    ine(x1,y1,x2,y2):直线。两端点坐标
    rectangle(x1,y1,x2,y2):空心矩形。左上角坐标,右下角坐标 。
    circle(x,y,r):空心圆。圆心坐标,半径。
    ellipse(x1,y1,x2,y2):椭圆。外切矩形左上角坐标,外切矩形右下角坐标
    如果想要将绘制的图形填充可以用前缀fill,如果想要清除一个图形区域可以用前缀clear
  4. 文字输出
    outtextxy(x,y,color)在(x,y)位置输出字符串str。(个人觉得够用了)
  5. 图像处理
    IMAGE img;
    loadimage(&img,path[, width , height]):图像读取。 IMAGE对象地址,路径。扩展参数,已制定宽高,拉伸读取。
    putimage(x0,y0,&img):图像展示。图形窗口左上角坐标处开始展示img图形。
    putimage(x0,y0,w,h,&img,x,y):图像展示。和上面相比,w,h为要展示多少像素图形,x,y为img对象从该位置开始展示。
  6. 鼠标处理
    首先,鼠标对象MOUSEMSG是一个结构体。内部有参数,x,y表示坐标,uMsg。
    uMsg的类型:
  • WM_ L \color{#0000FF}{L} L B O T T O N \color{#FF3030}{BOTTON} BOTTON D O W N \color{#00FF00}{DOWN} DOWN
    前面的WM_是一个固定形式,后面三部分是可变的。左边蓝色的值分别为L,M,R分别代表鼠标左键,中键,右键。右边绿色的值分别为DOWN,UP,DBLCLK代表按下,松起,双击信息。

三、此项目关于graphics.h图形库的接口

  1. 绘制一个窗口的API
void initgraph(int weith,int height)//创建一个宽为X长为Y的图形窗
  1. 清楚窗口的所有绘制
void cleardevice ()//清空整个窗口的绘制
  1. 在指定位置输出文字
void settextxy (int x,int y,LPCTSTR str)//坐标为(x,y)处输出字符
  1. 绘制图形
fillrectangle(int left, int top, int right, int bottom)  //画填充矩形,从起点(left,top)到终点
(right,bottom)
  1. 绘制圆角矩形
fillroundrect(int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight)
//画填充矩形,从起点(left,top) 到终点(right,bottom)
//ellipsewidth构成圆角矩形的圆角的椭圆的宽度。ellipseheight构成圆角矩形的圆角的椭圆的高度。
//若后两个相当相当于绘制一个圆形 不过不是以圆心的 是按照矩形的。
  1. 设置当前文字填充色
settextcolor(COLOR color)   //设置当前文字也就是下一行文字的颜色 宏定义RED,BLUE,YELLOW等

四、如何创建蛇和食物

蛇和食物都有一个共同的特点,就是都有坐标

//创建坐标
struct Coor{int x;int y;
};

创建蛇和食物的具体结构

//蛇
struct Snake{//蛇的结构int n;//蛇当前的长度Coor szb[SNAKELENGTH]//蛇的坐标Ch ch;//蛇移动的方向
}snake;//食物
struct Food
{Coor fzb;//食物的坐标int flag;//标记食物是否被吃掉
}

移动的方向


enum Ch
{up = 72;down = 80;left = 75;right = 77;
};

五、[游戏的流程](file:///C:/Users/admin/Desktop/%E6%9C%AA%E5%91%BD%E5%90%8D%E6%96%87%E4%BB%B6.pdf)(点击此链接)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/749156.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Column)

沿垂直方向布局的容器。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 可以包含子组件。 接口 Column(value?: {space?: string | number}) 从API version 9开始,该接口…

MySQL 中的自增ID及其应用场景

在MySQL中,自增ID主要体现在几种不同的场景下,每种自增ID都有其特定用途和行为特征: 1. Auto-Increment ID (PRIMARY KEY AUTO_INCREMENT) 场景:在创建表时,可以为某个整数字段设置AUTO_INCREMENT属性,生成…

LeetCode--58

58. 最后一个单词的长度 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大 子字符串 。 示例 1: 输入:s "Hello W…

unity学习(57)——选择角色界面--删除角色2

1.客户端添加点击按钮所触发的事件&#xff0c;在selectMenu界面中增加myDelete函数&#xff0c;当点击“删除角色”按钮时触发该函数的内容。 public void myDelete() {string message nowPlayer.id;//string m Coding<StringDTO>.encode(message);NetWorkScript.get…

Pandas中高效选择和替换操作总结

Pandas是数据操作、分析和可视化的重要工具&#xff0c;有效地使用Pandas可能具有挑战性&#xff0c;从使用向量化操作到利用内置函数&#xff0c;这些最佳实践可以帮助数据科学家使用Pandas快速准确地分析和可视化数据。 图片 在本文中&#xff0c;我们将重点介绍在DataFram…

Docker 学习笔记一

一、什么是docker Docker 是一个基于轻量级虚拟化技术的容器&#xff0c;整个项目基于Go语言开发&#xff1b;Docker是一个C/S架构&#xff0c;后端众多模块各司其职&#xff0c;docker的daemon是运行在主机上通过client可以进行通信。 docker 由三部分组成&#xff1a;镜像(…

使用Seata实现分布式事务真香!

之前分享了六种分布式事务方案&#xff1a; 本地消息表&#xff1a;如何通过本地消息表实现分布式事务 最大努力通知&#xff1a;如何使用最大努力通知实现分布式事务&#xff1f;与本地消息表区别&#xff1f; XA模式&#xff1a;用二阶段三阶段提交实现分布式事务 TCC模式…

【820复试】数据结构面试问题

文章目录 1.用循环比递归的效率高吗2.顺序表和链表的比较3.头指针和头结点的区别4.如何区分循环队列是队满还是队空&#xff1f;5.栈在通过后缀表达式求值的算法思想6.栈在递归中的应用7.队列在层次遍历中的作用8.队列在计算机系统中的应用9.矩阵的压缩存储10.串的模式匹配11.如…

解析编程中不可或缺的基础:深入了解结构体类型

精琢博客&#xff0c;希望可以给大家带来收获~ 博主主页&#xff1a;17_Kevin-CSDN博客 收录专栏&#xff1a;《C语言》 引言 在编程中&#xff0c;结构体是一种自定义的数据类型&#xff0c;它允许开发人员将不同类型的数据组合在一起&#xff0c;并为其定义相关属性和行为。…

服务端出现大量的time_wait,如何排差和解决?

出现大量的TIME_WAIT状态通常是由于网络连接的频繁创建和关闭所导致的。TIME_WAIT状态是TCP连接关闭后的一种状态&#xff0c;在该状态下&#xff0c;连接的端口在一段时间内仍然被保留&#xff0c;以确保延迟的数据包不会在网络中出现问题。 要排查和解决大量的TIME_WAIT状态…

uniapp 跳转返回携带参数(超好用)

天梦星服务平台 (tmxkj.top)https://tmxkj.top/#/ 1.返回界面 uni.$emit(enterPeople, this.entryList)uni.navigateBack({delta: 1}) 2.返回到的界面&#xff08;接收数据界面&#xff09; onShow() {let that thisuni.$on(enterPeople,function(enterPeopledata){console.…

跳出循环及数组部分方法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 for循环forEach3、filtereverysome for循环 1、continue&#xff1b;跳出当次循环&#xff0c;进行下一个循环; function ceshi(){for(var i 0 ; i < 6 ; i){if…

YOLOv8 | 添加注意力机制报错KeyError:已解决,详细步骤

目录 添加注意力机制报错 报错的原因 注意事项 解决错误流程 代码分享 ⭐欢迎大家订阅我的专栏一起学习⭐ &#x1f680;&#x1f680;&#x1f680;订阅专栏&#xff0c;更新及时查看不迷路&#x1f680;&#x1f680;&#x1f680; YOLOv5涨点专栏&#xff1a;h…

重学SpringBoot3-ServletWebServerFactoryAutoConfiguration类

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞&#x1f44d;收藏⭐评论✍ 重学SpringBoot3-ServletWebServerFactoryAutoConfiguration类 工作原理关键组件以TomcatServletWebServerFactory为例ServletWebServerFactory会创建webServer的时机关键…

25考研数据结构复习·3.2队列

队列&#xff08;Queue&#xff09;基本概念 定义 队列&#xff08;Queue&#xff09;时只允许在一端进行插入&#xff0c;在另一端删除的线性表。 特点&#xff1a;先进入队列的元素先出队 先进先出 First In First Out(FIFO) 重要术语 队头、队尾、空队列 基本操作 创、销 I…

页面配置、网络数据请求

1. 页面配置文件的作用 小程序中&#xff0c;每个页面都有自己的 .json 配置文件&#xff0c;用来对当前页面的窗口外观、页面效果等进行配置。 2. 页面配置和全局配置的关系 小程序中&#xff0c; app.json 中的 window 节点&#xff0c;可以全局配置小程序中每个页面的窗口…

网络编程-套接字相关基础知识

1.1. Socket简介 套接字&#xff08;socket&#xff09;是一种通信机制&#xff0c;凭借这种机制&#xff0c; 客户端<->服务器 模型的通信方式既可以在本地设备上进行&#xff0c;也可以跨网络进行。 Socket英文原意是“孔”或者“插座”的意思&#xff0c;在网络编程…

凝聚层次聚类算法详解

一、引言 聚类分析是数据挖掘和机器学习领域中的一种重要技术&#xff0c;用于将相似的对象分组在一起。层次聚类是聚类分析中的一种方法&#xff0c;它通过对数据集进行层次分解来满足特定的条件。在层次聚类中&#xff0c;凝聚层次聚类是一种自底向上的策略&#xff0c;它首…

Java初阶数据结构二叉树实现+练习完整(工程文件后序会进行上传)

i1.二叉树的概念 1.二叉树的定义 &#xff08;1&#xff09;二叉树可以是一个节点的有限集合 &#xff08;2&#xff09;可以为空 &#xff08;3&#xff09;或者是由一个根节点加上两棵分别称为左子树和右子树的二叉树组成的 &#xff08;4&#xff09;二叉树的每一个节点…

openGauss/MogDB调用C FUNCTION

openGauss/MogDB 调用 C FUNCTION 摘要 之前写过一篇关于postgresql 自定义函数实现&#xff0c;通过 contrib 模块进行扩展的帖子&#xff0c;今天和恩墨工程师进行了一些交流&#xff0c;在 MogDB 中也可以实现同样的功能&#xff0c;原以为需要完整的 openGauss 的源码才能…