• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    C++ Builder構建算二十四點小游戲

    發布: 2008-4-22 18:01 | 作者: 不詳 | 來源: ccid | 查看: 151次 | 進入軟件測試論壇討論

    領測軟件測試網 關鍵字:C++ Builder所謂算二十四點可能是不少讀者朋友童年喜歡玩的撲克游戲之一,玩法是:把一副撲克牌從A到10選出來均分成兩份,兩個小朋友各持一份即可開始游戲,每人隨機抽兩張出來組成四張牌,把這四張牌加減乘除湊成結果為二十四,先算出來的一方贏得對方的兩張牌,進行下一輪,如果都沒計算出來為和局,直到把對方所有的撲克牌全部繳獲,游戲方告結束。 

    想要自己算的最快嗎?那最好是讓程序來替你做個二十四點王。 

    用程序實現二十四點的算法很多,但大都比較繁雜?紤]到湊出結果的可能情況并不是太多,在這里我們將主要靠自己窮舉可能的演算式外加循環計算來實現。 

    四張牌的排列組合 

    四張牌A B C D共有多少種排列組合?公式為P44,即1×2×3×4=24共24種組合。 

    為什么要把四張牌的所有排列組合都羅列出來呢?因為我們將要采用的算法簡單說就是:窮舉所有算術式,比如A+B+C+D、A+B+C-D等等,讓每一個算術式的四個變量都去排列組合一次,尋找是否存在一個排列組合使算術式的值為24。舉個例子A+B+C-D: 

    把四張牌(四個變量)放入表2的(Pos.1、Pos.2、Pos.3、Pos.4)四個位置中去,總共應該有24種放置方法。 

    如果在表3內找到一個公式使A+B+C-D的值等于24,則打印出此算術式,否則說明此算術式不滿足需要,再進行下一個算術式的變量的排列組合。如果窮舉所有的算術式都不能滿足要求,那么表示此題無解。 

    窮舉所有算術式 

    這個工作比較煩瑣,但很考驗你的邏輯演算能力。筆者按加、減、乘、除、括號的順序基本羅列完了所有算術式,表4—表6只羅列了一部分,剩下的讀者可以自己來完成: 

    二、制作游戲 

    有了前面的基礎后,開始編程。筆者在這里使用的是Borland C++ Builder,下面簡單介紹一下制作流程并講解其中的難點: 

    1.動手設計一個人性化的界面。 

    2.程序編制流程: 

    不管是手動輸入四個數還是隨機產生,都把這四個數值存儲起來,然后進行求解。求解時遵循這樣的規律:這里共有45種算術式(包括無解),從第一個算術式開始不斷調用排列組合,如果成立(結果為24),退出求解過程并輸出結果,不成立則嘗試下一個算術式,直到最后一個算術式的調用,如果都不滿足則打印無解。 

    3.隨機產生數字: 

    產生四個數,一種方式是手動錄入,一種方式是隨機產生,這里只給出隨機產生數字的代碼:(程序里的變量沒作說明均為全局變量) 

    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    flag=false;
    randomize();
    NumberA=random(10)+1;
    NumberB=random(10)+1;
    NumberC=random(10)+1;
    NumberD=random(10)+1;
    Edit1->Text=FloatToStr(NumberA);
    Edit2->Text=FloatToStr(NumberB);
    Edit3->Text=FloatToStr(NumberC);
    Edit4->Text=FloatToStr(NumberD);
    Button4->SetFocus();
    }

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: 構建 Builder 小游戲

    21/212>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>