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

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

?? u_point24.pas

?? 用delphi做的速算24點撲克。實現功能齊全
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
unit U_Point24;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Menus,Math;

type
    TmathVar = set of Char;
  TFrm_Point = class(TForm)
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    E_Point: TEdit;
    Btn_Calc: TButton;
    Menu_Point: TMainMenu;
    F1: TMenuItem;
    N_Start: TMenuItem;
    N_GameRu: TMenuItem;
    N_Exit: TMenuItem;
    Label1: TLabel;
    Label2: TLabel;
    Lab_Time: TLabel;
    Tim_Point: TTimer;
    But_ReSet: TButton;
    //讀取第一個運算符的位置以得到表達式的第一個數字
    function AnyFirstPos(Str: string): Integer;
        //讀取最后一個運算符的位置以得到表達式的最后一個數字
    function AnyLastPos(Str: string): Integer;
    //判斷最先出現的符號是+號、-號、*號還是/號
    function AnyFirstF(Str:String):Char;
    //此計算用于計算不帶()號的加、減、乘、除運算
    function SubCompute(Str:String):integer;
    //用于計算表達式的結果
    function TotalCompute(Str:String):integer;
    Function isInputValid():Boolean;
    procedure FormCreate(Sender: TObject);
    procedure N_StartClick(Sender: TObject);
    procedure N_GameRuClick(Sender: TObject);
    procedure N_ExitClick(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure But_ReSetClick(Sender: TObject);
    procedure Tim_PointTimer(Sender: TObject);
    procedure E_PointKeyPress(Sender: TObject; var Key: Char);
    procedure Btn_CalcClick(Sender: TObject);
    procedure E_PointKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    RanDomData : array of Integer; //存放四個隨機數
    SpendTime : Integer;
    
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Frm_Point: TFrm_Point;
  mathVar : TmathVar = ['0','1','2','3','4','5','6','7','8','9','(',')',
               '+','-','*','/',#13,#8];{#13 回車 #8 退格}
implementation

uses U_Help;

{$R *.dfm}

{===================================初始化================================}
// 程序啟動時圖片框讀取背景圖片
procedure TFrm_Point.FormCreate(Sender: TObject);
begin
    Image1.Picture.LoadFromFile('pic\bg.bmp');
    Image2.Picture.LoadFromFile('pic\bg.bmp');
    Image3.Picture.LoadFromFile('pic\bg.bmp');
    Image4.Picture.LoadFromFile('pic\bg.bmp');
end;

//菜單
   //開始游戲
{隨機讀取4張牌同時啟動計時器}
procedure TFrm_Point.N_StartClick(Sender: TObject);
var
    i : Integer;
begin
    SpendTime := 0;
    Btn_Calc.Enabled := True;
    Tim_Point.Enabled := True;
    Randomize;//初始化隨機數
    SetLength(RanDomData, 4);
    for i := 0 to 3 do
    begin
        RanDomData[i] := Random(13) + 1;
    end;
    Image1.Picture.LoadFromFile('pic\' + IntToStr(RanDomData[0]) + '.bmp');
    Image2.Picture.LoadFromFile('pic\' + IntToStr(RanDomData[1]) + '.bmp');
    Image3.Picture.LoadFromFile('pic\' + IntToStr(RanDomData[2]) + '.bmp');
    Image4.Picture.LoadFromFile('pic\' + IntToStr(RanDomData[3]) + '.bmp');
end;
   //游戲規則
procedure TFrm_Point.N_GameRuClick(Sender: TObject);
begin  //啟動幫助
    Frm_Help.Show;
end;
   //退出
procedure TFrm_Point.N_ExitClick(Sender: TObject);
begin
    close;
end;

procedure TFrm_Point.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
    if Application.MessageBox('是否要退出游戲?', '系統詢問',
                             MB_OKCANCEL + MB_ICONQUESTION) = IDOK then
    begin
        CanClose := true;
    end
    else
    begin
        CanClose := False;
    end;
end;

procedure TFrm_Point.But_ReSetClick(Sender: TObject);
begin
    But_ReSet.Caption := '重新發牌';
    N_Start.Caption := '重新游戲';
    N_Start.Click;
    E_Point.Clear;
end;

procedure TFrm_Point.Tim_PointTimer(Sender: TObject);
begin
    SpendTime := SpendTime + 1;
    Lab_Time.Caption := IntToStr(SpendTime);
end;

procedure TFrm_Point.E_PointKeyPress(Sender: TObject; var Key: Char);
begin
    if Btn_Calc.Enabled and (not (key in mathVar)) then
    begin
        Application.MessageBox('請輸入合法字符!', '系統提示',
                                MB_OK + MB_ICONWARNING);
        key := #0;
    end;
end;
{=========================================================================}
   //計算
procedure TFrm_Point.Btn_CalcClick(Sender: TObject);
var
    resu:integer;
    answer:String;
begin
    if E_Point.Text = '' then
    begin
        Application.MessageBox('請輸入數學表達式!', '系統提示',
                                MB_OK + MB_ICONINFORMATION);
        exit;
    end;
   //resu := 0;
   Tim_Point.Enabled:=False;
   try
       if (not IsInputValid()) then
       begin
         Application.MessageBox('您輸入的數至少有一個不是系統所發4張撲克中的一個',
                    '輸入錯誤',MB_OK+MB_ICONERROR);
         Tim_Point.Enabled:= True;
         exit;
       end;
       resu:=TotalCompute(E_Point.Text);
       if (Abs(resu-24)<0.001) then
       begin
            Application.MessageBox('您真行,我服了您!','對了',
                                        MB_OK+MB_ICONINFORMATION);
            N_Start.Click;
            E_Point.Clear;
       end
       else
       begin
            answer:='您輸入的表達式的計算結果為'+IntToStr(Resu)+'!';
            Application.MessageBox(PChar(answer),'錯了',MB_OK+MB_ICONERROR);
            Tim_Point.Enabled:= True;
       end;
   except
        Application.MessageBox('您的輸入有誤','輸入錯誤',
                                MB_OK+MB_ICONWARNING);
        Tim_Point.Enabled:= True;
        exit;
   end;
end;
{=========================================================================}
    //讀取第一個運算符的位置以得到表達式的第一個數字
function TFrm_Point.AnyFirstPos(Str: string): Integer;
var
SubPos:integer;
PluPos:integer;
MulPos:integer;
DivPos:integer;
FirstPos:integer;
begin
   //定位字符串中最先一個運算符的位置
   SubPos:=Pos('-',Str);
   PluPos:=Pos('+',Str);
   MulPos:=Pos('*',Str);
   DivPos:=Pos('/',Str);
   FirstPos:=200;
   if (SubPos=0) then //如果沒有-號
        SubPos:=200; //將SubPos設置成一個不可能的值
   if (PluPos=0) then //如果沒有+號
        PluPos:=200; //將PluPos設置成一個不可能的值
   if (MulPos=0) then //如果沒有*號
        MulPos:=200; //將MulPos設置成一個不可能的值
   if (DivPos=0) then //如果沒有/號
        DivPos:=200; //將DivPos設置成一個不可能的值

    if(FirstPos > SubPos) then
      FirstPos := SubPos;
    if (FirstPos > PluPos) then
      FirstPos := PluPos;
    if (FirstPos>MulPos) then
      FirstPos := MulPos;
    if (FirstPos > DivPos) then
      FirstPos:=DivPos;

    Result := FirstPos; //結束函數,返回位置
end;
    //讀取最后一個運算符的位置以得到表達式的最后一個數字
function TFrm_Point.AnyLastPos(Str: string): Integer;
var
SubPos:integer;
PluPos:integer;
MulPos:integer;
DivPos:integer;
Pos:Integer;
begin
   //定位字符串中最后一個運算符的位置
   SubPos:=LastDelimiter('-',Str);
   PluPos:=LastDelimiter('+',Str);
   MulPos:=LastDelimiter('*',Str);
   DivPos:=LastDelimiter('/',Str);
   Pos:=SubPos;
   if (Pos<PluPos) then
        Pos:=PluPos;
   if (Pos<MulPos) then
        Pos:=MulPos;
   if (Pos<DivPos) then
        Pos:=DivPos;
   Result:=Pos; //結束函數,返回位置
end;
//判斷最先出現的符號是+號、-號、*號還是/號
function TFrm_Point.AnyFirstF(Str: String): Char;
var
SubPos:integer;
PluPos:integer;
MulPos:integer;
DivPos:integer;
Operator:char;
tempPos:integer;
begin
   SubPos:=Pos('-',Str);
   PluPos:=Pos('+',Str);
   MulPos:=Pos('*',Str);
   DivPos:=Pos('/',Str);

   if (SubPos=0) then //如果沒有-號
        SubPos:=200; //將SubPos設置成一個不可能的值
   if (PluPos=0) then //如果沒有+號
        PluPos:=200; //將PluPos設置成一個不可能的值

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一级二级三级| 国产精品美女一区二区| 99视频在线观看一区三区| 极品少妇一区二区三区精品视频 | 麻豆国产91在线播放| 亚洲最大成人综合| 亚洲午夜精品网| 性感美女久久精品| 日韩成人一区二区| 老色鬼精品视频在线观看播放| 舔着乳尖日韩一区| 美女视频第一区二区三区免费观看网站| 亚洲va韩国va欧美va| 三级在线观看一区二区| 青青草原综合久久大伊人精品优势| 亚洲第一搞黄网站| 久久99热这里只有精品| 国产一区二区不卡在线 | 国产精品国产三级国产aⅴ中文| 国产无遮挡一区二区三区毛片日本| 国产日产欧产精品推荐色| 亚洲国产精品国自产拍av| 中文字幕欧美一区| 亚洲成人av福利| 精品一二三四区| 成人午夜精品一区二区三区| 91色九色蝌蚪| 91精品国产高清一区二区三区 | 2023国产精华国产精品| 久久久青草青青国产亚洲免观| 中文字幕精品—区二区四季| 亚洲欧美日韩一区二区| 日韩影院免费视频| 成人午夜碰碰视频| 日韩一级在线观看| 国产精品每日更新在线播放网址| 一二三区精品福利视频| 精品一区二区三区在线观看国产| 国产91丝袜在线播放| 欧美亚洲图片小说| 精品国产伦一区二区三区观看方式| 中文字幕 久热精品 视频在线 | 精品三级av在线| 日韩美女视频19| 精品一区二区三区av| 在线视频欧美精品| 国产亚洲一二三区| 蜜臀av亚洲一区中文字幕| 99久久久国产精品免费蜜臀| 91精品国产一区二区三区蜜臀 | 麻豆91精品91久久久的内涵| 99免费精品视频| 欧美成人aa大片| 亚洲在线观看免费视频| 国产成人午夜99999| 欧美乱妇23p| 一卡二卡欧美日韩| 91视频com| 国产精品麻豆欧美日韩ww| 国内精品国产三级国产a久久| 欧美亚洲综合在线| 亚洲另类中文字| 成人免费观看av| 久久亚洲综合色| 老司机精品视频在线| 正在播放亚洲一区| 亚洲午夜电影网| 色综合久久综合网| 亚洲丝袜制服诱惑| 成人视屏免费看| 国产午夜精品一区二区三区四区| 青青草成人在线观看| 欧美日韩一区二区在线视频| 亚洲天堂免费看| gogogo免费视频观看亚洲一| 国产亚洲欧洲997久久综合| 久久精品国产99国产| 337p亚洲精品色噜噜| 三级不卡在线观看| 91精品黄色片免费大全| 亚洲成va人在线观看| 欧美色视频一区| 午夜精品久久久久久久久久| 欧美日韩中文一区| 亚洲成人你懂的| 91精品国产综合久久福利| 麻豆国产91在线播放| 国产午夜亚洲精品午夜鲁丝片| 美美哒免费高清在线观看视频一区二区| 欧美丰满少妇xxxbbb| 久久av资源站| 欧美经典一区二区| 91网站黄www| 亚洲主播在线观看| 91精品国产综合久久婷婷香蕉| 日韩黄色免费电影| 久久久亚洲欧洲日产国码αv| 国产精品一区二区男女羞羞无遮挡| 国产亚洲欧美日韩在线一区| 成人黄色小视频在线观看| 国产日产欧美精品一区二区三区| 国产自产高清不卡| 国产精品久久久久久一区二区三区| 91在线视频播放地址| 亚洲自拍与偷拍| 精品日韩欧美一区二区| 高清成人免费视频| 一区二区三区av电影| 欧美一级黄色片| 成人黄色电影在线| 亚洲亚洲人成综合网络| 精品福利二区三区| 一本到一区二区三区| 奇米777欧美一区二区| 国产欧美一区二区精品秋霞影院| 99久久国产综合精品麻豆| 天使萌一区二区三区免费观看| 精品国产91久久久久久久妲己| 欧美日韩国产精品成人| 国产麻豆午夜三级精品| 亚洲国产sm捆绑调教视频 | 国产精品久久久久久久久快鸭| 91电影在线观看| 国产一区视频导航| 亚洲图片有声小说| 国产精品免费网站在线观看| 7777精品伊人久久久大香线蕉超级流畅| 狠狠狠色丁香婷婷综合久久五月| 一区二区三区不卡视频| 中文天堂在线一区| 日韩免费视频线观看| 在线观看成人小视频| 懂色av一区二区三区蜜臀| 另类的小说在线视频另类成人小视频在线| 国产精品女人毛片| 久久久久久久综合色一本| 欧美日韩一区二区三区在线| 不卡一卡二卡三乱码免费网站| 久久精品国产**网站演员| 亚洲一区二区偷拍精品| 亚洲欧洲成人精品av97| 久久九九久久九九| 精品福利一二区| 欧美精品一区二区三| 欧美一区二区三区影视| 欧美三级日本三级少妇99| 色婷婷av一区二区| 97aⅴ精品视频一二三区| 国产精品一线二线三线精华| 久久精品国产色蜜蜜麻豆| 日韩电影在线免费| 天天综合天天做天天综合| 亚洲欧美国产毛片在线| 亚洲三级小视频| 国产精品电影一区二区| 国产精品无圣光一区二区| 久久尤物电影视频在线观看| 精品入口麻豆88视频| 欧美成人精品高清在线播放| 欧美一区二区三区在线| 欧美不卡一区二区三区| 精品理论电影在线观看| 久久综合久久综合亚洲| 久久久精品欧美丰满| 久久精品亚洲一区二区三区浴池| 久久久精品免费免费| 国产精品日韩精品欧美在线| 国产亚洲精品资源在线26u| 久久尤物电影视频在线观看| 国产色产综合色产在线视频| 久久久美女艺术照精彩视频福利播放| 欧美mv日韩mv国产网站app| 精品日本一线二线三线不卡| 精品国产91洋老外米糕| 中文字幕一区二区不卡| 亚洲综合小说图片| 日本欧美一区二区三区| 国产在线麻豆精品观看| 成人午夜碰碰视频| 欧美午夜精品久久久久久超碰| 911精品产国品一二三产区| 欧美成人a∨高清免费观看| 国产精品家庭影院| 亚洲永久免费视频| 蜜芽一区二区三区| 国产suv精品一区二区三区| 日本久久电影网| 精品美女一区二区| 亚洲欧美日韩一区| 久久99久久久久久久久久久| 成人精品国产一区二区4080| 欧美性猛片aaaaaaa做受| 欧美一级视频精品观看| 国产精品美女久久久久久久久久久| 一区二区三区成人在线视频| 青娱乐精品视频| 色呦呦网站一区| www国产亚洲精品久久麻豆| 樱花影视一区二区| 国产精品自拍av|