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

📄 sjform.cs

📁 这个源码是我从别的网站下载下来的!我是初学者,希望给我一点源码下载(文件包含连连看,俄罗斯方块,当代罗宾汉,智慧珠,贪吃蛇)
💻 CS
📖 第 1 页 / 共 3 页
字号:
																		  this.NamePlayer4,
																		  this.NamePlayer3,
																		  this.NamePlayer2,
																		  this.LevOwnerShow,
																		  this.LevOwnerTitle,
																		  this.BankerShow,
																		  this.BankerTitle,
																		  this.BottomShow,
																		  this.CurrentTypeShow,
																		  this.CurrentTypeTitle,
																		  this.CurrentLevShow,
																		  this.CurrentLevTitle,
																		  this.OutShow4,
																		  this.OutShow3,
																		  this.OutShow2,
																		  this.OutShow1,
																		  this.Player4,
																		  this.Player2,
																		  this.Player3,
																		  this.ButOut,
																		  this.Player1,
																		  this.ButExit,
																		  this.ButBegin});
			this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
			this.MaximizeBox = false;
			this.MaximumSize = new System.Drawing.Size(650, 570);
			this.MinimumSize = new System.Drawing.Size(650, 570);
			this.Name = "SJForm";
			this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
			this.Text = "升级";
			this.Load += new System.EventHandler(this.SJForm_Load);
			this.ResumeLayout(false);

		}
		#endregion

		private void SJForm_Load(object sender, System.EventArgs e)
		{
			//初始化参数
			Banker		= 0 ;
			ALev		= 2 ;
			BLev		= 2 ;
			CurrentLev	= 2 ;
			CreateCard() ;			
		}

		private void ButExit_Click(object sender, System.EventArgs e)
		{
			//退出游戏
			this.Close();
		}

		private void ButBegin_Click(object sender, System.EventArgs e)
		{
			//开始游戏
			//初始相关参数
			InitializeConf();
			//显示相关信息
			StatusShow();
			//洗牌
			ShuffleCard();
			//开始游戏
			GameTime.Start();
		}

		private void ButOut_Click(object sender, System.EventArgs e)
		{
			int i,tmp;
			//获取选中牌组
			PlayerOut1.Clear();
			for(i=0;i<PlayerCard1.Count;i++)
			{
				tmp = (int)PlayerCard1[i] ;
				if(Card[tmp].Pic.Top == 0)
				{					
					PlayerOut1.Add(tmp);
				}
			}	
			tmp = 0 ;
			if(ButOut.Text  == "扣  牌" )
			{
				//响应“扣牌”按钮				
				BottomCard.Clear();
				if(PlayerOut1.Count != 6 )
				{
					MessageBox.Show("请选择六张底牌");
				}
				else
				{
					for(i=0;i<PlayerCard1.Count;i++)
					{
						tmp = (int)PlayerCard1[i] ;
						if(Card[tmp].Pic.Top == 0)
						{					
							PlayerCard1.RemoveAt(i);
							i--;
						}
					}
					for(i=0;i<6;i++)
					{
						BottomCard.Add((int)PlayerOut1[i]); 						
						HideImages(Card[(int)PlayerOut1[i]].Pic);
						Card[(int)PlayerOut1[i]].Pic.Parent = BottomShow ;
						Card[(int)PlayerOut1[i]].Pic.Left   = (BottomCard.Count-1)*15 ;
						Card[(int)PlayerOut1[i]].Pic.Top    = 0 ;						
					}
					SortPower(ref PlayerCard1);					
					ButOut.Text = "出 牌";
					tmp = 1 ;
				}												
			}
			if((tmp == 0 )&&(ButOut.Text  == "出 牌" ))
			{
				//响应“出牌”按钮				
				if(RuleCard())
				{	
					//出牌				
					for(i=0;i<PlayerOut1.Count;i++)
					{
						Card[(int)PlayerOut1[i]].Pic.Parent = OutShow1 ;
						Card[(int)PlayerOut1[i]].Pic.Left   = i * 15 ;
						Card[(int)PlayerOut1[i]].Pic.Top    = 0 ;
					}
					for(i=0;i<PlayerCard1.Count;i++)
					{
						tmp = (int)PlayerCard1[i] ;
						if(Card[tmp].Pic.Top == 0)
						{					
							PlayerCard1.RemoveAt(i);
							i--;
						}
					}
					if(OutSeq[3] == 1)
					{
						//判断此轮大小
						Judge();
					}
					GameTime.Start();
					ButOut.Visible = false;
				}
				else
				{
					//不能出牌
					MessageBox.Show("不符合规则,请向身边资深升级人事咨询规则!");
					for(i=0;i<PlayerOut1.Count;i++)
					{
						Card[(int)PlayerOut1[i]].Pic.Top    = 20 ;
					}											
				}				
			}					
		}
		
		private void Card_Click(object sender, System.EventArgs e)
		{
			//响应图片点击事件
			int	start,last,len,lev,type ;	
			string S ;
			PictureBox TmpCard = (PictureBox)sender ;
			if(GameStatus == 0 )
			{	//叫主
				S		= TmpCard.Name ;
				start	= S.IndexOf("_")+1 ;
				last	= S.LastIndexOf("_") ;
				len		= last - start ;
				lev		= int.Parse(S.Substring(start,len));
				type	= int.Parse(S.Substring(last+1,1));
				if((CurrentLev == lev)&&(CurrentType == 0))
				{
					if(Banker == 0) {	Banker = 1 ; }
					LevOwnerShow.Text = "玩家";
					CurrentType = type ;
					PowerValue();
					StatusShow();
				}
			}
			else
			{				
				if(TmpCard.Top == 0)
				{	TmpCard.Top = 20 ;	}
				else
				{	TmpCard.Top = 0 ;	}
			}					
		}
		private void GameTime_Tick(object sender, System.EventArgs e)
		{
			//轮流出牌
			int i,tmp;
			if(OutCard.Count <= 48)
			{
				tmp = Banker ;
				if(tmp==0)	{	tmp = 1 ;}
				for(i=0;i<4;i++)
				{
					OutSeq[i] = tmp+i ;
					if(OutSeq[i] > 4)	{	OutSeq[i] = OutSeq[i] - 4 ;}
				}
				for(i=0;i<4;i++)
				{
					if(GameTime.Enabled == false )
					{
						break;
					}
					switch (OutSeq[i])
					{
						case 1 :
							//玩家1控制
							Me(Player1);							
							//游戏者控制
							break;
						case 2 :
							//玩家2控制
							Robot(Player2);
							break;
						case 3 :
							//玩家3控制
							Robot(Player3);
							break;
						case 4 :
							//玩家4控制
							Robot(Player4);
							break;
					}
				}				
			}
			else
			{
				//判断胜负
				GameTime.Stop();
				Winner();
				//进入下一级
				if((ALev >= 14)||(BLev >= 14))
				{
					if(ALev >= 14)	{	MessageBox.Show("恭喜!你蠃了");	}
					if(BLev >= 14)	{	MessageBox.Show("哈哈!你输了");	}
				}
				else
				{
					//System.EventArgs e = new System.EventArgs();
					ButBegin_Click(ButBegin,e);
				}
			}			
		}
		private void ShowImages(PictureBox ShowPic,int ShowNum,int ShowType)
		{
			//显示相应牌图
			string imagesfile = "" ;
			imagesfile			= @"images\PUKE\"+ShowNum.ToString()+"_"+ShowType.ToString()+".jpg";
			Bitmap MyImage		= new Bitmap(AppDomain.CurrentDomain.SetupInformation.ApplicationBase+imagesfile);
			ShowPic.Image		= (Image) MyImage ;
			ShowPic.Enabled		= true ;
		}
		private void HideImages(PictureBox ShowPic)
		{
			//隐藏相应牌图
			string imagesfile = "" ;
			imagesfile			= @"images\PUKE\background.jpg";
			Bitmap MyImage		= new Bitmap(AppDomain.CurrentDomain.SetupInformation.ApplicationBase+imagesfile);
			ShowPic.Image		= (Image) MyImage ;
			ShowPic.Enabled		= false ;
		}
		private void SelectBottom(ref ArrayList TmpCard)
		{
			//选择待扣底牌
			//选择6张小牌扣底
			Panel TmpPanel = (Panel)Card[(int)TmpCard[0]].Pic.Parent ;
			int i,Num,count;
			Num = 3 ;
			count = 0;
			BottomCard.Clear();
			while (count < 6)
			{
				for(i=0;i<TmpCard.Count;i++)
				{
					if(count >= 6)	{	break ;	}
					if(Card[(int)TmpCard[i]].Power < Num)	
					{	
						BottomCard.Add((int)TmpCard[i]); 			
						HideImages(Card[(int)TmpCard[i]].Pic);
						Card[(int)TmpCard[i]].Pic.Parent = BottomShow ;
						Card[(int)TmpCard[i]].Pic.Left   = (count-1)*15 ;
						Card[(int)TmpCard[i]].Pic.Top    = 0 ;
						TmpCard.RemoveAt(i);
						count++;
					}
				}
				Num++;
			}
			//重排现在牌组
			for(i=0;i<TmpCard.Count;i++)
			{
				Card[(int)TmpCard[i]].Pic.Visible	= false ;
				Card[(int)TmpCard[i]].Pic.Parent	= OutShow1;
				Card[(int)TmpCard[i]].Pic.Left		= 0;
			}
			for(i=0;i<TmpCard.Count;i++)
			{
				Card[(int)TmpCard[i]].Pic.Parent	= TmpPanel;
				if(TmpPanel.Width < 150)
				{
					Card[(int)TmpCard[i]].Pic.Left		= 10 ;
					Card[(int)TmpCard[i]].Pic.Top		= TmpPanel.Controls.Count * 15;
				}
				else
				{
					Card[(int)TmpCard[i]].Pic.Left		= (TmpPanel.Width - Card[(int)TmpCard[i]].Pic.Width) - TmpPanel.Controls.Count*15 ;
					Card[(int)TmpCard[i]].Pic.Top		= 0;
				}
				Card[(int)TmpCard[i]].Pic.Visible	= true ;
				
			}

			ButOut.Text = "扣  牌";
			GameStatus = 1 ;
		}
		private void SortType(ref ArrayList TmpCard)
		{
			//按类型排序
			//使用冒泡算法对牌组进行排序
			GameTime.Stop();
			int i,j,count,type1,num1,type2,num2,tmp;
			int[] Min = new int[100];
			count = TmpCard.Count ;	
			for(i=0;i<count;i++)
			{
				Min[i] = (int)TmpCard[i] ;
				Card[Min[i]].Pic.Visible = false ;
				Card[Min[i]].Pic.Parent = OutShow1;
				Card[Min[i]].Pic.Left = 0 ;
			}
			for(i=0;i<count;i++)
			{
				for(j=i+1;j<count;j++)
				{
					type1 = Card[Min[i]].Type ;
					num1  = Card[Min[i]].Num ;
					if(num1 == 0)	
					{	num1 = 15;
						type1 = type1 + 5 ;						
					}
					if(num1 == 1)	{	num1 = 14;}
					type2 = Card[Min[j]].Type ;
					num2  = Card[Min[j]].Num ;
					if(num2 == 0)	
					{	num2 = 15;
						type2 = type2 + 5 ;	
					}
					if(num2 == 1)	{	num2 = 14;}
					if((type1>type2)||((type1==type2)&&(num1>num2)))
					{
						tmp = Min[i] ;
						Min[i] = Min[j] ;
						Min[j] = tmp ;
					}
				}			
			}
			for(i=0;i<count;i++)
			{
				Card[Min[i]].Pic.Parent = Player1;
				Card[Min[i]].Pic.Left   = (Player1.Width - Card[Min[i]].Pic.Width) - i*15 ;
				Card[Min[i]].Pic.Visible = true ;
			}
			GameTime.Start();
		}
		private void SortPower(ref ArrayList TmpCard)
		{
			//按大小排序
			//使用冒泡算法对牌组进行排序
			int i,j,count,type1,num1,type2,num2,tmp,power1,power2;
			int[] Min = new int[100];
			count = TmpCard.Count ;	
			for(i=0;i<count;i++)
			{
				Min[i] = (int)TmpCard[i] ;
				Card[Min[i]].Pic.Visible = false ;
				Card[Min[i]].Pic.Parent = OutShow1;
				Card[Min[i]].Pic.Left = 0 ;
			}
			for(i=0;i<count;i++)
			{
				for(j=i+1;j<count;j++)
				{
					type1 = Card[Min[i]].Type ;
					num1  = Card[Min[i]].Num ;
					power1  = Card[Min[i]].Power ;
					if(num1 == 0)	
					{
						num1 = 15;
						type1 = type1 + 5 ;						
					}
					if(num1 == 1)	{	num1 = 14;}
					type2 = Card[Min[j]].Type ;
					num2  = Card[Min[j]].Num ;
					power2  = Card[Min[j]].Power ;
					if(num2 == 0)	
					{
						num2 = 15;
						type2 = type2 + 5 ;	
					}
					if(num2 == 1)	{	num2 = 14;}
					if(power2 > 14 )
					{
						if(power1>power2)
						{
							tmp = Min[i] ;
							Min[i] = Min[j] ;
							Min[j] = tmp ;
						}
					}
					else
					{
						if((type1>type2)||((type1==type2)&&(num1>num2))||(power1>14))
						{
							tmp = Min[i] ;
							Min[i] = Min[j] ;
							Min[j] = tmp ;

⌨️ 快捷键说明

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