狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频

當前位置:系統之家 > 技術開發教程 > 詳細頁面

C++ Builder構建算24點小游戲

C++ Builder構建算24點小游戲

更新時間:2019-10-08 文章作者:未知 信息來源:網絡 閱讀次數:

  所謂算二十四點可能是不少讀者朋友童年喜歡玩的撲克游戲之一,玩法是:把一副撲克牌從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();
}

  4.求解過程:

////////////求解
for(j=1;j<=45;j++)
{
switch(j)
{
///////////////
case 2://對應表4的第二種情況
for(i=1;i<=24;i++)//注意case1只循環1次,因為四個變量求和不必考慮變量的位置
{
kind(i);//調用子函數
answer=A+B+C-D;
if(answer==24)
{
flag=true; //設置標志
result=FloatToStr(A)+"+"+FloatToStr(B)+"+"+FloatToStr(C)+"-"+FloatToStr(D)+"=24";
Label1->Caption=result;
Label1->Visible =true;
break;
}
}
if(flag==true)break;//退出switch
……………………//余下的求解算術式的方法與case2相似,這里就不重復了。
case 45:
flag=true;
result="無解";
Label1->Caption=result;
Label1->Visible =true;
break;
if(flag==true)break;
//////////////////////
/////////////////////
}
if(flag==true)//退出循環
break;
}

  子函數:

int kind(int k)
{
switch(k)//排列組合4個數,對應表1
{
case 1:A=NumberA;B=NumberB;C=NumberC;D=NumberD;break;
case 2:A=NumberA;B=NumberB;D=NumberC;C=NumberD;break;
case 3:A=NumberA;C=NumberB;B=NumberC;D=NumberD;break;
case 4:A=NumberA;D=NumberB;B=NumberC;C=NumberD;break;
……
case 22:D=NumberA;B=NumberB;A=NumberC;C=NumberD;break;
case 23:D=NumberA;B=NumberB;C=NumberC;A=NumberD;break;
default:D=NumberA;C=NumberB;B=NumberC;A=NumberD;
}
}

  小結:

  值得注意的是在羅列算術式時既要避免重復,如A+B×C+D與A×B+C+D是一致的,需要丟棄一個,又要列舉全面,還要考慮到排除掉不可能實現的算術式,此程序的算法不難理解,關鍵在于算術式的準確。理清楚了算法,編程是很快的。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频
美女视频黄久久| 亚洲最新在线| 亚洲成人一区二区| 欧美一区二视频| 999在线观看精品免费不卡网站| 麻豆国产一区二区| 中文字幕精品一区二区精品绿巨人| 羞羞答答国产精品www一本| 国产福利一区二区| 亚洲成a人在线观看| 精品日韩欧美在线| 久久综合九色综合欧美狠狠| 91网站视频在线观看| 琪琪久久久久日韩精品| 亚洲欧洲精品一区二区三区不卡| 欧美疯狂性受xxxxx喷水图片| 亚洲三级影院| 成人av动漫网站| 日韩精品电影一区亚洲| 国产精品美女久久久久av爽李琼 | 国产麻豆视频精品| 亚洲最大成人网4388xx| 精品国产免费久久| 欧美系列日韩一区| 国产一区二区高清| 欧美在线高清| 国产成人精品一区二| 日韩av一二三| 亚洲另类春色校园小说| 久久精品人人做人人爽97| 欧美日韩一区中文字幕| 国产精品久久久一区二区| 色综合欧美在线视频区| 国产美女娇喘av呻吟久久| 亚洲电影一区二区三区| 国产精品久久久久久福利一牛影视 | 中文在线一区二区| 日韩一区二区免费高清| 日本韩国欧美国产| 国产日韩精品久久| 狠狠88综合久久久久综合网| 成人国产电影网| 国产麻豆精品一区二区| 久久精品99国产精品| 亚洲第一激情av| 亚洲美女一区二区三区| 中文字幕成人在线观看| 久久综合久久99| 精品久久久久av影院| 在线播放亚洲一区| 欧美三级三级三级爽爽爽| 久久久综合网| 亚洲免费网站| 男女av一区三区二区色多| 国产欧美二区| 在线视频精品| 在线亚洲伦理| 一本色道久久| 在线一区日本视频| 99热这里只有成人精品国产| 亚洲成色精品| 亚洲成色精品| 亚洲久久在线| 国产精品午夜av在线| 一区二区三区福利| 一区二区三区精品国产| 一本久道综合久久精品| 99热这里只有精品8| 一区二区精品在线| 国产精品毛片在线| 亚洲在线一区| 久久蜜桃资源一区二区老牛| 久久看片网站| 欧美在线观看视频一区二区三区| 色妹子一区二区| 在线观看日韩av先锋影音电影院| 在线一区二区三区| 欧美日韩亚洲综合一区 | 精久久久久久久久久久| 国产在线精品一区二区不卡了| 国产在线精品国自产拍免费| 国产xxx精品视频大全| 北岛玲一区二区三区四区| 99re亚洲国产精品| 国内一区二区三区在线视频| 亚洲激情黄色| 久久综合九九| 69av一区二区三区| 精品国产欧美一区二区| 亚洲国产高清在线观看视频| 中文字幕在线观看不卡视频| 亚洲综合男人的天堂| 日本aⅴ免费视频一区二区三区| 精品在线播放免费| 成人av影视在线观看| 欧美日产一区二区三区在线观看| 18成人免费观看视频| 久久激情一区| 日韩一区二区中文字幕| 国产日韩欧美激情| 一区二区三区四区五区视频在线观看 | av成人免费在线观看| 国产中文一区| 久久精品一区二区国产| 欧美妇女性影城| 欧美国产日韩一二三区| 一区二区三区美女| 精品一区二区三区在线观看| av一区二区三区| 国产区二精品视| 欧美挠脚心视频网站| 久久久久久久综合色一本| 亚洲永久免费av| 国产在线一区二区| 欧美人与禽猛交乱配视频| 羞羞答答国产精品www一本| 9191国产精品| 亚洲婷婷综合久久一本伊一区| 日韩精品一二三区| 成人综合在线网站| 亚洲福利精品| 欧美日韩国产电影| 国产精品视频一二三区 | 久久久久欧美精品| 精品免费国产二区三区| 一区二区三区在线免费视频| 国产乱码字幕精品高清av | 国产精品久久久久久久裸模| 欧美a级理论片| 91麻豆福利精品推荐| 久久久久国产精品午夜一区| 精品精品国产高清一毛片一天堂| 亚洲精品日韩一| 国产精品亚洲第一区在线暖暖韩国 | 午夜精品视频在线观看| av福利精品导航| 久久久久久一区| 国产视频在线观看一区二区三区| 日韩精品一卡二卡三卡四卡无卡| 99久久er热在这里只有精品15| 久久福利精品| 久久嫩草精品久久久精品| 日韩精品三区四区| 欧美日韩视频一区二区三区| 欧美日韩久久一区二区| 中文字幕亚洲区| 国产成人自拍高清视频在线免费播放| 亚洲区一区二区三区| 7777精品久久久大香线蕉| 亚洲激情图片小说视频| 成人av在线看| 在线观看www91| 日韩一区中文字幕| 成人黄色777网| 欧美综合在线视频| 亚洲欧洲在线观看av| 成人自拍视频在线| 色婷婷综合久久久中文一区二区 | 免费国产一区二区| 国产精品区一区二区三区| 国产麻豆一精品一av一免费| 亚洲综合国产| 国产精品国产三级国产aⅴ入口 | 久久亚洲欧洲| 成人欧美一区二区三区| 成人免费高清在线| 欧洲精品视频在线观看| 一区二区三区精品视频| 欧美精品国产一区| 日韩欧美成人一区| 久久av中文字幕片| 亚洲在线播放| 亚洲免费观看高清完整版在线观看| 99热精品国产| 日韩三级中文字幕| 久久精品国产色蜜蜜麻豆| 国产视频一区三区| 日韩毛片视频在线看| 欧美一区二区在线| 精品美女一区二区| 国产精品1区2区| 在线观看成人小视频| 丝袜亚洲另类欧美综合| 国产精品亚洲综合久久| 中文字幕日韩av资源站| 欧美日韩精品一本二本三本| 久久久噜噜噜久久中文字幕色伊伊| 国产精品88888| 欧美精品视频www在线观看| 免费高清不卡av| 91福利小视频| 日本网站在线观看一区二区三区 | 久久蜜桃av一区精品变态类天堂| 国产成人精品影院| 欧美军同video69gay| 久久草av在线| 欧美亚洲一区三区| 久久精品理论片| 欧美艳星brazzers| 经典三级一区二区|