亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? unit_main.pas

?? 掃雷
?? PAS
?? 第 1 頁 / 共 5 頁
字號:

  for l_i:= 1 to l_DownGridArray .LocalTotalCols do
    for l_j:= 1 to l_DownGridArray .LocalTotalRows do
    begin
      //將是雷而沒有標出來的將雷展開-41
      if (l_DownGridArray .grid[l_i][l_j] = 10 ) and
              ((l_UpGridArray .grid[l_i][l_j] = 11)
                or (l_UpGridArray .grid[l_i][l_j] = 32))  then
        l_UpGridArray .Grid[l_i][l_j]:= 41;

      //將不是雷而卻標成雷了的快用標錯了的雷塊表示-43
      if (l_DownGridArray .grid[l_i][l_j] <> 10 )  and
              (l_UpGridArray .grid[l_i][l_j] = 31) then
        l_UpGridArray .Grid[l_i][l_j]:= 43;

    end;
  ChgSpbtnGlyph(f_Sad );

  isGameOver := true;
  isGameLost := true;

  //重掃本局的菜單可用
  Menu_Restart .Enabled :=true;

  //暫停 的菜單不可用
  Menu_Pause_Resume .Enabled :=false;

  GameStatus :=s_Lost;
  ChangeStatusBar(UserLevel ,UserTotalCols,UserTotalRows ,UserBombCount,GameStatus,LocalScore,LanguageType);
end;


procedure LeftAndRightBtnDown(lrd_DownGridArray:TGridArray ; var lrd_UpGridArray:TGridArray;lrd_Col,lrd_Row:Integer );
var
  lrd_i,lrd_j:integer;
begin
  case lrd_UpGridArray .Grid [lrd_Col ][lrd_Row ] of
    //"12" 的周圍肯定不存在需要改變的方塊
    12 : exit;

    11,32,31,21,22,23,24,25,26,27,28,33,13:
      begin
        //對其四周的方塊進行逐個判斷
        for lrd_i := -1 to 1 do
          for lrd_j :=-1 to 1do
            case lrd_UpGridArray .grid[lrd_Col +lrd_i][lrd_Row + lrd_j] of
              11 : lrd_UpGridArray .grid[lrd_Col +lrd_i][lrd_Row + lrd_j]:=13;
              32 : lrd_UpGridArray .grid[lrd_Col +lrd_i][lrd_Row + lrd_j]:=33
            end;
      end;
  end;
end;

procedure LeftAndRightBtnUp(lru_DownGridArray:TGridArray ;var lru_UpGridArray:TGridArray;lru_Col,lru_Row:integer );
var
  lru_i,lru_j:integer;
  lru_FlagCount:integer;
  WrongCount:integer;
  lru_ColArr,lru_RowArr :TOverColAndRow ;
  isWrong:boolean;
  i:integer;
