<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[南雨兮]]></title><description><![CDATA[一个不务正业的游戏开发者，不忘初心，追逐梦想。]]></description><link>https://blog.csdn.net/qq_31243065</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; qq_31243065]]></copyright><item><title><![CDATA[排序算法：选择排序]]></title><link>https://blog.csdn.net/qq_31243065/article/details/115298078</link><guid>https://blog.csdn.net/qq_31243065/article/details/115298078</guid><author>qq_31243065</author><pubDate>Tue, 30 Mar 2021 00:21:30 +0800</pubDate><description><![CDATA[1. 什么是选择排序？（摘抄自百度百科）

选择排序（Selection sort）是一种简单直观的排序算法。

它的工作原理是：

第一次从待排序的数据元素中选出最小（或最大）的一个元素，存放在序列的起始位置，然后再从剩余的未排序元素中寻找到最小（大）元素，然后放到已排序的序列的末尾。

以此类推，直到全部待排序的数据元素的个数为零。

选择排序是不稳定的排序方法。



2.选择排序算法实现（摘抄自百度百科(C语言版伪代码)）


void selectionsort(int n, keytype S.]]></description><category></category></item><item><title><![CDATA[排序算法：冒泡排序]]></title><link>https://blog.csdn.net/qq_31243065/article/details/114825862</link><guid>https://blog.csdn.net/qq_31243065/article/details/114825862</guid><author>qq_31243065</author><pubDate>Sat, 27 Mar 2021 17:21:37 +0800</pubDate><description><![CDATA[1. 什么是冒泡排序？（摘抄自百度百科）

冒泡排序（Bubble Sort），是一种计算机科学领域的较简单的排序算法。

它重复地走访过要排序的元素列，依次比较两个相邻的元素，如果顺序（如从大到小、首字母从Z到A）错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换，也就是说该元素列已经排序完成。

这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端（升序或降序排列），就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样，故名“冒泡排序”。



2. 冒泡排序算法原理.]]></description><category></category></item><item><title><![CDATA[OpenGL 游戏开发: 熟悉练习【《OpenGL超级宝典》第二章】]]></title><link>https://blog.csdn.net/qq_31243065/article/details/108206295</link><guid>https://blog.csdn.net/qq_31243065/article/details/108206295</guid><author>qq_31243065</author><pubDate>Tue, 25 Aug 2020 18:18:17 +0800</pubDate><description><![CDATA[学习了《OpenGL超级宝典》第二章后，编写了我们的第一个OpenGL程序，也真正开始了OpenGL之旅。

下面来让我们一起重新练习熟悉一下第二章的3个例子吧！



1. "Triangle" 第一个三角形

通过这个例子我们熟悉了OpenGL的一些流程，如初始化、窗口的创建、窗口的标题、图形的渲染等。

具体的例子代码我就不复制贴出了哈~，下面我只贴出我对此例子做的一些学习扩展：


// +++++++++++++++++++++++++++++++++++++++
// 《OpenGL 超级宝..]]></description><category></category></item><item><title><![CDATA[《OpenGL超级宝典》第二章：入门指南]]></title><link>https://blog.csdn.net/qq_31243065/article/details/105466436</link><guid>https://blog.csdn.net/qq_31243065/article/details/105466436</guid><author>qq_31243065</author><pubDate>Fri, 21 Aug 2020 19:44:19 +0800</pubDate><description><![CDATA[1
]]></description><category></category></item><item><title><![CDATA[《OpenGL超级宝典》第一章：3D图形和OpenGL简介]]></title><link>https://blog.csdn.net/qq_31243065/article/details/105212396</link><guid>https://blog.csdn.net/qq_31243065/article/details/105212396</guid><author>qq_31243065</author><pubDate>Tue, 07 Apr 2020 23:42:28 +0800</pubDate><description><![CDATA[1.1 计算机图形的简单历史回顾

摘要：最早的计算机是由一行行的开关和灯组成的(ENIAC)。 技术人员和工程师需要工作几个小时、几天甚至几星期，对这些机器进行编程，并阅读他们的计算结果。随着时间的变迁，这一切逐渐发生了变化。数据可以有效地存储在磁带、磁盘上，甚至可以一行行地存储在打孔纸上，或者存储在一堆穿孔卡上(穿孔纸带)。

1.1.1 进入电子时代

摘要：

①. 纸作为计算机的输出媒体...]]></description><category></category></item><item><title><![CDATA[Win32软件开发: 按键精灵 鼠标模拟器（VibraClick）]]></title><link>https://blog.csdn.net/qq_31243065/article/details/105232958</link><guid>https://blog.csdn.net/qq_31243065/article/details/105232958</guid><author>qq_31243065</author><pubDate>Wed, 01 Apr 2020 01:15:25 +0800</pubDate><description><![CDATA[1. 简介

玩游戏的时候难免会遇到一些游戏的 "折磨"。例如：我们要使用道具的时候，可这个道具居然没有批量使用！！！

那行吧，我们就来动手做一个按键精灵解放我们的双手。

PS：目前只做了鼠标按键版的，如果有需要键盘的，可以私信或下方留言，后续看需补充吧~



2. 那我们就开始吧~

①. 首先是Win32的框架(这里我就直接套用过来了，不懂可以看下我之前的文章哈~)


//+++++...]]></description><category></category></item><item><title><![CDATA[Win32 游戏开发：贪吃蛇 下篇]]></title><link>https://blog.csdn.net/qq_31243065/article/details/97837421</link><guid>https://blog.csdn.net/qq_31243065/article/details/97837421</guid><author>qq_31243065</author><pubDate>Sat, 10 Aug 2019 19:48:36 +0800</pubDate><description><![CDATA[因为个人原因更新来晚了，向各位关注的读者道个歉...

前排提示: 文章非常的长！！！(如有不懂的请在文章下方评论)



6）开始码代码啦

经过上面的前期工作，我们应该更清楚我们要做怎么做了(至少有一个方向了吧~)

一、首先是一个基础的Win32的框架(不懂可以看下我的这篇文章)

二、简单介绍贪吃蛇中游戏对象的类



PS:有看过之前一个游戏的会发现，我这个游戏也有Util这个类，以后...]]></description><category></category></item><item><title><![CDATA[Win32 游戏开发：贪吃蛇 上篇]]></title><link>https://blog.csdn.net/qq_31243065/article/details/97119523</link><guid>https://blog.csdn.net/qq_31243065/article/details/97119523</guid><author>qq_31243065</author><pubDate>Wed, 24 Jul 2019 14:14:47 +0800</pubDate><description><![CDATA[1）贪吃蛇游戏介绍（摘抄自百度百科）


1976年，Gremlin平台推出了一款经典街机游戏Blockade。游戏中，两名玩家分别控制一个角色在屏幕上移动，所经之处砌起围栏。角色只能向左、右方向90度转弯，游戏目标保证让对方先撞上屏幕或围栏。　听起来有点复杂，其实就是下面这个样子：

基本上就是两条每走一步都会长大的贪吃蛇比谁后完蛋，玩家要做的就是避免撞上障碍物和越来越长的身体。更多照片、视频可...]]></description><category></category></item><item><title><![CDATA[Win32 游戏开发：TicTacToe(井字游戏) 下篇]]></title><link>https://blog.csdn.net/qq_31243065/article/details/83793006</link><guid>https://blog.csdn.net/qq_31243065/article/details/83793006</guid><author>qq_31243065</author><pubDate>Wed, 07 Nov 2018 14:58:39 +0800</pubDate><description><![CDATA[上篇进行讲解了游戏的规则、界面设计、游戏流程、······

下面我们继续码代码吧，(#^.^#)



在写代码前先说之前所漏掉的两个枚举，分别是：

① ClickPlayer (枚举点击玩家)


/* 点击玩家枚举 */
typedef enum _ClickPlayer {
	ClickPlayer_Player1 = 0x00000001,	// 玩家1
	ClickPlayer_P...]]></description><category></category></item><item><title><![CDATA[Win32 游戏开发：TicTacToe(井字游戏) 上篇]]></title><link>https://blog.csdn.net/qq_31243065/article/details/83755840</link><guid>https://blog.csdn.net/qq_31243065/article/details/83755840</guid><author>qq_31243065</author><pubDate>Tue, 06 Nov 2018 19:35:01 +0800</pubDate><description><![CDATA[1) 简单介绍&quot;井字游戏&quot;(TicTacToe)

是一种在3x3格子上进行的连珠游戏，和五子棋比较类似，由于棋盘一般不画边框，格线排成井字故得名。(摘抄自百度百科)

(还记得以前经常跟同桌一起在本子上玩这个呢，哈哈哈~~~(/捂脸))



2) 游戏规则

由分别代表O和X的两个游戏者轮流在格子里留下标记（一般来说先手者为X）。由最先在任意一条直线上成功连接三个标记的一方获胜。(摘抄自百度...]]></description><category></category></item><item><title><![CDATA[Win32 程序开发：创建一个应用程序窗口]]></title><link>https://blog.csdn.net/qq_31243065/article/details/83548481</link><guid>https://blog.csdn.net/qq_31243065/article/details/83548481</guid><author>qq_31243065</author><pubDate>Fri, 02 Nov 2018 20:38:52 +0800</pubDate><description><![CDATA[1)简单介绍创建应用程序的步骤

1.设计一个窗口类

2.注册这个窗口类

3.创建应用程序窗口

4.更新显示窗口

5.应用程序消息循环



2)下面根据这个步骤进行创建一个应用程序窗口吧(编译器为VS2017)



/* 头文件 */
#include &amp;lt;windows.h&amp;gt;

/* 全局变量 */
WCHAR g_lpszClassName[] = L&quot;CLASSNAM...]]></description><category></category></item><item><title><![CDATA[Win32 程序开发：一个简单的Win32程序]]></title><link>https://blog.csdn.net/qq_31243065/article/details/83540500</link><guid>https://blog.csdn.net/qq_31243065/article/details/83540500</guid><author>qq_31243065</author><pubDate>Tue, 30 Oct 2018 14:43:36 +0800</pubDate><description><![CDATA[1)什么是Win32

Win32是指Microsoft Windows操作系统的32位环境，与Win64 都为Windows常见环境。如今的Win32操作系统可以一边听音乐，一边编程，一边打印文档。Win32操作系统是一个典型的多线程操作系统。(摘抄自百度百科)



个人看点：Win32程序也就是我们在Window中最常见的应用程序了，比如：浏览器、音乐播放器、视频播放器、游戏客户端等等

...]]></description><category></category></item><item><title><![CDATA[Win32 程序开发：窗口类结构体WNDCLASS和WNDCLASSEX]]></title><link>https://blog.csdn.net/qq_31243065/article/details/83513795</link><guid>https://blog.csdn.net/qq_31243065/article/details/83513795</guid><author>qq_31243065</author><pubDate>Mon, 29 Oct 2018 23:42:56 +0800</pubDate><description><![CDATA[1) 简单介绍窗口类结构体



1. 什么是窗口类结构体(摘抄自百度百科)

窗口类结构体是用来储存某一类窗口的信息，窗口类结构体包含了一个窗口类的全部信息。

比如：窗口的图标、菜单栏、背景颜色、窗口的消息处理等等



2.窗口类结构体 WNDCLASS和WNDCLASSEX

窗口类结构体有：WNDCLASS、WNDCLASSEX

WNDCLASS    为早期的版本

W...]]></description><category></category></item><item><title><![CDATA[C语言：字母大小写转换]]></title><link>https://blog.csdn.net/qq_31243065/article/details/83043363</link><guid>https://blog.csdn.net/qq_31243065/article/details/83043363</guid><author>qq_31243065</author><pubDate>Tue, 16 Oct 2018 14:44:11 +0800</pubDate><description><![CDATA[1. 字母大小写转换



1)首先简单介绍ASCII码

(摘抄自ASCII码百度百科)



在此ASCII码中可以知道：

A-Z的ASCII值为 : 65-90

a-z的ASCII值为 :97-122



2)开始字母大小写转换

下面通过一个简单的程序进行演示字母的大小写转换(为了方便查看结果,使用printf进行输出)


#include &lt;stdio.h&gt;
...]]></description><category></category></item><item><title><![CDATA[C语言：比较两个字符串是否相等]]></title><link>https://blog.csdn.net/qq_31243065/article/details/82810165</link><guid>https://blog.csdn.net/qq_31243065/article/details/82810165</guid><author>qq_31243065</author><pubDate>Mon, 24 Sep 2018 13:02:23 +0800</pubDate><description><![CDATA[1) 使用strcmp进行比较

下面通过一个例子进行演示：


#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;string.h&amp;gt;

int main(void)
{
	char* str1 = &quot;abc&quot;;
	char* str2 = &quot;abc&quot;;

	if (strcmp(str1, str2) == 0) {
	    printf(&quot;str1和str2相...]]></description><category></category></item><item><title><![CDATA[C语言逻辑运算符： && 和 ||]]></title><link>https://blog.csdn.net/qq_31243065/article/details/82659669</link><guid>https://blog.csdn.net/qq_31243065/article/details/82659669</guid><author>qq_31243065</author><pubDate>Wed, 12 Sep 2018 15:48:04 +0800</pubDate><description><![CDATA[1. 简单介绍 &amp;amp;&amp;amp; 和 ||

&amp;amp;&amp;amp; 和 || 是逻辑运算符，分别是逻辑与(&amp;amp;&amp;amp;)和逻辑或(||)

1) &amp;amp;&amp;amp; (逻辑与)：(三种)

①当逻辑与左边为false(假)，则不再进行逻辑与右边的判断，结果为false(假)

② 当逻辑与左边为true(真)则进行右边判断，右边为false(假)，结果为false(假)

③ 当逻...]]></description><category></category></item><item><title><![CDATA[C语言的 = 和 ==、!=]]></title><link>https://blog.csdn.net/qq_31243065/article/details/80954274</link><guid>https://blog.csdn.net/qq_31243065/article/details/80954274</guid><author>qq_31243065</author><pubDate>Tue, 11 Sep 2018 14:20:41 +0800</pubDate><description><![CDATA[简单讲解 = 和 ==、!=



1.=：

在C语言中等号(=)为赋值操作符，下面进行简单说明赋值操作符的使用



1) 变量的赋值操作：


int a;
a = 10;

此处为将10赋值给a，赋值过后a的值为10



2) 指针变量的赋值操作：(分别为 取地址的赋值和指针变量的赋值)

第一种：


int arr[999] = { 0 };
int *p = NULL;
p...]]></description><category></category></item><item><title><![CDATA[C语言：向文件末尾进行追加数据]]></title><link>https://blog.csdn.net/qq_31243065/article/details/82354557</link><guid>https://blog.csdn.net/qq_31243065/article/details/82354557</guid><author>qq_31243065</author><pubDate>Mon, 03 Sep 2018 21:40:10 +0800</pubDate><description><![CDATA[1)直接进入主题吧

通过一个简单的示例进行讲解（此示例用文本文件进行演示）：


#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
#include &amp;lt;errno.h&amp;gt;

#define FILE_NAME &quot;demo.txt&quot; // 文件名称

int main()
{
	FILE* fp = NULL; // 文件指针
	cha...]]></description><category></category></item><item><title><![CDATA[C语言关键字：goto]]></title><link>https://blog.csdn.net/qq_31243065/article/details/80953550</link><guid>https://blog.csdn.net/qq_31243065/article/details/80953550</guid><author>qq_31243065</author><pubDate>Sat, 07 Jul 2018 19:59:43 +0800</pubDate><description><![CDATA[1)简单介绍goto(无条件转移语句)goto：goto(无条件转移语句)的格式如下：goto 语句标号;
goto(无条件转移语句)要搭配标识符使用，标识符的格式如下：标号:通过goto 标号(此标号可以为任意程序中定义的标号)，程序就能直接跳转到标号所在位置2)goto(无条件转移语句)的使用goto：(为了清楚看到结果使用printf格式化输出结果)#include &amp;lt;stdio.h&amp;...]]></description><category></category></item><item><title><![CDATA[C语言关键字：break、continue]]></title><link>https://blog.csdn.net/qq_31243065/article/details/80940854</link><guid>https://blog.csdn.net/qq_31243065/article/details/80940854</guid><author>qq_31243065</author><pubDate>Fri, 06 Jul 2018 21:57:02 +0800</pubDate><description><![CDATA[1)简单说下break和continuebreak：跳出离他最近的循环(for或while或do...while)或者switch(开关语句)continue：在循环体内使用，当程序执行到continue语句后，在continue后面的语句在本次循环中就会被再被执行，然后跳到离他最近的循环(for或while或do...while)，然后重新判断在执行循环体2)break和continue的使用...]]></description><category></category></item></channel></rss>