24点游戏

作者在 2006-09-01 11:54:00 发布以下内容

我知道VFP有一个函数TYPE()能判断某个变量或表达式的数据类型,也可以判断该变量或表达式计算的结果的数据类型,因此问题的关键是如何生成一个表达式,判断它的值是不是数值型,其值是不是24就可以了。比如4个1位数1、2、3、4。如果生成的表达式没有括号的话,这样的表达式是形如1+2+3+4的表达式,其中1、2、3、4的位置可互换;三个加号可换成任意运算符号(+、-、*、/)。如果在表达式中只允许加1对括号的话,可以生成的表达式形式更多,如(1+2)+3+4、1+(2+3)+4、1+2+(3+4)、(1+2+3)+4、1+(2+3+4)等。如果在表达式中允许有2对括号的话,则可生成的表达式有((1+2)+3)+4、(1+2)+(3+4)、(1+(2+3))+4、1+((2+3)+4)。这是该程序的设计思路。

*24点游戏: 任意给定4个1位数,采用+-*/和括号,得到24  BY Tiger5392

THISFORM.GRID1.RECORDSOURCE=NULL
CLOSE ALL
DIMENSION NN(4)
NN(1)=ALLTRIM(STR(THISFORM.TEXT1.VALUE))
NN(2)=ALLTRIM(STR(THISFORM.TEXT2.VALUE))
NN(3)=ALLTRIM(STR(THISFORM.TEXT3.VALUE))
NN(4)=ALLTRIM(STR(THISFORM.TEXT4.VALUE))
DIMENSION FH(6)
FH(1)="+"
FH(2)="-"
FH(3)="*"
FH(4)="/"
FH(5)="("
FH(6)=")"
CREATE TABLE EQ24 (算式 C(11),结果 N(12,4))
FOR I1=1 TO 4
  FOR I2=1 TO 4
    IF I2=I1
      LOOP
    ENDIF
    FOR I3=1 TO 4
      IF I3=I1 OR I3=I2
        LOOP
      ENDIF
      FOR I4=1 TO 4
        IF I4=I1 OR I4=I2 OR I4=I3
          LOOP
        ENDIF
        FOR I5=1 TO 4
          FOR I6=1 TO 4
            FOR I7=1 TO 4
              APPEND BLANK  &&01------1+2+3+4型
              REPLACE 算式 WITH NN(I1)+FH(I5)+NN(I2)+FH(I6)+NN(I3)+FH(I7)+NN(I4)
              APPEND BLANK  &&02------(1+2)+3+4型
              REPLACE 算式 WITH FH(5)+NN(I1)+FH(I5)+NN(I2)+FH(6)+FH(I6)+NN(I3)+FH(I7)+NN(I4)
              APPEND BLANK  &&03------1+(2+3)+4型
              REPLACE 算式 WITH NN(I1)+FH(I5)+FH(5)+NN(I2)+FH(I6)+NN(I3)+FH(6)+FH(I7)+NN(I4)
              APPEND BLANK  &&04------1+2+(3+4)型
              REPLACE 算式 WITH NN(I1)+FH(I5)+NN(I2)+FH(I6)+FH(5)+NN(I3)+FH(I7)+NN(I4)+FH(6)
              APPEND BLANK  &&05------(1+2+3)+4型
              REPLACE 算式 WITH FH(5)+NN(I1)+FH(I5)+NN(I2)+FH(I6)+NN(I3)+FH(6)+FH(I7)+NN(I4)
              APPEND BLANK  &&06------1+(2+3+4)型
              REPLACE 算式 WITH NN(I1)+FH(I5)+FH(5)+NN(I2)+FH(I6)+NN(I3)+FH(I7)+NN(I4)+FH(6)
              APPEND BLANK  &&07------(1+2)+(3+4)型
              REPLACE 算式 WITH FH(5)+NN(I1)+FH(I5)+NN(I2)+FH(6)+FH(I6)+FH(5)+NN(I3)+FH(I7)+NN(I4)+FH(6)
              APPEND BLANK  &&08------((1+2)+3)+4型
     

VFP程序 | 阅读 2213 次
文章评论,共0条
游客请输入验证码
浏览116654次