如何制作俄罗斯方块(作业第三部分)

上接第二部分,下面要说的是最重要的CreateFlag和Gameplay函数
先是CreateFlag

void CreateFlag()
{
   
	 if(contact==0)//分了两种情况,1和0,为什么分一会就知道了
	{
   
	srand(time(NULL));//srand参数设为time,根据每次打开文件的时间来制定随机数,保证不唯一性
	pa_tetris=(asd*)malloc(sizeof(asd));//工具指针分配内存
	pz_tetris=(asd*)malloc(sizeof(asd));//尾指针分配内存
	
    pa_tetris->flag=rand()%19+1;//随机并赋值
    
	pa_tetris->pnext=NULL;//链表标准,创造了第一个节点
	pHead_tetris=pa_tetris;
	pz_tetris=pa_tetris;
	


	
	pa_tetris=(asd*)malloc(sizeof(asd));//重新申请内存,因为要在创出一个节点
	pa_tetris->flag=rand()%19+1;//随机数,%19+1是为了保证值在1-19之间,因为有19个flag
	
	pa_tetris->pnext=NULL;//链表标准,非头节点的创建
	pz_tetris->pnext=pa_tetris;
	pz_tetris=pa_tetris;
	
	
	pTemp_tetris=(asd*)malloc(sizeof(asd));//现在创建了2个节点,pTemp代替头节点,指向第一个节点
	pTemp_tetris=pHead_tetris;
	
    }
    else //else 指定的是一般情况下,即已经在游戏中时,方块链表衔接情况
    {
   
        pTemp_tetris=pz_tetris;
    	pa_tetris=(asd*)malloc(sizeof(asd));
    	pa_tetris->flag=rand()%19+1;
    	
    	pa_tetris->pnext=NULL;
    	pz_tetris->pnext=pa_tetris;
    	pz_tetris=pa_tetris;
        	
	}
}

在这里插入图片描述
因为用链表格式来制作俄罗斯方块,所以一开始不能只创建一个节点就不管了
因为俄罗斯方块,每次游戏界面都会有两个方块,一个是已经在下落的方块,还有一个是画面右侧即将落下的方块作为提示,如果只有一个节点的数据,是没有办法全部表示出来的在Gameplay里会有详细的代码来解释

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python可以使用Pygame库来制作俄罗斯方块游戏。Pygame是一个专门用于游戏开发的Python库,提供了丰富的功能和工具来创建游戏界面、处理用户输入和实现游戏逻辑。 要制作俄罗斯方块游戏,你可以按照以下步骤进行: 1. 安装Pygame库:在开始之前,你需要先安装Pygame库。可以使用pip命令来安装,命令如下: ``` pip install pygame ``` 2. 创建游戏窗口:使用Pygame创建一个窗口来显示游戏界面。你可以设置窗口的大小、标题等属性。 3. 绘制游戏界面:使用Pygame提供的绘图函数来绘制游戏界面,包括方块、背景等元素。 4. 处理用户输入:使用Pygame提供的事件处理函数来监听用户的键盘输入,根据用户的操作来移动和旋转方块。 5. 实现游戏逻辑:编写代码来实现俄罗斯方块游戏逻辑,包括方块的生成、移动、碰撞检测等。 6. 更新游戏状态:在每一帧中更新游戏状态,包括方块的位置、消除行等。 7. 渲染游戏界面:在每一帧中重新绘制游戏界面,显示更新后的游戏状态。 8. 循环运行游戏:使用一个主循环来不断更新游戏状态和渲染游戏界面,以实现游戏的连续运行。 这只是一个简单的概述,实际上制作一个完整的俄罗斯方块游戏还需要考虑更多的细节和功能。你可以在网上搜索相关的教程和示例代码来更详细地学习和了解如何使用Pygame制作俄罗斯方块游戏

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值