电路图如图
以下是代码实现部分
通过pan数组控制pan本身的各个特征,在通过函数显示在显示屏上,按钮都使用中断模式
int hannuolength[5]={36,30,24,18,10};//盘子的长度,不变
int hannuoheight[5]={60,50,40,30,20};//盘子显示出来的高度,随着移动而变化
int hannuoqishi[3]={0,43,85};//显示盘子的起始位置,对应A/B/C
int numhannuo[3]={5,0,0};//A/B/C上有几个盘子
int hannuo[3][5]={
{1,1,1,1,1},{0,0,0,0,0},{0,0,0,0,0}};//A/B/C柱子的12345盘的情况,在A柱则盘子对应的下标就对应为1
int pan[][4]={
{0,0,0,4},{0,1,1,3},{0,2,2,2},{0,3,3,1},{0,4,4,0}};//第几个盘,length数,高度,第*大盘子
int KeepMid[5]={0,3,6,9,13};//起始位置的偏移值,让盘子显示居中
/* USER CODE END PTD */
//盘的排名,第几个柱子
//如果此时柱子数组中盘子排名前没有其余盘子,则1,否则0
int HasBigger(int pannum,int zhunum)
{
for(int i = 4; i >= 0; i--)
{
if(hannuo[zhunum-1][i] == 1 && i > pannum)