begin
  case lru_UpGridArray .Grid [lru_Col ][lru_Row ] of
    12 : exit;
    13,31,33:
      begin
        for lru_i := -1 to 1 do
          for lru_j :=-1 to 1 do
            case lru_UpGridArray .grid[lru_Col +lru_i][lru_Row + lru_j] of
              13 : lru_UpGridArray .grid[lru_Col +lru_i][lru_Row + lru_j]:=11;
              33 : lru_UpGridArray .grid[lru_Col +lru_i][lru_Row + lru_j]:=32
            end;
      end;

    21,22,23,24,25,26,27,28:
      begin
        //
        lru_FlagCount := 0;
        for lru_i:= -1 to 1 do
          for lru_j:=-1 to 1 do
            if lru_UpGridArray .grid[lru_Col +lru_i][lru_Row + lru_j] = 31 then
              lru_FlagCount :=lru_FlagCount + 1;

        if lru_UpGridArray .grid[lru_Col ][lru_Row ] -20 = lru_FlagCount then
        // 顯示的數字與周圍標志的旗的數量相等時
        begin
          isWrong :=False;
          //判斷是否有將不是累的標成了雷的塊
            for lru_i := -1 to 1 do
              for lru_j:= -1 to 1 do
                if ((lru_UpGridArray .Grid [lru_Col+lru_i ][lru_Row + lru_j ] = 13)
                    or (lru_UpGridArray .Grid [lru_Col+lru_i  ][lru_Row+lru_j ] = 33))
                    and (lru_DownGridArray .grid[lru_Col + lru_i ][ lru_Row +lru_j ] <> 10 ) then
                  // DownGridArray '0'() UpGridArray ,
                  if lru_DownGridArray .grid[lru_Col + lru_i ][ lru_Row +lru_j ] <> 0 then
                  begin
                    lru_UpGridArray .grid[lru_Col + lru_i ][ lru_Row +lru_j ]:=
                        lru_DownGridArray .grid[lru_Col + lru_i ][ lru_Row +lru_j ] + 20;
                    BlockOpenCount :=BlockOpenCount +1;
                  end else
                    SeekBlackBlock(lru_DownGridArray ,lru_UpGridArray ,lru_Col+lru_i ,lru_Row+lru_j );

          for lru_i := -1 to 1 do
            for lru_j:= -1 to 1 do
              if (lru_DownGridArray .Grid [lru_Col + lru_i ][lru_Row +lru_j] <> 10 )
                  and (lru_UpGridArray .grid[lru_Col + lru_i][lru_Row +lru_j] = 31) then
                isWrong :=true;

          if isWrong <> false then
          //如果沒有有標錯了雷的塊,則
          begin
            WrongCount :=1;
            for i:= 1 to 8 do
            begin
              lru_ColArr [i]:=0;
              lru_RowArr [i]:=0;
            end;
            for lru_i :=-1 to 1 do
              for lru_j:= -1 to 1 do
              begin
                //Down 是雷(10 )  Up 是原始塊凹進去的(13)或是問號凹進去的 (33)
                if ((lru_UpGridArray .Grid [lru_Col+lru_i ][lru_Row+lru_j ] = 13 )
                      or (lru_UpGridArray .Grid [lru_Col+lru_i ][lru_Row+lru_j ] = 33 )) then
                  if  (lru_DownGridArray .grid[lru_Col + lru_i ][ lru_Row +lru_j ] = 10) then
                  begin
                    lru_ColArr [WrongCount]:=lru_Col + lru_i ;
                    lru_RowArr [wrongCount]:=lru_Row + lru_j ;
                    WrongCount :=WrongCount +1;
                  end
              end;
            Frm_Main.GameLost(lru_DownGridArray ,lru_UpGridArray ,lru_ColArr ,lru_RowArr );
          end;

        end else
        //
        begin
          for lru_i := -1 to 1 do
            for lru_j := -1 to 1 do
              if not ((lru_i =0 ) and(lru_j=0 ))then
                case lru_UpGridArray .grid[lru_Col +lru_i][lru_Row + lru_j] of
                  13 : lru_UpGridArray .grid[lru_Col +lru_i][lru_Row + lru_j]:=11;
                  33 : lru_UpGridArray .grid[lru_Col +lru_i][lru_Row + lru_j]:=32;
                end;
        end; { of If Else}
      end;  { of  21,22,23,24,25,26,27,28}
  end;
end;


procedure LeftBtnDown(ld_DownGridArray:TGridArray ;var ld_UpGridArray:TGridArray ;ld_Col,ld_Row:integer);
begin
  case ld_UpGridArray .Grid [ld_Col ][ld_Row ] of
    11 : ld_UpGridArray .grid[ld_Col ][ld_Row ] :=13;
    32 : ld_UpGridArray. grid[ld_Col ][ld_Row ] :=33;
    12,21,22,23,24,25,26,27,28,31: exit;
    else exit;
  end;
end;


procedure LeftBtnUp(lu_DownGridArray:TGridArray ;var lu_UpGridArray:TGridArray ;lu_Col,lu_Row:integer);
var
  lu_ColArr,lu_RowArr:TOverColAndRow ;
  i:integer;
begin
  case lu_UpGridArray .Grid [lu_Col ][lu_Row ] of
    //從被按下的空白原始塊或是被按下的問號上UP時
    13,33 :
      begin
        case lu_DownGridArray .grid[lu_Col ][lu_Row ] of
          10 :
            begin
              for i:=1 to 8 do
              begin
                lu_ColArr [i]:=0;
                lu_RowArr [i]:=0;
              end;

              lu_ColArr [1]:=lu_Col ;
              lu_RowArr [1]:=lu_Row ;
              Frm_Main.GameLost(lu_DownGridArray ,lu_UpGridArray ,lu_ColArr ,lu_RowArr );
            end;
          0 :
            begin
              SeekBlackBlock(lu_DownGridArray ,lu_UpGridArray ,lu_Col ,lu_Row );
            end;

          1,2,3,4,5,6,7,8:
            begin
              lu_UpGridArray .grid[lu_Col ][lu_Row ] :=lu_DownGridArray .grid[lu_Col ][lu_Row ]+20;
              BlockOpenCount :=BlockOpenCount +1;
            end;
        end;
      end;
    12,21,22,23,24,25,26,27,28,31: exit;
  end;
end;

procedure RightBtnDown(rd_DownGridArray:TGridArray ;var rd_UpGridArray:TGridArray ;rd_Col,rd_Row:integer);
var
  rd_i:boolean;
begin
  rd_i:=True;

  if rd_i and ( rd_UpGridArray .Grid [rd_Col][rd_Row] = 11) then
  begin
    rd_i :=not true;
    rd_UpGridArray .Grid [rd_Col][rd_Row] := 31;
    FlagCount := FlagCount +1;
  end;

  if rd_i and ( rd_UpGridArray .Grid [rd_Col][rd_Row] = 31) then
  begin
    rd_i := not rd_i;
    FlagCount :=FlagCount -1;
    if isHaveQuestion then
    begin
      rd_UpGridArray .Grid [rd_Col][rd_Row] := 32;

    end else
    begin
      rd_UpGridArray .Grid [rd_Col][rd_Row] := 11;
    end;
  end;

  if rd_i and ( rd_UpGridArray .grid[rd_Col][rd_Row] = 32) then
  begin
    rd_UpGridArray .Grid [rd_Col][rd_Row] := 11;
  end;

  Frm_Main.DrawHead(UserBombCount -FlagCount ,d_left );
end;


procedure checkArr(var c_downGridArray,c_UpGridArray:TGridArray ;var c_BombCount:integer);
begin
  if c_DownGridArray .LocalTotalCols > g_MaxCol then
  begin
    c_DownGridArray.LocalTotalCols :=g_MaxCol;
    c_UpGridArray.LocalTotalCols :=g_MaxCol ;
  end;

  if c_DownGridArray  .LocalTotalRows > g_MaxRow then
  begin
    c_DownGridArray .LocalTotalRows := g_MaxRow ;
    c_UpGridArray .localTotalRows :=g_MaxRow ;
  end;

  if c_DownGridArray .LocalTotalCols < g_MinCol then
  begin
    c_DownGridArray.LocalTotalCols :=g_MinCol;
    c_UpGridArray.LocalTotalCols :=g_MinCol ;
  end;

  if c_DownGridArray  .LocalTotalRows < g_MinRow then
  begin
    c_DownGridArray .LocalTotalRows := g_MinRow ;
    c_UpGridArray .localTotalRows :=g_MinRow ;
  end;

  //控制雷數的最大值
  if c_BombCount >(c_DownGridArray .LocalTotalCols *c_downGridArray .LocalTotalRows ) *g_MaxPer then
    c_BombCount:= trunc((c_DownGridArray .LocalTotalCols *c_downGridArray .LocalTotalRows ) *g_MaxPer);

  if c_BombCount >999 then
    c_BombCount := 999;

  //控制雷數的最小值
  if c_BombCount < g_MinCount then
    c_BombCount :=g_MinCount;

  c_UpGridArray:=c_downGridArray ;
end;

procedure TFrm_Main.initForm(const totalCol,totalRow,i_bombCount:integer; const i_isHaveStatusBar:boolean);
var
  i_DisplayDir :TDisplayDir ;
begin
  //之所以取值如此大 8 4,是為了在初級時的菜單不至于雙層顯示!
  Panel_bottom .BorderWidth :=8;
  Panel_bottom .BevelWidth :=4;

  Panel_top .Height :=55;
  Panel_top .BorderWidth :=8;
  Panel_top .BevelWidth :=4;

  Panel_bottom .Width :=totalCol *g_BlockWidth +(Panel_bottom .BorderWidth +Panel_bottom .BevelWidth )*2;
  Panel_bottom .Height :=totalRow *g_BlockHeight  +(Panel_bottom .BorderWidth +Panel_bottom .BevelWidth )*2;
  Panel_top.Width :=Panel_bottom.Width ;

  Panel_bottom .Top :=50;

  //定制窗體的大小。
  ClientWidth :=Panel_bottom .Width ;

  //根據是否有狀態欄定制窗體的高度; 調用函數
  CustomizeFrmClientRange(i_isHaveStatusBar);

  StatusBar_Mine.visible:=i_isHaveStatusBar;
  Menu_StatusBar.Checked :=i_isHaveStatusBar;

  Panel_Display_left.Left :=14;
  image_face.Width :=g_FaceWidth ;
  image_face.Height:=g_FaceHeight ;
  image_face.Left:=(Panel_top .Width div 2) - (image_face.Width  div 2);
  Panel_Display_right.Left :=Panel_top .Width - Panel_Display_left .left-g_NumWidth *3 -1 ;

  ChgSpbtnGlyph (f_smile );

  i_DisplayDir :=d_left ;
  DrawHead (i_bombCount, i_DisplayDir );

  i_DisplayDir :=d_right ;
  DrawHead (0,i_DisplayDir );
  
end;

procedure TFrm_Main.X1Click(Sender: TObject);
begin
  close;
end;

procedure TFrm_Main.FormClose(Sender: TObject; var Action: TCloseAction);
var
  l_i:integer; //語言;
  v_i:integer; //級別;
  c_REG:TRegistry;
begin
  case LanguageType of
    l_Chinese_Simplified : l_i:= 10;
    l_Chinese_Traditional : l_i:=11;
    l_English : l_i:= 20;
    else l_i:=10;
  end;

  case UserLevel of
    v_Beginner :v_i:=11;
    v_Middle :v_i:=12;
    v_Expert :v_i:=13;
    v_Professional :v_i:=14;
    v_UserDefine :v_i:=20;
    else v_i:=12;
  end;

  c_REG:=TRegistry.Create;
  c_REG.RootKey:=HKEY_CURRENT_USER;

  with c_REG do
  begin
    if not KeyExists(g_REG_InfoPath ) then
      CreateKey(g_REG_InfoPath);

    OpenKey(g_REG_InfoPath ,False);
    WriteInteger('Language',l_i);
    WriteInteger('Pos_Left',Left );
    WriteInteger('Pos_Top',Top );

    WriteInteger('Level',v_i );
    WriteInteger('LocalCols',UserTotalCols );
    WriteInteger('LocalRows',UserTotalRows );
    WriteInteger('BombCount',UserBombCount );
    WriteBool('IsHaveQuestion',isHaveQuestion );
    WriteBool('IsHaveColor',isHaveColor );
    WriteBool('IsHaveSound',isHaveSound );
    WriteBool('IsHaveStatusBar',isHaveStatusBar);

    CloseKey;
    Free;
  end;
  action:=cafree;
end;

procedure ChangePixelToBlock(pixelx,pixely:integer;var BlockCol,BlockRow:integer);
begin
  if pixelx< 0 then
    BlockCol :=pixelx div g_BlockWidth-1
  else
    BlockCol :=pixelx div g_BlockWidth +1;

  if pixely < 0 then

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蓝色福利精品导航| 蜜臀久久久99精品久久久久久| 国产喷白浆一区二区三区| 国产无遮挡一区二区三区毛片日本 | 一区二区三区中文在线观看| 亚洲九九爱视频| 成人爽a毛片一区二区免费| 成人性色生活片| 欧美军同video69gay| 国产性天天综合网| 亚洲一区二区三区爽爽爽爽爽| 日韩精品午夜视频| 久久成人免费网| 成人h动漫精品一区二| 一本一道波多野结衣一区二区| 欧美日韩国产首页在线观看| 日韩欧美国产一二三区| 国产精品欧美久久久久无广告 | 国产清纯美女被跳蛋高潮一区二区久久w| 久久伊人中文字幕| 91精品福利视频| 国产精品主播直播| 日韩精品影音先锋| 久久精品一区二区三区四区| 国产婷婷色一区二区三区在线| 国产欧美视频一区二区| 亚洲欧美国产77777| 亚洲一级二级三级在线免费观看| 欧美激情一二三区| 三级久久三级久久久| 国产精品亚洲人在线观看| 91麻豆精品国产91久久久久久久久 | 亚洲精品视频免费看| 日韩精品一二三区| 26uuu另类欧美| 国产欧美一区二区精品久导航| 经典三级一区二区| 国产精品国产精品国产专区不蜜 | 欧美激情艳妇裸体舞| 免费在线观看一区二区三区| 在线一区二区三区做爰视频网站| 久久久精品免费观看| 亚洲欧美日韩中文字幕一区二区三区| 麻豆免费精品视频| 91精品国产手机| 美女视频黄免费的久久 | 国产最新精品免费| 欧美日韩亚洲综合一区二区三区| 亚洲欧洲www| 日本韩国欧美一区二区三区| 亚洲一区二区三区四区的| 欧美一级一区二区| 激情欧美一区二区三区在线观看| 综合欧美亚洲日本| 99国产精品久久久久| 亚洲最快最全在线视频| 欧美日韩视频在线一区二区| 污片在线观看一区二区| 日韩亚洲欧美高清| 成人伦理片在线| 无码av中文一区二区三区桃花岛| 日韩女同互慰一区二区| 国产成a人亚洲精品| 亚洲电影一区二区三区| 日韩精品最新网址| 国产精品亚洲一区二区三区在线 | 日本国产一区二区| 日韩黄色免费电影| 欧美激情一区二区三区在线| 欧美三区在线观看| 91免费在线看| 青草国产精品久久久久久| 国产欧美日韩另类视频免费观看| 91免费看`日韩一区二区| 久久精品国产亚洲5555| 亚洲最色的网站| 亚洲你懂的在线视频| 欧美嫩在线观看| 国产精品综合一区二区三区| 亚洲国产一区二区在线播放| 国产精品丝袜黑色高跟| 欧美男女性生活在线直播观看| 国产乱对白刺激视频不卡 | 免费成人在线网站| 日韩黄色免费电影| 亚洲 欧美综合在线网络| 国产精品久久久久久久久免费丝袜 | 国产成人夜色高潮福利影视| 狠狠色丁香婷婷综合久久片| 日本伊人精品一区二区三区观看方式| 亚洲女同ⅹxx女同tv| 亚洲日本青草视频在线怡红院 | 蜜桃视频一区二区| 精品一二三四在线| 国产一本一道久久香蕉| 国产成人av福利| 成人av小说网| 欧美日韩成人一区二区| 日韩一卡二卡三卡四卡| 精品va天堂亚洲国产| 国产精品乱子久久久久| 亚洲欧洲精品一区二区三区不卡| 夜夜夜精品看看| 亚洲不卡一区二区三区| 韩国av一区二区三区在线观看| 精品一区二区三区视频| 91免费观看视频在线| 欧美在线free| 欧美不卡激情三级在线观看| 国产精品国产精品国产专区不蜜| 亚洲国产欧美日韩另类综合| 麻豆精品视频在线观看| 日本韩国一区二区三区视频| 欧美一区二区大片| 中文在线资源观看网站视频免费不卡| 一级特黄大欧美久久久| 久久成人精品无人区| 91女人视频在线观看| 国产日产亚洲精品系列| 亚洲色图欧美在线| 久草这里只有精品视频| 一本一道综合狠狠老| 宅男噜噜噜66一区二区66| 国产欧美一区二区三区网站| 亚洲免费看黄网站| 日韩经典中文字幕一区| 欧美性猛交xxxx黑人交| 久久久久久久久97黄色工厂| 亚洲免费在线观看| 色94色欧美sute亚洲线路二| 中文字幕一区二区三区在线不卡| 国产高清在线观看免费不卡| 久久午夜老司机| 国产馆精品极品| 国产日韩欧美综合在线| 极品销魂美女一区二区三区| 精品99999| 91国产视频在线观看| 亚洲欧美日韩综合aⅴ视频| 91污片在线观看| 香蕉久久一区二区不卡无毒影院 | 在线观看91视频| 午夜精品久久久久久不卡8050| 欧洲精品一区二区| 肉肉av福利一精品导航| 国产丝袜欧美中文另类| 色综合一个色综合| 亚洲最大成人网4388xx| 日韩欧美在线影院| 成人爱爱电影网址| 午夜视黄欧洲亚洲| 欧美xxxxxxxx| 99re热这里只有精品视频| 男男视频亚洲欧美| 亚洲精选在线视频| 精品久久久影院| 色综合久久久网| 国产精品乡下勾搭老头1| **性色生活片久久毛片| 精品第一国产综合精品aⅴ| 色欲综合视频天天天| 国产一区亚洲一区| 五月激情综合网| 最新国产成人在线观看| 在线综合视频播放| 在线精品国精品国产尤物884a| 国产一区欧美一区| 性做久久久久久免费观看| 中文字幕第一区| 精品久久国产老人久久综合| 欧美三区在线观看| 91麻豆精品秘密| eeuss鲁片一区二区三区在线观看| 蜜臀精品一区二区三区在线观看| 亚洲精品欧美综合四区| 1000部国产精品成人观看| 一色屋精品亚洲香蕉网站| 国产精品每日更新| 国产日韩三级在线| 国产精品色眯眯| 18成人在线视频| 亚洲精品精品亚洲| 亚洲伦理在线精品| 亚洲欧美经典视频| 亚洲少妇30p| 婷婷成人激情在线网| 日韩国产欧美视频| 久久精品噜噜噜成人av农村| 日韩精品免费专区| 精品一区二区三区av| 国产成人在线视频网站| 91在线精品秘密一区二区| 色综合天天综合给合国产| 欧美视频一区二区三区| av一二三不卡影片| 欧美日精品一区视频| 亚洲精品一区二区三区四区高清| 国产色综合久久| 亚洲国产精品一区二区www在线| 日产欧产美韩系列久久99|