⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 llkform.cs

📁 这个源码是我从别的网站下载下来的!我是初学者,希望给我一点源码下载(文件包含连连看,俄罗斯方块,当代罗宾汉,智慧珠,贪吃蛇)
💻 CS
📖 第 1 页 / 共 4 页
字号:
						{	//Pic1在Pic2上方
							add = 0 ;
							for(i=Pic1TopNum;i<Pic2TopNum;i++)
							{
								add = add + DeleData[i,col] ;
							}
							if(add == (Pic2TopNum-Pic1TopNum))
							{
								//扫描线可用
								LineStatus	= 1 ;
							}
						}
					}					
				}
				else
				{
					if(Pic1TopNum == Pic2TopNum)
					{	//Pic1与Pic2在同一行
						//扫描线可用
						LineStatus	= 1 ;
					}
					if(Pic2LeftNum == col)
					{	//扫描线与Pic2在同一列
						if(Pic1TopNum > Pic2TopNum)
						{	//Pic1在Pic2下方
							add = 0 ;
							for(i=Pic2TopNum+1;i<=Pic1TopNum;i++)
							{
								add = add + DeleData[i,col] ;
							}
							if(add == (Pic1TopNum-Pic2TopNum))
							{
								//扫描线可用
								LineStatus	= 1 ;
							}					
						}
						if(Pic1TopNum < Pic2TopNum)
						{	//Pic1在Pic2上方
							add = 0 ;
							for(i=Pic1TopNum;i<Pic2TopNum;i++)
							{
								add = add + DeleData[i,col] ;
							}
							if(add == (Pic2TopNum-Pic1TopNum))
							{
								//扫描线可用
								LineStatus	= 1 ;
							}	
						}
					}
					else
					{
						if(Pic1TopNum > Pic2TopNum)
						{	//Pic1在Pic2下方
							add = 0 ;
							for(i=Pic2TopNum;i<=Pic1TopNum;i++)
							{
								add = add + DeleData[i,col] ;
							}
							if(add == (Pic1TopNum-Pic2TopNum+1))
							{
								//扫描线可用
								LineStatus	= 1 ;
							}					
						}
						if(Pic1TopNum < Pic2TopNum)
						{	//Pic1在Pic2上方
							add = 0 ;
							for(i=Pic1TopNum;i<=Pic2TopNum;i++)
							{
								add = add + DeleData[i,col] ;
							}
							if(add == (Pic2TopNum-Pic1TopNum+1))
							{
								//扫描线可用
								LineStatus	= 1 ;
							}	
						}
					}					
				}
				if(LineStatus == 1)
				{
					//2.2 检测Pic1的可连性
					if(Pic1LeftNum == col)
					{	//扫描线与Pic1在同一列
						//Pic1与扫描线可连
						Pic1Status	= 1 ;
						Path[1,0] = col*40 ;
						Path[1,1] =  Pic1.Top + 20;
					}
					if(Pic1LeftNum > col)
					{	//基准线在Pic1的左侧
						add = 0 ;
						for(i=col;i<Pic1LeftNum;i++)
						{
							add = add + DeleData[Pic1TopNum,i] ;
						}
						if(add == (Pic1LeftNum-col))
						{
							//Pic1与扫描线可连
							Pic1Status = 1 ;
							Path[1,0] = col*40 ;
							Path[1,1] =  Pic1.Top + 20;							
						}
					}
					if(Pic1LeftNum < col)
					{	//基准线在Pic1的右侧
						add = 0 ;
						for(i=Pic1LeftNum+1;i<=col;i++)
						{
							add = add + DeleData[Pic1TopNum,i] ;
						}
						if(add == col - Pic1LeftNum)
						{
							//Pic1与扫描线可连
							Pic1Status = 1 ;
							Path[1,0] = col*40 ;
							Path[1,1] =  Pic1.Top + 20;	
						}
					}
				}
				if(Pic1Status == 1)
				{
					//2.3 检测Pic2的可连性
					if(Pic2LeftNum == col)
					{
						//基准线在当前列
						//Pic2与扫描线可连
						Pic2Status = 1 ;
						Path[2,0] = col*40 ;
						Path[2,1] =  Pic2.Top + 20;								
					}
					if(Pic2LeftNum > col)
					{
						//基准线在Pic2的左侧
						add = 0 ;
						for(i=col;i<Pic2LeftNum;i++)
						{
							add = add + DeleData[Pic2TopNum,i] ;
						}
						if(add == (Pic2LeftNum-col))
						{
							//Pic2与扫描线可连
							Pic2Status = 1 ;
							Path[2,0] = col*40 ;
							Path[2,1] =  Pic2.Top + 20;							
						}
					}
					if(Pic2LeftNum < col)
					{
						//基准线在Pic2的右侧
						add = 0 ;
						for(i=Pic2LeftNum+1;i<=col;i++)
						{
							add = add + DeleData[Pic2TopNum,i] ;
						}
						if(add == col - Pic2LeftNum)
						{
							//Pic2与扫描线可连
							Pic2Status = 1 ;
							Path[2,0] = col*40 ;
							Path[2,1] =  Pic2.Top + 20;
						}
					}
				}
				if(Pic2Status == 1)
				{	//Pic1与Pic2可连
					if (col == 0)
					{
						Path[1,0] = 0 ;
						Path[1,1] =  Pic1.Top + 20;
						Path[2,0] = 0;
						Path[2,1] =  Pic2.Top + 20;
					}
					if (col == NumWidth+1)
					{
						Path[1,0] = Pic1.Parent.Width ;
						Path[1,1] = Pic1.Top + 20;
						Path[2,0] = Pic2.Parent.Width ;
						Path[2,1] = Pic2.Top + 20;
					}
					Path[3,0] = Pic2.Left + 20 ;
					Path[3,1] = Pic2.Top  + 20 ;
					PathCount = 4 ;
					return true ;
				}
			}
			//3.垂直扫描			
			for(int row=0;row<NumHeight+2;row++)
			{
				LineStatus	= 0 ;
				Pic1Status	= 0 ;
				Pic2Status	= 0 ;
				//3.1检测扫描线的可连性
				if(Pic1TopNum == row )
				{	//扫描线与Pic1同行
					if(Pic1LeftNum == Pic2LeftNum)
					{	//Pic1与Pic2同列
						//扫描线可用
						LineStatus	= 1 ;
					}
					if(Pic2TopNum == row)
					{	//扫描线与Pic2在同一行
						if(Pic1LeftNum >  Pic2LeftNum)
						{	//Pic1在Pic2右方
							add = 0 ;
							for(i=Pic2LeftNum+1;i<Pic1LeftNum;i++)
							{
								add = add + DeleData[row,i] ;
							}
							if(add == (Pic1LeftNum-Pic2LeftNum-1))
							{
								//扫描线可用
								LineStatus	= 1 ;
							}

						}
						if(Pic1LeftNum <  Pic2LeftNum)
						{	//Pic1在Pic2左方
							add = 0 ;
							for(i=Pic2LeftNum+1;i<Pic1LeftNum;i++)
							{
								add = add + DeleData[row,i] ;
							}
							if(add == (Pic2LeftNum-Pic1LeftNum-1))
							{
								//扫描线可用
								LineStatus	= 1 ;
							}
						}
					}
					else
					{
						if(Pic1LeftNum >  Pic2LeftNum)
						{	//Pic1在Pic2右方
							add = 0 ;
							for(i=Pic2LeftNum;i<Pic1LeftNum;i++)
							{
								add = add + DeleData[row,i] ;
							}
							if(add == (Pic1LeftNum-Pic2LeftNum))
							{
								//扫描线可用
								LineStatus	= 1 ;
							}

						}
						if(Pic1LeftNum <  Pic2LeftNum)
						{	//Pic1在Pic2左方
							add = 0 ;
							for(i=Pic2LeftNum;i<Pic1LeftNum;i++)
							{
								add = add + DeleData[row,i] ;
							}
							if(add == (Pic2LeftNum-Pic1LeftNum))
							{
								//扫描线可用
								LineStatus	= 1 ;
							}
						}
					}
				}
				else
				{
					if(Pic1LeftNum == Pic2LeftNum)
					{	//Pic1与Pic2同列
						//扫描线可用
						LineStatus	= 1 ;
					}
					if(Pic2TopNum == row)
					{	//扫描线与Pic2在同一行
						if(Pic1LeftNum >  Pic2LeftNum)
						{	//Pic1在Pic2右方
							add = 0 ;
							for(i=Pic2LeftNum+1;i<=Pic1LeftNum;i++)
							{
								add = add + DeleData[row,i] ;
							}
							if(add == (Pic1LeftNum-Pic2LeftNum))
							{
								//扫描线可用
								LineStatus	= 1 ;
							}	
						}
						if(Pic1LeftNum <  Pic2LeftNum)
						{	//Pic1在Pic2左方
							add = 0 ;
							for(i=Pic1LeftNum;i<Pic2LeftNum;i++)
							{
								add = add + DeleData[row,i] ;
							}
							if(add == (Pic2LeftNum-Pic1LeftNum))
							{
								//扫描线可用
								LineStatus	= 1 ;
							}	
						}
					}	
					else
					{
						if(Pic1LeftNum >  Pic2LeftNum)
						{	//Pic1在Pic2右方
							add = 0 ;
							for(i=Pic2LeftNum;i<=Pic1LeftNum;i++)
							{
								add = add + DeleData[row,i] ;
							}
							if(add == (Pic1LeftNum-Pic2LeftNum+1))
							{
								//扫描线可用
								LineStatus	= 1 ;
							}	
						}
						if(Pic1LeftNum <  Pic2LeftNum)
						{	//Pic1在Pic2左方
							add = 0 ;
							for(i=Pic1LeftNum;i<=Pic2LeftNum;i++)
							{
								add = add + DeleData[row,i] ;
							}
							if(add == (Pic2LeftNum-Pic1LeftNum+1))
							{
								//扫描线可用
								LineStatus	= 1 ;
							}	
						}
					}
				}
				//3.2检测Pic1的可连性
				if(LineStatus == 1)
				{
					if(Pic1TopNum == row)
					{	//扫描线与Pic1在同一行
						//Pic1与扫描线可连
						Pic1Status = 1 ;
					}
					if(Pic1TopNum  > row)
					{	//扫描线在Pic1上方
						add = 0 ;
						for(i=row;i<Pic1TopNum;i++)
						{
							add = add + DeleData[i,Pic1LeftNum] ;
						}
						if(add == (Pic1TopNum-row))
						{
							//Pic1与扫描线可连
							Pic1Status = 1 ;
							Path[1,0] = Pic1.Left + 20 ;
							Path[1,1] = row*40 ;							
						}
					}
					if(Pic1TopNum  < row)
					{	//扫描线在Pic1下方
						add = 0 ;
						for(i=row;i>Pic1TopNum;i--)
						{
							add = add + DeleData[i,Pic1LeftNum] ;
						}
						if(add == row - Pic1TopNum)
						{
							//Pic1与扫描线可连
							Pic1Status = 1 ;
							Path[1,0] = Pic1.Left + 20 ;
							Path[1,1] = row*40;
						}
					}
				}
				//3.3检测Pic2的可连性
				if(Pic1Status == 1)
				{
					if(Pic2TopNum == row)
					{
						//基准线在当前行
						//Pic2与扫描线可连
						Pic2Status = 1 ;
						Path[2,0] = Pic2.Left + 20;
						Path[2,1] = row*40;							
					}
					if(Pic2TopNum > row)
					{	//基准线在Pic2上方
						add = 0 ;
						for(i=row;i<Pic2TopNum;i++)
						{
							add = add + DeleData[i,Pic2LeftNum] ;
						}
						if(add == (Pic2TopNum-row))
						{
							//Pic2与扫描线可连
							Pic2Status = 1 ;
							Path[2,0] = Pic2.Left + 20;
							Path[2,1] = row*40;
						}
					}
					if(Pic2TopNum < row)
					{	//基准线在Pic2下方
						add = 0 ;
						for(i=row;i>Pic2TopNum;i--)
						{
							add = add + DeleData[i,Pic2LeftNum] ;
						}
						if(add == (row-Pic2TopNum))
						{
							//Pic1可达
							Path[2,0] = Pic2.Left + 20;
							Path[2,1] = row*40;	
							Pic2Status = 1 ;
						}
					}
				}
				if(Pic2Status == 1)
				{	//Pic1与Pic2可连
					if (row == 0)
					{
						Path[1,0] = Pic1.Left + 20 ;
						Path[1,1] = 0;
						Path[2,0] = Pic2.Left + 20;
						Path[2,1] = 0;
					}
					if (row == NumHeight+1)
					{
						Path[1,0] = Pic1.Left + 20 ;
						Path[1,1] = Pic1.Parent.Height;
						Path[2,0] = Pic2.Left + 20 ;
						Path[2,1] = Pic2.Parent.Height;
					}
					Path[3,0] = Pic2.Left + 20 ;
					Path[3,1] = Pic2.Top  + 20 ;
					PathCount = 4 ;
					return true ;
				}
			}
			return false ;		
		}
		private void PicDelete(PictureBox Pic1,PictureBox Pic2)
		{
			int NumTmp,i,Left1,Left2,Top1,Top2,NumRowLine,NumColLin ;
			//两图间画线
			PathShow(Pic1,Pic2) ;
			//奖励时间与积分
			if (NumTime < NumTimeMax )	
			{
				NumTime += NumTimeAdd ;	
				labelSchedule.Left 		= (int)(NumTime * NumPlanDec);
				labelSchedule.Width		= panelSchedule.Width - labelSchedule.Left;
			}			
			NumTmp = int.Parse(labelAchievement.Text.Trim()) ;
			NumTmp = NumTmp + 10 ;
			labelAchievement.Text = NumTmp.ToString() ;			
			//销毁图片对象
			Panel PanelTmp = (Panel)Pic1.Parent ;
			Left1	= Pic1.Left ;
			Top1	= Pic1.Top ;
			Left2	= Pic2.Left ;
			Top2	= Pic2.Top ;
			Thread.Sleep(500);
			DeleData[(Top1- 20)/40+1,(Left1- 20)/40+1] = 1 ;
			DeleData[(Top2- 20)/40+1,(Left2- 20)/40+1] = 1 ;
			Pic1.Dispose() ;
			Pic2.Dispose() ;
			Palette.Clear(Color.Black) ;
			//处理剩余图片对象
			NumTmp = PanelTmp.Controls.Count ;
			NumColLin = PanelTmp.Width/2 ;
			NumRowLine = PanelTmp.Height/2 ;
			switch (NumLev)
			{
				case 1 :			
					//不变化
					//保存空闲坐标信息
					DeleData[Pic1.Top/40+1,Pic1.Left/40+1] = 1 ;
					DeleData[Pic2.Top/40+1,Pic2.Left/40+1] = 1 ;					
					break;
				case 2 :			
					//向下
					for(i=0;i<NumTmp;i++)	
					{
						if((PanelTmp.Controls[i].Left == Left1)&&(PanelTmp.Controls[i].Top <= Top1))
						{	
							//保存空闲坐标信息
							DeleData[(PanelTmp.Controls[i].Top-20)/40+1,(PanelTmp.Controls[i].Left-20)/40+1]++ ;
							//移位
							PanelTmp.Controls[i].Top = PanelTmp.Controls[i].Top + 40 ;
							DeleData[(PanelTmp.Controls[i].Top-20)/40+1,(PanelTmp.Controls[i].Left-20)/40+1]-- ;
						}
						if((PanelTmp.Controls[i].Left == Left2)&&(PanelTmp.Controls[i].Top <= Top2))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -