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

📄 elsform.cs

📁 这个源码是我从别的网站下载下来的!我是初学者,希望给我一点源码下载(文件包含连连看,俄罗斯方块,当代罗宾汉,智慧珠,贪吃蛇)
💻 CS
📖 第 1 页 / 共 3 页
字号:
								if(Free[Y/PBox[0].Height-1,X/PBox[0].Width+1] == 1) {	accept = false ;	}
								if(Free[Y/PBox[0].Height-1,X/PBox[0].Width+2] == 1) {	accept = false ;	}								
								if(accept)
								{
									PBox[0].Left	= X;
									PBox[0].Top		= Y;
									PBox[1].Left	= PBox[0].Left + PBox[0].Width ;
									PBox[1].Top		= PBox[0].Top ;
									PBox[2].Left	= PBox[1].Left;
									PBox[2].Top		= PBox[1].Top - PBox[0].Height ;
									PBox[3].Left	= PBox[2].Left + PBox[0].Width ;
									PBox[3].Top		= PBox[2].Top;
								}
							}
							break;
						case 4 :
							//向左
							if((X <= (PicBox.Width - 2*PBox[0].Width))&&(Y <= (PicBox.Height - 3*PBox[0].Height)))
							{
								accept = true ;
								if(Free[Y/PBox[0].Height+1,X/PBox[0].Width] == 1) {	accept = false ;	}
								if(Free[Y/PBox[0].Height+1,X/PBox[0].Width+1] == 1) {	accept = false ;	}
								if(Free[Y/PBox[0].Height+2,X/PBox[0].Width+1] == 1) {	accept = false ;	}								
								if(accept)
								{
									PBox[0].Left	= X;
									PBox[0].Top		= Y;
									PBox[1].Left	= PBox[0].Left;
									PBox[1].Top		= PBox[0].Top + PBox[0].Height ;
									PBox[2].Left	= PBox[1].Left + PBox[0].Width;
									PBox[2].Top		= PBox[1].Top ;
									PBox[3].Left	= PBox[2].Left ;
									PBox[3].Top		= PBox[2].Top + PBox[0].Height ;
								}
							}
							break;
					}					
					PBox[0].Visible = true ;
					PBox[1].Visible = true ;
					PBox[2].Visible = true ;
					PBox[3].Visible = true ;
					break;
				case 5 :		
					//左L						
					switch (POrientation)
					{
						case 0 :
							//初始
							PBox[0].Left	= X;
							PBox[0].Top		= Y;
							PBox[1].Left	= PBox[0].Left ;
							PBox[1].Top		= PBox[0].Top + PBox[0].Height ;
							PBox[2].Left	= PBox[1].Left;
							PBox[2].Top		= PBox[1].Top + PBox[0].Height ;
							PBox[3].Left	= PBox[2].Left + PBox[0].Width ;
							PBox[3].Top		= PBox[2].Top;
							break;
						case 1 :
							//向上
							if((X <= (PicBox.Width - 2*PBox[0].Width))&&(Y <= (PicBox.Height - 3*PBox[0].Height)))
							{
								accept = true ;
								if(Free[Y/PBox[0].Height+1,X/PBox[0].Width] == 1)   {	accept = false ;	}
								if(Free[Y/PBox[0].Height+2,X/PBox[0].Width] == 1)   {	accept = false ;	}
								if(Free[Y/PBox[0].Height+2,X/PBox[0].Width+1] == 1) {	accept = false ;	}								
								if(accept)
								{
									PBox[0].Left	= X;
									PBox[0].Top		= Y;
									PBox[1].Left	= PBox[0].Left ;
									PBox[1].Top		= PBox[0].Top + PBox[0].Height ;
									PBox[2].Left	= PBox[1].Left;
									PBox[2].Top		= PBox[1].Top + PBox[0].Height ;
									PBox[3].Left	= PBox[2].Left + PBox[0].Width ;
									PBox[3].Top		= PBox[2].Top;
								}
							}
							break;
						case 2 :
							//向右
							if((X >= 2*PBox[0].Width)&&(Y <= (PicBox.Height - 2*PBox[0].Height)))
							{
								accept = true ;
								if(Free[Y/PBox[0].Height,X/PBox[0].Width-1] == 1)   {	accept = false ;	}
								if(Free[Y/PBox[0].Height,X/PBox[0].Width-2] == 1)   {	accept = false ;	}
								if(Free[Y/PBox[0].Height+1,X/PBox[0].Width-2] == 1) {	accept = false ;	}								
								if(accept)
								{
									PBox[0].Left	= X;
									PBox[0].Top		= Y;
									PBox[1].Left	= PBox[0].Left - PBox[0].Width;
									PBox[1].Top		= PBox[0].Top ;
									PBox[2].Left	= PBox[1].Left - PBox[0].Width;
									PBox[2].Top		= PBox[1].Top ;
									PBox[3].Left	= PBox[2].Left ;
									PBox[3].Top		= PBox[2].Top  + PBox[0].Height;
								}
							}
							break;
						case 3 :
							//向下
							if((X >= PBox[0].Width)&&(Y >= 2*PBox[0].Height))
							{
								accept = true ;
								if(Free[Y/PBox[0].Height-1,X/PBox[0].Width] == 1)   {	accept = false ;	}
								if(Free[Y/PBox[0].Height-2,X/PBox[0].Width] == 1)   {	accept = false ;	}
								if(Free[Y/PBox[0].Height-2,X/PBox[0].Width-1] == 1) {	accept = false ;	}								
								if(accept)
								{
									PBox[0].Left	= X;
									PBox[0].Top		= Y;
									PBox[1].Left	= PBox[0].Left ;
									PBox[1].Top		= PBox[0].Top - PBox[0].Height ;
									PBox[2].Left	= PBox[1].Left;
									PBox[2].Top		= PBox[1].Top - PBox[0].Height ;
									PBox[3].Left	= PBox[2].Left - PBox[0].Width ;
									PBox[3].Top		= PBox[2].Top;
								}
							}
							break;
						case 4 :
							//向左
							if((X <= (PicBox.Width - 3*PBox[0].Width))&&(Y >= PBox[0].Height))
							{
								accept = true ;
								if(Free[Y/PBox[0].Height,X/PBox[0].Width+1] == 1)   {	accept = false ;	}
								if(Free[Y/PBox[0].Height,X/PBox[0].Width+2] == 1)   {	accept = false ;	}
								if(Free[Y/PBox[0].Height-1,X/PBox[0].Width+2] == 1) {	accept = false ;	}								
								if(accept)
								{
									PBox[0].Left	= X;
									PBox[0].Top		= Y;
									PBox[1].Left	= PBox[0].Left + PBox[0].Width;
									PBox[1].Top		= PBox[0].Top ;
									PBox[2].Left	= PBox[1].Left + PBox[0].Width;
									PBox[2].Top		= PBox[1].Top ;
									PBox[3].Left	= PBox[2].Left ;
									PBox[3].Top		= PBox[2].Top  - PBox[0].Height;
								}
							}
							break;
					}					
					PBox[0].Visible = true ;
					PBox[1].Visible = true ;
					PBox[2].Visible = true ;
					PBox[3].Visible = true ;
					break;
				case 6 :		
					//右L					
					switch (POrientation)
					{
						case 0 :
							//初始
							PBox[0].Left	= X;
							PBox[0].Top		= Y;
							PBox[1].Left	= PBox[0].Left ;
							PBox[1].Top		= PBox[0].Top + PBox[0].Height ;
							PBox[2].Left	= PBox[1].Left;
							PBox[2].Top		= PBox[1].Top + PBox[0].Height ;
							PBox[3].Left	= PBox[2].Left - PBox[0].Width ;
							PBox[3].Top		= PBox[2].Top;
							break;
						case 1 :
							//向上
							if((X >= PBox[0].Width)&&(Y <= (PicBox.Height - 3*PBox[0].Height)))
							{
								accept = true ;
								if(Free[Y/PBox[0].Height+1,X/PBox[0].Width] == 1)   {	accept = false ;	}
								if(Free[Y/PBox[0].Height+2,X/PBox[0].Width] == 1)   {	accept = false ;	}
								if(Free[Y/PBox[0].Height+2,X/PBox[0].Width-1] == 1) {	accept = false ;	}								
								if(accept)
								{
									PBox[0].Left	= X;
									PBox[0].Top		= Y;
									PBox[1].Left	= PBox[0].Left ;
									PBox[1].Top		= PBox[0].Top + PBox[0].Height ;
									PBox[2].Left	= PBox[1].Left;
									PBox[2].Top		= PBox[1].Top + PBox[0].Height ;
									PBox[3].Left	= PBox[2].Left - PBox[0].Width ;
									PBox[3].Top		= PBox[2].Top;
								}
							}
							break;
						case 2 :
							//向右
							if((X >= 2*PBox[0].Width)&&(Y >= PBox[0].Height))
							{
								accept = true ;
								if(Free[Y/PBox[0].Height,X/PBox[0].Width-1] == 1)   {	accept = false ;	}
								if(Free[Y/PBox[0].Height,X/PBox[0].Width-2] == 1)   {	accept = false ;	}
								if(Free[Y/PBox[0].Height-1,X/PBox[0].Width-2] == 1) {	accept = false ;	}								
								if(accept)
								{
									PBox[0].Left	= X;
									PBox[0].Top		= Y;
									PBox[1].Left	= PBox[0].Left - PBox[0].Width;
									PBox[1].Top		= PBox[0].Top ;
									PBox[2].Left	= PBox[1].Left - PBox[0].Width;
									PBox[2].Top		= PBox[1].Top ;
									PBox[3].Left	= PBox[2].Left ;
									PBox[3].Top		= PBox[2].Top  - PBox[0].Height;
								}
							}
							break;
						case 3 :
							//向下
							if((X >= PBox[0].Width)&&(Y <= (PicBox.Width - 2*PBox[0].Height)))
							{
								accept = true ;
								if(Free[Y/PBox[0].Height-1,X/PBox[0].Width] == 1)   {	accept = false ;	}
								if(Free[Y/PBox[0].Height-2,X/PBox[0].Width] == 1)   {	accept = false ;	}
								if(Free[Y/PBox[0].Height-2,X/PBox[0].Width+1] == 1) {	accept = false ;	}								
								if(accept)
								{
									PBox[0].Left	= X;
									PBox[0].Top		= Y;
									PBox[1].Left	= PBox[0].Left ;
									PBox[1].Top		= PBox[0].Top - PBox[0].Height ;
									PBox[2].Left	= PBox[1].Left;
									PBox[2].Top		= PBox[1].Top - PBox[0].Height ;
									PBox[3].Left	= PBox[2].Left + PBox[0].Width ;
									PBox[3].Top		= PBox[2].Top;
								}
							}
							break;
						case 4 :
							//向左
							if((X <= (PicBox.Width - 3*PBox[0].Width))&&(Y <= (PicBox.Height - 2*PBox[0].Height)))
							{
								accept = true ;
								if(Free[Y/PBox[0].Height,X/PBox[0].Width+1] == 1)   {	accept = false ;	}
								if(Free[Y/PBox[0].Height,X/PBox[0].Width+2] == 1)   {	accept = false ;	}
								if(Free[Y/PBox[0].Height+1,X/PBox[0].Width+2] == 1) {	accept = false ;	}								
								if(accept)
								{
									PBox[0].Left	= X;
									PBox[0].Top		= Y;
									PBox[1].Left	= PBox[0].Left + PBox[0].Width;
									PBox[1].Top		= PBox[0].Top ;
									PBox[2].Left	= PBox[1].Left + PBox[0].Width;
									PBox[2].Top		= PBox[1].Top ;
									PBox[3].Left	= PBox[2].Left ;
									PBox[3].Top		= PBox[2].Top  + PBox[0].Height;
								}
							}
							break;
					}					
					PBox[0].Visible = true ;
					PBox[1].Visible = true ;
					PBox[2].Visible = true ;
					PBox[3].Visible = true ;
					break;
			}	
		}
		private void CreatePic()
		{
			//在PicNext上生成一个游戏对象
			int i;
			PicID++;
			Random NumRand			= new Random();
			NextType				= NumRand.Next(1,6) ;
			NextPic					= new PictureBox[4];
			for(i=0;i<4;i++)
			{
				//生成四个Pic成为一个对象
				PictureBox MyPic	= new PictureBox() ;
				MyPic.Name			= "Pic_"+PicID.ToString()+"_"+i.ToString();
				MyPic.Parent		= PicNext ;
				MyPic.SizeMode		= PictureBoxSizeMode.StretchImage ;
				MyPic.ClientSize	= new Size(25, 25);
				MyPic.BackColor		= System.Drawing.Color.Lime ;
				MyPic.BorderStyle	= BorderStyle.None ;
				MyPic.Paint 	   += new System.Windows.Forms.PaintEventHandler(this.MyPic_Paint);
				MyPic.Visible		= false;
				MyPic.Left			= 0;
				MyPic.Top			= 0;
				NextPic[i]			= MyPic ;
			}
			PicShow(30,10,NextType,0,NextPic);
		}

		private void TransferPic()
		{
			bool accept = false;
			//将NextPic上的生成的对象,转到PicBox上			
			CurrentType				= NextType ;
			CurrentPic				= NextPic ;
			CurrentPic[0].Parent	= PicBox ;
			CurrentPic[1].Parent	= PicBox ;
			CurrentPic[2].Parent	= PicBox ;
			CurrentPic[3].Parent	= PicBox ;
			PicShow(125,0,CurrentType,0,CurrentPic);
			//判断游戏终止条件
			if(Free[CurrentPic[0].Top/CurrentPic[0].Height,CurrentPic[0].Left/CurrentPic[0].Width] == 1) {	accept = true ;	}
			if(Free[CurrentPic[1].Top/CurrentPic[1].Height,CurrentPic[1].Left/CurrentPic[1].Width] == 1) {	accept = true ;	}
			if(Free[CurrentPic[2].Top/CurrentPic[2].Height,CurrentPic[2].Left/CurrentPic[2].Width] == 1) {	accept = true ;	}
			if(Free[CurrentPic[3].Top/CurrentPic[3].Height,CurrentPic[3].Left/CurrentPic[3].Width] == 1) {	accept = true ;	}
			if(accept)
			{
				GameTime.Stop();
				Status = 0 ;
				MessageBox.Show("Game Over !");
			}
			//设置初始方向
			switch (CurrentType)
			{
				case 1 :
					PicOrientation	= 1 ;
					break;
				case 2 :
					PicOrientation	= 1 ;
					break;
				case 3 :
					PicOrientation	= 2 ;
					break;
				case 4 :
					PicOrientation	= 4 ;
					break;
				case 5 :
					PicOrientation	= 1 ;
					break;
				case 6 :
					PicOrientation	= 1 ;
					break;
			}	
		}		
		private void DeleRow()
		{
			int i,j,k,count,X,Y ;
			bool accept = false ;
			for(i=0;i<20;i++)
			{
				accept = true ;
				for(j=0;j<10;j++)
				{
					if(Free[i,j] == 0)	{	accept = false ;	}
				}
				if(accept)
				{					
					//奖励积分
					Success = int.Parse(labelSuccess.Text) + 10;
					labelSuccess.Text = Success.ToString() ;
					//删除对象
					for(k=0;k<PicBox.Controls.Count;k++)
					{
						Y = PicBox.Controls[k].Top ;
						if( Y == i*PicBox.Controls[k].Height )
						{							
							X = PicBox.Controls[k].Left;
							X = X/PicBox.Controls[k].Width ;
							Y = Y/PicBox.Controls[k].Height ;
							Free[Y,X] = 0;
							PicBox.Controls[k].Dispose();
							k = 0 ;
						}						
					}
					//上方控件下移
					count = PicBox.Controls.Count ;
					for(k=0;k<count;k++)
					{
						if(PicBox.Controls[k].Top <  i*PicBox.Controls[k].Height )
						{							
							X = PicBox.Controls[k].Left;
							X = X/PicBox.Controls[k].Width ;
							Y = PicBox.Controls[k].Top ;							
							Y = Y/PicBox.Controls[k].Height ;
							Free[Y,X]-- ;
							PicBox.Controls[k].Top = PicBox.Controls[k].Top + PicBox.Controls[k].Height ;
							Y = PicBox.Controls[k].Top ;							
							Y = Y/PicBox.Controls[k].Height ;
							Free[Y,X]++ ;
						}
					}
				}
			}				
		}

		private void MyPic_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
		{
			//将Target对象外观改为圆形
			GraphicsPath gp = new GraphicsPath();
  		gp.AddEllipse(0, 0, 25, 25);
  		Region r = new Region(gp);
			PictureBox TmpSender = (PictureBox)sender ;
  		TmpSender.Region  = r;	
		}
	}
}

⌨️ 快捷键说明

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