📄 unit1.cpp
字号:
Label4->Caption=Label4->Caption+"\n¥"+ls.SubString(1,ls.Pos(".")+2);
}
Label8->Caption="第"+AnsiString(numofgames+1)+"局";
clearform();
Label1->Refresh();
Label2->Refresh();
Label3->Refresh();
Label4->Refresh();
}
void TForm1::rightclick(int X,int Y)
{
int i;
switch(gamestat)
{
case PlayerWaitForSelectBtn:
if(flag_bugang||flag_zimo)
{
playerPGflag=btNo;
drawbt(playerPGflag);
gamestat=PlayerWaitForChu;
flag_bugang=false;
break;
}
//=================
if(laststat==LeftWaitForMo)
{
if(leftcom.wanttohu(false))
{
gamestat=LeftWaitForHu;
playerPGflag=btNo;
drawbt(playerPGflag);
loser=2;
timer->Enabled=true;
break;
}
if(rightcom.wanttohu(false))
{
gamestat=RightWaitForHu;
playerPGflag=btNo;
drawbt(playerPGflag);
loser=2;
timer->Enabled=true;
break;
}
}
else
{
if(rightcom.wanttohu(false)&&laststat!=UpWaitForMo)
{
gamestat=RightWaitForHu;
playerPGflag=btNo;
drawbt(playerPGflag);
loser=1;
timer->Enabled=true;
break;
}
if(upcom.wanttohu(false))
{
gamestat=UpWaitForHu;
playerPGflag=btNo;
drawbt(playerPGflag);
loser=(laststat==UpWaitForMo)?3:1;
timer->Enabled=true;
break;
}
if(leftcom.wanttohu(false)&&laststat!=PlayerWaitForChu)
{
gamestat=LeftWaitForHu;
playerPGflag=btNo;
drawbt(playerPGflag);
loser=3;
timer->Enabled=true;
break;
}
}
//===================
if(laststat!=PlayerWaitForChu)
{
gamestat=laststat;
playerPGflag=btNo;
drawbt(playerPGflag);
timer->Enabled=true;
break;
}
playerPGflag=btNo;
drawbt(playerPGflag);
if(mjot.getcount()<8)
{
gamestat=WaitForHuangZhuang;
timer->Enabled=true;
break;
}
gang=false;
if(downplayer.mo())////
{
clearform(Rect(153,454,648,502));
downplayer.resetbegin();
}
downplayer.draw(imagetype);
clearmjot();
mjot.draw(imagetype);
if(downplayer.canbugang())
{
flag_bugang=true;
playerPGflag=(btstat)(playerPGflag|btGang);
}
if(downplayer.canhu(true))
{
flag_zimo=true;
playerPGflag=(btstat)(playerPGflag|btHu);
}
if(playerPGflag!=0)
{
gamestat=PlayerWaitForSelectBtn;
drawbt(playerPGflag);
timer->Enabled=false;
break;
}
drawbt(btNo);
gamestat=PlayerWaitForChu;
break;
case PlayerWaitForChu:
if(playerPGflag&btChu)
{
downplayer.chu();
clearform(Rect(153,454,648,502));
downplayer.resetbegin();
downplayer.draw(imagetype);
clearform(Rect(278,120,528,400));
mjots.draw(imagetype);
playerPGflag=btNo;
drawbt(playerPGflag);
if(rightcom.wanttohu(false))
{
gamestat=RightWaitForHu;
flag_zimo=false;
loser=0;
timer->Enabled=true;
break;
}
if(upcom.wanttohu(false))
{
gamestat=UpWaitForHu;
flag_zimo=false;
loser=0;
timer->Enabled=true;
break;
}
if(leftcom.wanttohu(false))
{
gamestat=LeftWaitForHu;
flag_zimo=false;
loser=0;
timer->Enabled=true;
break;
}
if(leftcom.wanttopeng())
{
gamestat=LeftWaitForPG;
flag_pg=1;
timer->Enabled=true;
break;
}
if(leftcom.wanttogang())
{
gamestat=LeftWaitForPG;
flag_pg=2;
timer->Enabled=true;
break;
}
if(rightcom.wanttopeng())
{
gamestat=RightWaitForPG;
flag_pg=1;
timer->Enabled=true;
break;
}
if(rightcom.wanttogang())
{
gamestat=RightWaitForPG;
flag_pg=2;
timer->Enabled=true;
break;
}
if(upcom.wanttopeng())
{
gamestat=UpWaitForPG;
flag_pg=1;
timer->Enabled=true;
break;
}
if(upcom.wanttogang())
{
gamestat=UpWaitForPG;
flag_pg=2;
timer->Enabled=true;
break;
}
timer->Enabled=true;
gamestat=RightWaitForMo;
}
else//未选中牌,排序
{
downplayer.sortall();
downplayer.draw(imagetype);
}
break;
}
}
void __fastcall TForm1::PaintBox1MouseUp(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if(Button==mbLeft)
leftclick(X,Y);
else if(Button==mbRight)
rightclick(X,Y);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormResize(TObject *Sender)
{
this->Top=-15;
this->Left=0;
ClientHeight=600;
ClientWidth=790;
PaintBox1->Height=ClientHeight;
PaintBox1->Width=ClientWidth;
PaintBox1->Left=0;
PaintBox1->Top=0;
start->Left=(ClientWidth-start->Width)/2;
start->Top=(ClientWidth)*3/5;
Label1->Top=515;
Label1->Left=(ClientWidth-Label1->Width)/2;
Label2->Left=120 ;
Label2-> Top=ClientHeight/2;
Label4->Left=687-13-20-Label4->Width ;
Label4-> Top=ClientHeight/2;
Label3->Top=69;
Label3->Left=520;
}
//---------------------------------------------------------------------------
void TForm1::clearmjot()
{
clearform(Rect(238,147,259,374));
clearform(Rect(288,86,515,107));
clearform(Rect(537,146,558,373));
clearform(Rect(287,410,514,431));
}
void TForm1::clearform()
{
PaintBox1->Canvas->FillRect(Rect(0,0,ClientWidth,ClientHeight));
}
void TForm1::clearform(TRect rect)
{
PaintBox1->Canvas->FillRect(rect);
}
void TForm1::drawbt(btstat bs)
{
int bttype,i=0,j=0;
for(bttype=btChu;bttype<=btHu;bttype*=2)
{
if(bttype==btPeng) j++;//九江麻将没有吃,呵呵,后来改的
if(bttype==btHu) j++;//取消听
if(bs&bttype)
PaintBox1->Canvas->CopyRect(Rect(500+i*16,520,500+i*16+16,520+18),
imanniu->Canvas, Rect(j*16,19,j*16+16,19+18));
else
PaintBox1->Canvas->CopyRect(Rect(500+i*16,520,500+i*16+16,520+18),
imanniu->Canvas, Rect(j*16,0,j*16+16,18));
i++; j++;
}
}
void TForm1::setbkcolor()
{
if(imagetype==1)
{
Color=clGreen;
PaintBox1->Color=clGreen;
}
else
{
Color=(TColor)0x00004080;
PaintBox1->Color=(TColor)0x00004080;
}
}
void __fastcall TForm1::PaintBox1Paint(TObject *Sender)
{
if(!begin) return;
mjots.draw(imagetype);
mjot.draw(imagetype);
leftcom.resetbegin();
leftcom.draw(imagetype);
upcom.resetbegin();
upcom.draw(imagetype);
rightcom.resetbegin();
rightcom.draw(imagetype);
downplayer.resetbegin();
downplayer.draw(imagetype);
drawbt(playerPGflag);
}
//---------------------------------------------------------------------------
void TForm1::timerfun()
{
playerPGflag=btNo;
int sc[4];//和了 得分数
bool flag_qghu1;
flag_qghu1=false;
switch(gamestat)
{
case fapai:
if(fapai_num==52)
{
downplayer.sort();
/* #ifndef NVIEWMAN
leftcom.sort(); upcom.sort(); rightcom.sort();
#endif */
clearform(Rect(153,454,648,502));
downplayer.resetbegin();
downplayer.draw(imagetype);
clearform(Rect(52,33,100,528));
leftcom.resetbegin();
leftcom.draw(imagetype);
clearform(Rect(132,20,627,68));
upcom.resetbegin();
upcom.draw(imagetype);
clearform(Rect(687,37,735,532));
rightcom.resetbegin();
rightcom.draw(imagetype);
switch(zhuangjia)
{
case 0:
bool bMo;
bMo=downplayer.mo();
//gang=false;
if(downplayer.canbugang())
{
flag_bugang=true;
playerPGflag=btGang;
}
if(downplayer.canhu(true))
{
flag_zimo=true;
playerPGflag=(btstat)(playerPGflag|btHu);
}
if(playerPGflag!=0)
gamestat=PlayerWaitForSelectBtn;
if(bMo)////
{
clearform(Rect(153,454,648,502));
downplayer.resetbegin();
}
downplayer.draw(imagetype);
gamestat=PlayerWaitForChu;
break;
case 1:
gamestat=LeftWaitForMo;
break;
case 2:
gamestat=UpWaitForMo;
break;
case 3:
gamestat=RightWaitForMo;
break;
}
downplayerwanttogang=false;
timer->Interval=gamespeed;
timer->Enabled=(gamestat==PlayerWaitForChu||
gamestat==PlayerWaitForSelectBtn)?false:true;
break;
}
switch(fapai_dir)
{
case 0:
if(fapai_num<=44)
{
downplayer.insertmj(mjot.takeone(true));
downplayer.insertmj(mjot.takeone(true));
downplayer.insertmj(mjot.takeone(true));
downplayer.insertmj(mjot.takeone(true));
fapai_num+=4;
}
else
{
downplayer.insertmj(mjot.takeone(true));
fapai_num+=1;
}
clearform(Rect(153,454,648,502));
downplayer.resetbegin();
downplayer.draw(imagetype);
clearmjot();
mjot.draw(imagetype);
break;
case 1:
if(fapai_num<=44)
{
leftcom.insertmj(mjot.takeone(true));
leftcom.insertmj(mjot.takeone(true));
leftcom.insertmj(mjot.takeone(true));
leftcom.insertmj(mjot.takeone(true));
fapai_num+=4;
}
else
{
leftcom.insertmj(mjot.takeone(true));
fapai_num+=1;
}
clearform(Rect(52,33,100,528));
leftcom.resetbegin();
leftcom.draw(imagetype);
clearmjot();
mjot.draw(imagetype);
break;
case 2:
if(fapai_num<=44)
{
upcom.insertmj(mjot.takeone(true));
upcom.insertmj(mjot.takeone(true));
upcom.insertmj(mjot.takeone(true));
upcom.insertmj(mjot.takeone(true));
fapai_num+=4;
}
else
{
upcom.insertmj(mjot.takeone(true));
fapai_num+=1;
}
clearform(Rect(132,20,627,68));
upcom.resetbegin();
upcom.draw(imagetype);
clearmjot();
mjot.draw(imagetype);
break;
case 3:
if(fapai_num<=44)
{
rightcom.insertmj(mjot.takeone(true));
rightcom.insertmj(mjot.takeone(true));
rightcom.insertmj(mjot.takeone(true));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -