• 2019年春第二次课程设计实验报告


    2019年春第二次课程设计实验报告

    实验项目名称:

    生命游戏

    功能描述:

    假设有int Cells[50][50],即有50*50个小格子,每个小格子里面生命存活(值为1)或者死亡(值为0),通过把所有元素的生命状态输出可以显示出相应的图案。

    项目结构模块介绍:

    1.全局变量

    int cells[High][Width]; // 所有位置细胞生1或死0 
    void gotoxy(int x,int y) //光标移动到(x,y)位置 
    { 
    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); 
    COORD pos; 
    pos.X = x; 
    pos.Y = y; 
    SetConsoleCursorPosition(handle,pos); 
    } 
    

    2.数据初始化

    void startup() // 数据初始化 
    { 
    int i,j; 
    for (i=0;i<High;i++) // 初始化 
    for (j=0;j<Width;j++) 
    { 
    cells[i][j] = 1; 
    } 
    } 
    

    3.显示画面

    void show() // 显示画面 
    { 
    gotoxy(0,0); // 光标移动到原点位置,以下重画清屏 
    int i,j; 
    for (i=1;i<=High-1;i++) 
    { 
    for (j=1;j<=Width-1;j++) 
    { 
    if (cells[i][j]==1) 
    printf("*"); // 输出活的细胞 
    else 
    printf(" "); // 输出空格 
    } 
    printf("
    "); 
    } 
    Sleep(50); 
    } 
    

    4.与用户输入无关的更新

     void updateWithoutInput()  // 与用户输入无关的更新
    {	
    	int NewCells[High][Width]; // 下一帧的细胞情况
    	int NeibourNumber; //统计邻居的个数
    	int i,j;
    	for (i=1;i<=High-1;i++)
    	{
    		for (j=1;j<=Width-1;j++)
    		{
    			NeibourNumber = cells[i-1][j-1] + cells[i-1][j] + cells[i-1][j+1]
    				+ cells[i][j-1] + cells[i][j+1] + cells[i+1][j-1] + cells[i+1][j] + cells[i+1][j+1];
    			if (NeibourNumber==3)
    				NewCells[i][j] = 1;  
    			else if (NeibourNumber==2)
    				NewCells[i][j] = cells[i][j];
    			else
    				NewCells[i][j] = 0; 
    		}
    	}
    	
    	for (i=1;i<=High-1;i++)
    		for (j=1;j<=Width-1;j++)
    			cells[i][j] = NewCells[i][j];
    }
    

    5.与用户输入有关的更新

    void updateWithInput() // 与用户输入有关的更新 
    { 
    } 
    int main() 
    { 
    startup(); // 数据初始化 
    while (1) // 游戏循环执行 
    { 
    show(); // 显示画面 
    updateWithoutInput(); // 与用户输入无关的更新 
    updateWithInput(); // 与用户输入有关的更新 
    } 
    return 0; 
    } 
    

    截图

    代码托管连接

    https://gitee.com/wjx0229/difficult_team/blob/master/生命游戏.cpp

    实验总结:

    经过上一次的作业和书本的辅助,开始了分小内容的游戏设计,这个游戏也加入了我没有掌握的数组元素,有难度。

  • 相关阅读:
    day30---多态与鸭子类型
    day---30 Mixins机制与重用父类功能的两种方式
    day29---面向对象编程之继承
    day---28 作业
    day28---面向对象之封装
    day27----作业
    day---27面向对象编程与类
    day26---ATM+购物车
    day25---软件设计的3层架构
    day24---RE模块部分整理
  • 原文地址:https://www.cnblogs.com/wjx0229/p/10955462.html
Copyright © 2020-2023  润新知