当前位置: 编程技术>c/c++/嵌入式
C语言借助EasyX实现的生命游戏源码
来源: 互联网 发布时间:2014-10-25
本文导语: 本文讲述C语言借助EasyX实现的生命游戏,具体操作流程如下: 1.生命游戏内容: 该游戏包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死了的细胞。一个细胞在下一个时刻生死取决于相邻八个方格中活着的...
本文讲述C语言借助EasyX实现的生命游戏,具体操作流程如下:
1.生命游戏内容:
该游戏包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死了的细胞。一个细胞在下一个时刻生死取决于相邻八个方格中活着的细胞的数量。如果一个细胞周围的活细胞数量多于 3 个,这个细胞会因为资源匮乏而在下一个时刻死去;如果一个位置周围有 3 个活细胞,则该位置在下一个时刻将诞生一个新的细胞;如果一个位置周围有 2 个活细胞,则该位置的细胞生死状态保持不变;如果一个细胞周围的活细胞少于 2 个,那么这个细胞会因太孤单而死去。这样整个生命世界才不至于太过荒凉或拥挤,而是一种动态的平衡。
2.实现代码如下:
///////////////////////////////////////////////////
// 程序名称:生命游戏
// 编译环境:Visual C++ 6.0,EasyX
//
#include
#include
#include
// 定义全局变量
__int8 world[102][102] = {0}; // 定义二维世界
IMAGE imgLive, imgEmpty; // 定义活细胞和无细胞区域的图案
// 函数声明
void Init(); // 初始化
void SquareWorld(); // 创建一个细胞以方形分布的世界
void RandWorld(); // 创建一个细胞随机分布的世界
void PaintWorld(); // 绘制世界
void Evolution(); // 进化
// 主函数
int main()
{
Init();
int Speed = 500; // 游戏速度(毫秒)
while(true)
{
if (kbhit() || Speed == 900)
{
char c = getch();
if (c == ' ' && Speed != 900)
c = getch();
if (c >= '0' && c