📄 pukegamewin.pas
字号:
end;
end;
//----
5:begin
//上边第三列
if MyPoint.Index+1=Ok3Max then
begin
Flag:=1;
(Sender as Timage).BringToFront;
end;
end;
6:begin
//上边第四列
if MyPoint.Index+1=Ok4Max then
begin
Flag:=1;
(Sender as Timage).BringToFront;
end;
end;
7:begin
//下边第一列
if MyPoint.Index+1<>Not1Max then
begin
More:=True;
Flag:=1;
end
else
begin
Flag:=1;
(Sender as Timage).BringToFront;
end;
end;
8:begin
//下边第二列
if MyPoint.Index+1<>Not2Max then
begin
More:=True;
Flag:=1;
end
else
begin
Flag:=1;
(Sender as Timage).BringToFront;
end;
end;
9:begin
//下边第三列
if MyPoint.Index+1<>Not3Max then
begin
More:=True;
Flag:=1;
end
else
begin
Flag:=1;
(Sender as Timage).BringToFront;
end;
end;
10:begin
//下边第四列
if MyPoint.Index+1<>Not4Max then
begin
More:=True;
Flag:=1;
end
else
begin
Flag:=1;
(Sender as Timage).BringToFront;
end;
end;
end;//end of Case;
end;
procedure TForm1.MyMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
i,j:integer;
begin
if Flag = 1 then
begin
if More then
begin
Case Currently.Ground of
1,2,3,4,5,6:begin
end;
7:begin
j:=0;
for i:=Currently.Index to High(NotCard1) do
begin
Myimage[NotCard1[i]].Top:=(Sender as Timage).Top+Y-VarY+j;
Myimage[NotCard1[i]].Left:=(Sender as Timage).Left+X-VarX;
Myimage[NotCard1[i]].BringToFront ;
J:=J+15;
end;
end;
8:begin
j:=0;
for i:=Currently.Index to High(NotCard2) do
begin
Myimage[NotCard2[i]].Top:=(Sender as Timage).Top+Y-VarY+j;
Myimage[NotCard2[i]].Left:=(Sender as Timage).Left+X-VarX;
Myimage[NotCard2[i]].BringToFront ;
J:=J+15;
end;
end;
9:begin
j:=0;
for i:=Currently.Index to High(NotCard3) do
begin
Myimage[NotCard3[i]].Top:=(Sender as Timage).Top+Y-VarY+j;
Myimage[NotCard3[i]].Left:=(Sender as Timage).Left+X-VarX;
Myimage[NotCard3[i]].BringToFront ;
J:=J+15;
end;
end;
10:begin
j:=0;
for i:=Currently.Index to High(NotCard4) do
begin
Myimage[NotCard4[i]].Top:=(Sender as Timage).Top+Y-VarY+j;
Myimage[NotCard4[i]].Left:=(Sender as Timage).Left+X-VarX;
Myimage[NotCard4[i]].BringToFront ;
J:=J+15;
end;
end;
end;//end of Case;
end
else // more = flag;
begin
(Sender as Timage).Top :=(Sender as Timage).Top + Y - VarY;
(Sender as Timage).Left :=(Sender as Timage).Left + X - VarX;
(Sender as timage).BringToFront;
end; //end of if more = true;
end; //Flag=1
end;
procedure TForm1.MyMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var i:integer;
begin
if Flag = 1 then Flag:=0;
if CheckGround((Sender as Timage)) then
begin
if (OldTop >= UpCard_Top) and ( OldTop<=UpCard_Top+99)
and (OldLeft>=104) and (OldLeft<= 152) then
begin
Counts:=Counts-1;
if Counts<=0 then
counts:=1;
DelHandCard((Sender as Timage).Tag);
Label1.Caption:='剩余牌数:'+inttostr(High(HandCard)+1);
end;
if (OldTop=DownCard_Top) and (OldLeft=Card0_Left) then
begin
MoveCard(1,1,1);
end;
if (OldTop>=DownCard_Top) and (OldLeft=Card1_Left) then
begin
//下面第一列;
MoveCard(3,1,(Sender as Timage).Tag);
end;
if (OldTop>=DownCard_Top) and (OldLeft=Card2_Left) then
begin
//下面第二列;
MoveCard(3,2,(Sender as Timage).Tag);
end;
if (OldTop>=DownCard_Top) and (OldLeft=Card3_Left) then
begin
//下面第三列;
MoveCard(3,3,(Sender as Timage).Tag);
end;
if (OldTop>=DownCard_Top) and (OldLeft=Card4_Left) then
begin
//下面第四列;
MoveCard(3,4,(Sender as Timage).Tag);
end;
if (OldTop=UPCard_Top) And ((OldLeft=Card1_Left) or (OldLeft=UpCard_Left1)) then
begin
//上面第一列;
MoveCard(2,1,Ok1Max);
end;
if (OldTop=UPCard_Top) And ((OldLeft=Card2_Left) or (OldLeft=UpCard_Left2)) then
begin
//上面第二列;
MoveCard(2,2,Ok2Max);
end;
if (OldTop=UPCard_Top) And ((OldLeft=Card3_Left) or (OldLeft= UpCard_Left3)) then
begin
//上面第三列;
MoveCard(2,3,Ok3Max);
end;
if (OldTop=UPCard_Top) And ((OldLeft=Card4_Left) or (OldLeft=UpCard_Left4))then
begin
//上面第四列;
MoveCard(2,4,Ok4Max);
end;
//自动送牌-------------------------
if NotCard1=nil then
begin
if BackCard<>nil then
begin
MyImage[BackCard[0]].top:=DownCard_Top;
MyImage[BackCard[0]].Left:=Card1_Left;
Myimage[BackCard[0]].Visible:=True;
Myimage[BackCard[0]].Enabled :=True;
Myimage[BackCard[0]].BringToFront ;
Not1Max:=1;
SetLength(NotCard1,Not1Max);
NotCard1[0]:=BackCard[0];
MyCard[BackCard[0]].Top:=DownCard_Top;
MyCard[BackCard[0]].Left:=Card1_Left;
MoveCard(1,0,0);
Label2.Caption:='剩余牌数:'+inttostr(High(BackCard)+1);
end
else
begin
if HandCard<>nil then
begin
Myimage[HandCard[0]].Top :=DownCard_Top;
MYimage[HandCard[0]].Left:=Card1_Left;
MYimage[HandCard[0]].Visible :=true;
Myimage[HandCard[0]].Enabled :=True;
Not1Max:=1;
SetLength(NotCard1,Not1Max);
NotCard1[0]:=HandCard[0];
MyCard[HandCard[0]].Top :=DownCard_Top;
MyCard[HandCard[0]].Left :=Card1_Left;
delHandCard(HandCard[0]);
Label2.Caption:='剩余牌数:0';
Label1.Caption:='剩余牌数:'+inttostr(High(HandCard)+1);
end;
end;
end;
if NotCard2=nil then
begin
if BackCard<>nil then
begin
MyImage[BackCard[0]].top:=DownCard_Top;
MyImage[BackCard[0]].Left:=Card2_Left;
Myimage[BackCard[0]].Visible:=True;
Myimage[BackCard[0]].Enabled := true;
Myimage[BackCard[0]].BringToFront ;
Not2Max:=1;
SetLength(NotCard2,Not1Max);
NotCard2[0]:=backCard[0];
MyCard[BackCard[0]].Top:=DownCard_Top;
MyCard[BackCard[0]].Left:=Card2_Left;
MoveCard(1,0,0);
Label2.Caption:='剩余牌数:'+inttostr(High(BackCard)+1);
end
else
begin
if HandCard<>nil then
begin
Myimage[HandCard[0]].Top :=DownCard_Top;
MYimage[HandCard[0]].Left:=Card2_Left;
MYimage[HandCard[0]].Visible :=true;
Myimage[HandCard[0]].Enabled := True;
Not2Max:=1;
Setlength(NotCard2,Not2Max);
NotCard2[0]:=HandCard[0];
MyCard[HandCard[0]].Top :=DownCard_Top;
MyCard[HandCard[0]].Left :=Card2_Left;
delHandCard(HandCard[0]);
Label2.Caption:='剩余牌数:0';
Label1.Caption:='剩余牌数:'+inttostr(High(HandCard)+1);
end;
end;
end;
if NotCard3=nil then
begin
if BackCard<>nil then
begin
MyImage[BackCard[0]].top:=DownCard_Top;
MyImage[BackCard[0]].Left:=Card3_Left;
Myimage[BackCard[0]].Visible:=True;
MYimage[BackCard[0]].Enabled :=True;
Myimage[BackCard[0]].BringToFront ;
Not3Max:=1;
SetLength(NotCard3,Not3Max);
NotCard3[0]:=BackCard[0];
MyCard[BackCard[0]].Top:=DownCard_Top;
MyCard[BackCard[0]].Left:=Card3_Left;
MoveCard(1,0,0);
Label2.Caption:='剩余牌数:'+inttostr(High(BackCard)+1);
end
else
begin
if HandCard<>nil then
begin
Myimage[HandCard[0]].Top :=DownCard_Top;
MYimage[HandCard[0]].Left:=Card3_Left;
MYimage[HandCard[0]].Visible :=true;
Myimage[HandCard[0]].Enabled :=True;
Not3Max:=1;
SetLength(NotCard3,Not3Max);
NotCard3[0]:=HandCard[0];
MyCard[HandCard[0]].Top :=DownCard_Top;
MyCard[HandCard[0]].Left :=Card3_Left;
delHandCard(HandCard[0]);
Label2.Caption:='剩余牌数:0';
Label1.Caption:='剩余牌数:'+inttostr(High(HandCard)+1);
end;
end;
end;
if NotCard4=nil then
begin
if BackCard<>nil then
begin
MyImage[BackCard[0]].top:=DownCard_Top;
MyImage[BackCard[0]].Left:=Card4_Left;
Myimage[BackCard[0]].Visible:=True;
Myimage[BackCard[0]].Enabled:=True;
Myimage[BackCard[0]].BringToFront ;
Not4Max:=1;
SetLength(NotCard4,Not4Max);
NotCard4[0]:=BackCard[0];
MyCard[BackCard[0]].Top:=DownCard_Top;
MyCard[BackCard[0]].Left:=Card4_Left;
MoveCard(1,0,0);
Label2.Caption:='剩余牌数:'+inttostr(High(BackCard)+1);
end
else
begin
if HandCard<>nil then
begin
Myimage[HandCard[0]].Top :=DownCard_Top;
MYimage[HandCard[0]].Left:=Card4_Left;
MYimage[HandCard[0]].Visible :=true;
Myimage[HandCard[0]].Enabled :=True;
Not4Max:=1;
Setlength(NotCard4,Not4Max);
NotCard4[0]:=HandCard[0];
MyCard[HandCard[0]].Top :=DownCard_Top;
MyCard[HandCard[0]].Left :=Card4_Left;
delHandCard(HandCard[0]);
Label2.Caption:='剩余牌数:0';
Label1.Caption:='剩余牌数:'+inttostr(High(HandCard)+1);
end;
end;
end;
end
else
begin
if Not More then
begin
(Sender as Timage).Top := OldTop;
(Sender as Timage).Left := OldLeft;
end
else
begin
for i:=0 to High(Currently.Card)do
begin
MyImage[Currently.Card[i]].Top:=MyCard[Currently.Card[i]].Top;
MyImage[Currently.Card[i]].Left:=MyCard[Currently.Card[i]].Left;
end;
end;
end;
if (high(OkCard1)=12) and (high(OkCard2)=12) and (high(Okcard3)=12) and (high(OkCard4)=12) then
Application.MessageBox('恭喜你!!!,成功了!!!'+#13#10+'祝你今天有个好心情','开心一刻',MB_Ok+MB_IconInformation);
end;
procedure TForm1.DelHandCard(CardVar: integer);
var
i,j:integer;
MoveIndex:Array of integer;
Has:Bool;
begin
Has:=false;
for i:=0 to High(HandCard) do
begin
if HandCard[i]=CardVar then
Has:=True;
end;
if Has then
begin
SetLength(MoveIndex,High(HandCard));
j:=0;
for i:=0 to High(MoveIndex) do
begin
if HandCard[j]=CardVar then
begin
j:=j+1;
end;
MoveIndex[i]:=HandCard[j];
inc(j);
end;
Setlength(HandCard,High(HandCard));
for i:=0 to High(MoveIndex) do
begin
HandCard[i]:=MoveIndex[i];
end;
if (pointer-1)<=0 then
Pointer:=0
else
Pointer:=Pointer-1;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i,j:integer;
begin
if HandCard = nil then
exit;
j:=Downcard_Top;
for i:=0 to High(HandCard) do
begin
Myimage[HandCard[i]].Top :=j;
MYimage[HandCard[i]].Left:=130;
MYimage[HandCard[i]].Visible :=true;
Myimage[HandCard[i]].BringToFront;
J:=J+15;
end;
end;
function TForm1.CheckGround(Card: Timage): bool;
var
CardCenterX,CardCenterY:integer;
rangCenterX,rangCenterY:integer;
Cx,Cy,rx,ry:integer;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -