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

📄

📁 一款棋牌24点游戏的源代码 对初学者有用的
💻
📖 第 1 页 / 共 2 页
字号:
										break;
									//解
									if(!tag&&i==2&&fabs(ra[3]-24.0)<0.0001)
									{	
										istring[p++]='(';
										istring[p++]='(';
										if(poke[a[0]]/10==0)
										{ 
											istring[p++]=48+poke[a[0]];
										}
										else
										{	
											istring[p++]=poke[a[0]]/10+48;
											istring[p++]=poke[a[0]]%10+48;
										}
										
										switch(b[0])
										{
											case 0: istring[p++]='+';break;
											case 1: istring[p++]='-';break;
											case 2: istring[p++]='*';break;
											case 3: istring[p++]='/';break;
										}
										if(poke[a[1]]/10==0)
										{ 
											istring[p++]=48+poke[a[1]];
										}
										else
										{	
											istring[p++]=poke[a[1]]/10+48;
											istring[p++]=poke[a[1]]%10+48;
										}
										
										istring[p++]=')';
										
										switch(b[1])
										{
											case 0: istring[p++]='+';break;
											case 1: istring[p++]='-';break;
											case 2: istring[p++]='*';break;
											case 3: istring[p++]='/';break;
										}
										if(poke[a[2]]/10==0)
										{ 
											istring[p++]=48+poke[a[2]];
										}
										else
										{	
											istring[p++]=poke[a[2]]/10+48;
											istring[p++]=poke[a[2]]%10+48;
										}
										istring[p++]=')';
										
										switch(b[2])
										{
											case 0: istring[p++]='+';break;
											case 1: istring[p++]='-';break;
											case 2: istring[p++]='*';break;
											case 3: istring[p++]='/'; break;
										}
										if(poke[a[3]]/10==0)
										{ 
											istring[p++]=48+poke[a[3]];
										}
										else
										{	
											istring[p++]=poke[a[3]]/10+48;
											istring[p++]=poke[a[3]]%10+48;
										}
										
										istring[p++]='=';
										istring[p++]='2';
										istring[p++]='4';
										istring[p]=NULL;
										bool having=false;
										for(int i=0;i<m_sArray.GetSize();i++)
										{
											if(m_sArray[i]==istring)
												having=true;
										}
										if(having==false)
										{
											m_sArray.Add(istring);
											ShowFonts(istring,40,20,point);
											point.y+=40;
										}
										count++;
										p=0;
									}
							}	
							//(a0b0a1)b1(a2b2a3)								
							tag=0;
							for(i=0;i<4;i++)
							{	
								ra[i]=poke[a[i]];
							}
							switch(b[0])
							{
								case 0: ra[1]=ra[0]+ra[1];break;
								case 1: ra[1]=ra[0]-ra[1];break;
								case 2: ra[1]=ra[0]*ra[1];break;
								case 3:
									if(ra[1]!=0)
										ra[1]=(ra[0]+0.0)/ra[1];
									else 
										tag=1;
									break;
							}
							
							switch(b[2])
							{
								case 0: ra[2]=ra[2]+ra[3];break;
								case 1: ra[2]=ra[2]-ra[3];break;
								case 2: ra[2]=ra[2]*ra[3];break;
								case 3:
									if(ra[3]!=0)
										ra[2]=(ra[2]+0.0)/ra[3];
									else 
										tag=1;
									break;
							}
							switch(b[1])
							{
								case 0: ra[3]=ra[1]+ra[2];break;
								case 1: ra[3]=ra[1]-ra[2];break;
								case 2: ra[3]=ra[1]*ra[2];break;
								case 3:
									if(ra[2]!=0)
										ra[3]=(ra[1]+0.0)/ra[2];
									else 
										tag=1;
									break;
							}
							//解
							if(!tag&&fabs(ra[3]-24.0)<0.0001)
							{	
								istring[p++]='(';
								if(poke[a[0]]/10==0)
								{ 
									istring[p++]=48+poke[a[0]];
								}
								else
								{	
									istring[p++]=poke[a[0]]/10+48;
									istring[p++]=poke[a[0]]%10+48;
								}
								switch(b[0])
								{
									case 0: istring[p++]='+';break;
									case 1: istring[p++]='-';break;
									case 2: istring[p++]='*';break;
									case 3: istring[p++]='/';break;
								}
								if(poke[a[1]]/10==0)
								{ 
									istring[p++]=48+poke[a[1]];
								}
								else
								{	
									istring[p++]=poke[a[1]]/10+48;
									istring[p++]=poke[a[1]]%10+48;
								}
								istring[p++]=')';
								switch(b[1])
								{
									case 0: istring[p++]='+';break;
									case 1: istring[p++]='-';break;
									case 2: istring[p++]='*';break;
									case 3: istring[p++]='/';break;
								}
								istring[p++]='(';
								if(poke[a[2]]/10==0)
								{ 
									istring[p++]=48+poke[a[2]];
								}
								else
								{	
									istring[p++]=poke[a[2]]/10+48;
									istring[p++]=poke[a[2]]%10+48;
								}
								
								
								switch(b[2])
								{
									case 0: istring[p++]='+';break;
									case 1: istring[p++]='-';break;
									case 2: istring[p++]='*';break;
									case 3: istring[p++]='/';break;
								}
								if(poke[a[3]]/10==0)
								{ 
									istring[p++]=48+poke[a[3]];
								}
								else
								{	
									istring[p++]=poke[a[3]]/10+48;
									istring[p++]=poke[a[3]]%10+48;
								}
								
								istring[p++]=')';
								istring[p++]='=';
								istring[p++]='2';
								istring[p++]='4';
								istring[p]=NULL;
								bool having=false;
								for(int i=0;i<m_sArray.GetSize();i++)
								{
									if(m_sArray[i]==istring)
										having=true;
								}
								if(having==false)
								{
									m_sArray.Add(istring);
									ShowFonts(istring,40,20,point);
									point.y+=40;
								}
								p=0;
								count++;
							}
							///////////////////////////////(a0b0(a1b1a2))b2a3							
							tag=0;
							p=0;
							for(i=0;i<4;i++)
							{	
								ra[i]=poke[a[i]];
							}
							switch(b[1])
							{
								case 0: ra[1]=ra[1]+ra[2];break;
								case 1: ra[1]=ra[1]-ra[2];break;
								case 2: ra[1]=ra[1]*ra[2];break;
								case 3:
									if(ra[2]!=0)
										ra[1]=(ra[1]+0.0)/ra[2];
									else 
										tag=1;
									break;
							}
							
							switch(b[0])
							{
								case 0: ra[0]=ra[0]+ra[1];break;
								case 1: ra[0]=ra[0]-ra[1];break;
								case 2: ra[0]=ra[0]*ra[1];break;
								case 3:
									
									if(ra[1]!=0)
										ra[0]=(ra[0]+0.0)/ra[1];
									else tag=1;
									break;
							}
							switch(b[2])
							{
								case 0: ra[3]=ra[0]+ra[3];break;
								case 1: ra[3]=ra[0]-ra[3];break;
								case 2: ra[3]=ra[0]*ra[3];break;
								case 3:
									
									if(ra[3]!=0)
										ra[3]=(ra[0]+0.0)/ra[3];
									else tag=1;
									break;
							}
							//解
							if(!tag&&(ra[3]-24.0)<0.0001&&(ra[3]-24.0)>-0.0001)
							{	
								
								istring[p++]='(';
								
								if(poke[a[0]]/10==0)
								{ 
									istring[p++]=48+poke[a[0]];
								}
								else
								{	
									istring[p++]=poke[a[0]]/10+48;
									istring[p++]=poke[a[0]]%10+48;
								}
								
								switch(b[0])
								{
									case 0: istring[p++]='+';break;
									case 1: istring[p++]='-';break;
									case 2: istring[p++]='*';break;
									case 3: istring[p++]='/';break;
								}
								istring[p++]='(';
								if(poke[a[1]]/10==0)
								{ 
									istring[p++]=48+poke[a[1]];
								}
								else
								{	
									istring[p++]=poke[a[1]]/10+48;
									istring[p++]=poke[a[1]]%10+48;
								}
								switch(b[1])
								{
									case 0: istring[p++]='+';break;
									case 1: istring[p++]='-';break;
									case 2: istring[p++]='*';break;
									case 3: istring[p++]='/';break;
								}
								if(poke[a[2]]/10==0)
								{ 
									istring[p++]=48+poke[a[2]];
								}
								else
								{	
									istring[p++]=poke[a[2]]/10+48;
									istring[p++]=poke[a[2]]%10+48;
								}
								
								istring[p++]=')';
								istring[p++]=')';
								switch(b[2])
								{
									case 0: istring[p++]='+';break;
									case 1: istring[p++]='-';break;
									case 2: istring[p++]='*';break;
									case 3: istring[p++]='/';break;
								}
								if(poke[a[3]]/10==0)
								{ 
									istring[p++]=48+poke[a[3]];
								}
								else
								{	
									istring[p++]=poke[a[3]]/10+48;
									istring[p++]=poke[a[3]]%10+48;
								}
								
								istring[p++]='=';
								istring[p++]='2';
								istring[p++]='4';
								istring[p]=NULL;
								
								bool having=false;
								for(int i=0;i<m_sArray.GetSize();i++)
								{
									if(m_sArray[i]==istring)
										having=true;
								}
								if(having==false)
								{
									m_sArray.Add(istring);
									ShowFonts(istring,40,20,point);
									point.y+=40;
								}
								p=0;
								count++;
								
							}
							///////////////////////////////a0b0(a1b1(a2b2a3))											
							tag=0;
							p=0;
							for(i=0;i<4;i++)
							{	
								ra[i]=poke[a[i]];
							}
							switch(b[2])
							{
								case 0: ra[2]=ra[2]+ra[3];break;
								case 1: ra[2]=ra[2]-ra[3];break;
								case 2: ra[2]=ra[2]*ra[3];break;
								case 3:
									
									if(ra[3]!=0)
										ra[2]=(ra[2]+0.0)/ra[3];
									else tag=1;
									break;
							}
							
							switch(b[1])
							{
								case 0: ra[1]=ra[1]+ra[2];break;
								case 1: ra[1]=ra[1]-ra[2];break;
								case 2: ra[1]=ra[1]*ra[2];break;
								case 3:	
									
									if(ra[2]!=0)
										ra[1]=(ra[1]+0.0)/ra[2];
									else tag=1;
									break;
							}
							switch(b[0])
							{
								case 0: ra[0]=ra[0]+ra[1];break;
								case 1: ra[0]=ra[0]-ra[1];break;
								case 2: ra[0]=ra[0]*ra[1];break;
								case 3:
									
									if(ra[1]!=0)
										ra[0]=(ra[0]+0.0)/ra[1];
									else tag=1;
									break;
							}
							//解a0b0(a1b1(a2b2a3))
							if(!tag&&(ra[0]-24.0)<0.0001&&(ra[0]-24.0)>-0.0001)
							{	
								
								if(poke[a[0]]/10==0)
								{ 
									istring[p++]=48+poke[a[0]];
								}
								else
								{	
									istring[p++]=poke[a[0]]/10+48;
									istring[p++]=poke[a[0]]%10+48;
								}
								
								switch(b[0])
								{
									case 0: istring[p++]='+';break;
									case 1: istring[p++]='-';break;
									case 2: istring[p++]='*';break;
									case 3: istring[p++]='/';break;
								}
								istring[p++]='(';
								if(poke[a[1]]/10==0)
								{ 
									istring[p++]=48+poke[a[1]];
								}
								else
								{	
									istring[p++]=poke[a[1]]/10+48;
									istring[p++]=poke[a[1]]%10+48;
								}
								switch(b[1])
								{
									case 0: istring[p++]='+';break;
									case 1: istring[p++]='-';break;
									case 2: istring[p++]='*';break;
									case 3: istring[p++]='/';break;
								}
								istring[p++]='(';
								if(poke[a[2]]/10==0)
								{ 
									istring[p++]=48+poke[a[2]];
								}
								else
								{	
									istring[p++]=poke[a[2]]/10+48;
									istring[p++]=poke[a[2]]%10+48;
								}
								
								switch(b[2])
								{
									case 0: istring[p++]='+';break;
									case 1: istring[p++]='-';break;
									case 2: istring[p++]='*';break;
									case 3: istring[p++]='/';break;
								}
								if(poke[a[3]]/10==0)
								{ 
									istring[p++]=48+poke[a[3]];
								}
								else
								{	
									istring[p++]=poke[a[3]]/10+48;
									istring[p++]=poke[a[3]]%10+48;
								}
								istring[p++]=')';
								istring[p++]=')';
								istring[p++]='=';
								istring[p++]='2';
								istring[p++]='4';
								istring[p]=NULL;
								bool having=false;
								for(int i=0;i<m_sArray.GetSize();i++)
								{
									if(m_sArray[i]==istring)
										having=true;
								}
								if(having==false)
								{
									m_sArray.Add(istring);
									ShowFonts(istring,40,20,point);
									point.y+=40;																
								}
								p=0;
								count++;									
							}
							
						}
				}
			}
		}
		
	}
	point.x=0;
	if(count==0)
		ShowFonts("there is no answer at all",40,20,point,255);
	return count;
}


