手机游戏&&尽在九游
聪明24点[1.5.1]24点游戏是一种使用扑克牌来进行的益智类游戏,
聪明24点[1.5.1]24点游戏是一种使用扑克牌来进行的益智类游戏,游戏内容是:从一副扑克牌中抽去大小王剩下52张,任意抽取4张牌,把牌面上的数(A代表1)运用加、减、乘、除和括号进行运算得出24。每张牌都必须使用一次,但不能重复使用。例如2,3,6,7可以有以下解法:6×7/2+3=24,或7×3+6/2=24,或(7×2-6)×3=24。本游戏支持三种模式:联网模式,局域网模式和单机模式。目前已经实现了单机模式。在单机模式中,程序随机选择4张牌并确认有解后,将这4张牌展示给玩家。玩家想出解法后依次选择两张牌,然后在可能的中间结果中选择一个需要的。重复一次上述过程,最后还剩下两张牌。如果这两张牌能算出24,则视为成功,否则视为失败。新增加的求解模式允许用户输入4个数字,程序会列出所有可能的解法。我们的新浪微博帐号是“聪明24点”。如果有任何疑问,缺陷报告,新的特性需求欢迎和我们联系。
开发者:互联网
点击下载按钮,或通过扫描二维码直接下载!
1.5.1 ***包安卓***包
请用手机扫描二维码订阅~
订阅后可及时接受活动,礼包,开测和开放下载的提醒!玩过经典的算24点游戏吧,怎样用计算机编程找出结果呢?
玩过经典的算24点游戏吧,怎样用计算机编程找出结果呢?
车讯快乐的土豹子
“算24点”是一种数学游戏,游戏很简单,还能健脑益智,是一项老少皆宜的游戏。“算24点”游戏玩法如下:一副扑克牌中除去大小王剩下52张(如果初练也可只用1~10这40张牌)。任意抽取4张牌,把牌面上的数通过加、减、乘、除(可加括号)计算得24,每张牌必需用到且只能用一次。游戏的目标是谁能最快找出这个算式。比如抽出的牌是3、5、8、9,那么算式为(3×9)+5--8或(8--5)×9--3等。有时候明明是可以有解的,但偏偏想不出来。这是人脑的局限性吧。那么有没有办法通过计算机找出这样的算式呢?回答是肯定的,我们为此用Delphi开发了一个小程序专门用来寻找这样的算式。首先,我们在Form1上设计Button1,Button2,Edit1,Edit2,Edit3,Edit4,Memo1。然后写上程序(为了便于理解,程序未做优化):unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtypeTForm1 = class(TForm)Button1: TBMemo1: TMEdit1: TEEdit2: TEEdit3: TEEdit4: TELabel1: TLButton2: TBprocedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject);private{ Private declarations }public{ Public declarations }varForm1: TForm1;m : Simplementation{$R *.dfm}//按操作符p对a,b进行相应计算function f(var a,b:p:integer):u:beginu := -1;case p of0: u:=a+b;1: u:=a-b;2: u:=a*b;3: if b&&0 then u:=a/b else u:=999999;result :=//对a,b,c,d按次序遍历所有运算式function js(var a,b,c,d:double):p,q,r:t : array[0..3] // =('+','-','*','/');s,s1 : Su,v :t[0]:='+'; t[1]:='-'; t[2]:='*'; t[3]:='/';//p,q,r=0-3分别代表示+、-、*、÷四种运算s:='';for p:=0 to 3 dofor q:=0 to 3 dofor r:=0 to 3 dou:=f(c,d,p); //abcd###u:=f(b,u,q);u:=f(a,u,r);s1:=Format('a %s (b %s (c %s d)) = %f',[t[r],t[q],t[p],u]);if (u=24) and (pos(s1,m)=0) then s:=s+s1+#13#10;u:=f(b,c,p); //abc#d##u:=f(u,d,q);s1:=Format('a %s ((b %s c) %s d) = %f',[t[r],t[p],t[q],u]);u:=f(b,c,p); //abc##d#u:=f(a,u,q);u:=f(u,d,r);s1:=Format('(a %s (b %s c)) %s d = %f',[t[q],t[p],t[r],u]);u:=f(a,b,p); //ab#cd##v:=f(c,d,q);u:=f(u,v,r);s1:=Format('(a %s b) %s (c %s d) = %f',[t[p],t[r],t[q],u]);u:=f(a,b,p); //ab#c#d#u:=f(u,c,q);s1:=Format('((a %s b) %s c) %s d = %f',[t[p],t[q],t[r],u]);s:=StringReplace(s,'a',floattoStr(a),[rfReplaceAll]);s:=StringReplace(s,'b',floattoStr(b),[rfReplaceAll]);s:=StringReplace(s,'c',floattoStr(c),[rfReplaceAll]);s:=StringReplace(s,'d',floattoStr(d),[rfReplaceAll]);result :=//主程序设计原理://首先把所有运算式化成五类后缀表达式(操作符#取值+-*/四种可能):// 1.abcd###,2.abc#d##,3.abc##d#,4.ab#cd##,5.ab#c#d#//然后对a,b,c,d这4个数字进行全排列,一共有24种排列方法,再用这24种排列方法//对5类表达式都计算一次,找出结果为24的。这样就不会漏掉任何一种可能,当然//重复是不可避免的。procedure TForm1.Button1Click(Sender: TObject);a,b,c,d://a:=1; b:=2; c:=3; d:=4; --测试a:=StrToFloat(Edit1.text);b:=StrToFloat(Edit2.text);c:=StrToFloat(Edit3.text);d:=StrToFloat(Edit4.text);//对a,b,c,d这4个数字进行全排列(共24种),再对每种排列遍历5类表达式m:='';m:=m+js(a,b,c,d);m:=m+js(a,b,d,c);m:=m+js(a,c,b,d);m:=m+js(a,c,d,b);m:=m+js(a,d,b,c);m:=m+js(a,d,c,b);m:=m+js(b,a,c,d);m:=m+js(b,a,d,c);m:=m+js(b,c,a,d);m:=m+js(b,c,d,a);m:=m+js(b,d,a,c);m:=m+js(b,d,c,a);m:=m+js(c,a,b,d);m:=m+js(c,a,d,b);m:=m+js(c,b,a,d);m:=m+js(c,b,d,a);m:=m+js(c,d,a,b);m:=m+js(c,d,b,a);m:=m+js(d,a,b,c);m:=m+js(d,a,c,b);m:=m+js(d,b,a,c);m:=m+js(d,b,c,a);m:=m+js(d,c,a,b);m:=m+js(d,c,b,a);if m&&'' then Memo1.Text := melse Memo1.Text := '无解。';procedure TForm1.Button2Click(Sender: TObject);REdit1.Text := IntToStr(Random(13)+1);Edit2.Text := IntToStr(Random(13)+1);Edit3.Text := IntToStr(Random(13)+1);Edit4.Text := IntToStr(Random(13)+1);Memo1.Text := '';end.编译运行后,点Button1随机产生4个数,然后点Button2计算结果。【转载声明】本头条号发表之文章皆是作者原创,版权皆为作品作者所有。所以转载前请务必通知作者并以超链接形式注明内容来自本站,以免带来不必要的麻烦。本头条号内容欢迎分享,但拒绝有商业目的的转载!
本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。
车讯快乐的土豹子
百家号 最近更新:
简介: 快乐来自哪里,让我给大家带来最快乐的时光
作者最新文章【24点游戏】24点游戏小游戏|24点游戏攻略
推荐好玩的小游戏
男生小游戏
女生小游戏
双人小游戏
&&24点游戏
24点游戏小游戏介绍:类益智小游戏,要求结果等于24,一起来玩一玩吧
10:39|类型:|大小:152K
下次在浏览器输入
就能玩啦!
喜欢24点游戏小游戏的人也喜欢
24点游戏小游戏相关推荐
呱呱热门小游戏专题
休闲小游戏排行
17.027.137.047.057.067.077.087.097.4107.5
休闲小游戏热门游戏
9分8.9分7分7.7分7.8分
相关小游戏专题