void CMyView::DrawLine(CDC* pDC,int red,int green ,int blue,int linewidth,int x1,int y1,int x2,int y2 )
{
	CPen pen(PS_SOLID,linewidth,RGB(red,green,blue));
	CPen *oldpen=pDC->SelectObject(&pen);
	pDC->MoveTo(x1,y1);
	pDC->LineTo(x2,y2);
	pDC->SelectObject(oldpen);
}

//////////////////////////////////////?????????????????????????
void CMyView::OnGo() 
{
	
}
void CMyView::ShowPai()
{
	CPoint point=PaiPoint;
	char a[2];
	int i;
	for(i=0;i<4;i++)
	{
		
		sprintf(a,"%d",poke[i]);
		switch(i)
		{	case 0:
				ShowFonts(a,180,50,point,255);break;
			case 1:
				ShowFonts(a,180,50,point,0,255);break;
			case 2:
				ShowFonts(a,180,50,point,0,0,255);break;
			case 3:
				ShowFonts(a,180,50,point,122,122,122);break;
		}
		point.x+=200;
	}
}

void CMyView::OnRButtonDown(UINT nFlags, CPoint point) 
{
	CClientDC dc(this);
	// TODO: Add your message handler code here and/or call default
	step=0;
	//step=0表示清除expr[]中的元素!!
	DrawLine(&dc,255,255,255,200,0,400,410,400);
	Algorithum(poke);
	lrtag=1;
	CView::OnRButtonDown(nFlags, point);
}

void CMyView::OnGocal() 
{
	// TODO: Add your command handler code here
	CCalDlg dlg(this);
	dlg.DoModal();
}

⌨️ 快捷键说明

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