魔方吧·中文魔方俱乐部

标题: 二阶魔方状态的计算程序 [打印本页]

作者: 黑王子    时间: 2006-4-11 07:34:53     标题: 二阶魔方状态的计算程序

本人将陆续将自己所编数据库源程序贴出, 供大家交流和研究. 由于时间和能力有限, 其中必然存在的许多不足之处, 希望各位爱好者给予指正.

本人所编程序运行时间偏长, 希望各位爱好者能找到更快、更好的方法!

多谢合作!

[此贴子已经被作者于2006-4-11 19:59:36编辑过]


作者: 黑王子    时间: 2006-4-11 07:41:18     标题: 文件名称: Cube2_V10.PRG

文件名称: Cube2_V10.PRG[本人自机运行时长约80分钟,可获得二阶魔方的所有状态及最小步数等]

******************************************************************
* 文件名称: Cube2_V10.PRG *
* 编程载体: Visual Foxpro 7.0 *
* 编程日期: 2006.02.08 *
* 程 序 员: 黑王子 *
* 主要功能: 计算并确认二阶魔方的最远状态 *
******************************************************************
SET TALK OFF
SET SAFETY OFF
SET PRIN ON
SET DEVICE TO PRINT
SET PRINT TO file Cube2_V10.SDF
CLOSE ALL DATA
CLEAR
KI=1
TIME0=TIME()
?SPACE(10)+"二阶魔方最远状态计算程序"+SPACE(8)+"编制者: 黑王子 2006.02.08"
?
?SPACE(5)+TIME()+" 下级转动库的建立"
Cube2="ABCDEFGHJKLMNPQRSWXYZ"
SELECT 0
USE DB2_00D
DELETE ALL
PACK
COPY TO DB2_01X
COPY TO DB2_01Y
COPY TO DB2_01Z
COPY TO DB2_01D
COPY TO DB2_02X
COPY TO DB2_02Y
COPY TO DB2_02Z
APPEND BLANK
REPLACE A2 with Cube2
REPLACE A3 with "0"
REPLACE A4 with 0
IF KI=1
T=Cube2
U11=subs(T,1,1)+SUBS(T,5,2)+SUBS(T,4,1)+SUBS(T,12,2)+SUBS(T,7,5)+SUBS(T,14,2)+SUBS(T,2,2)+SUBS(T,16,2)+SUBS(T,21,1)+SUBS(T,18,3)
U12=subs(T,1,1)+subs(T,12,2)+subs(T,4,1)+subs(T,14,2)+subs(T,7,5)+subs(T,2,2)+subs(T,5,2)+subs(T,16,2)+subs(T,20,2)+subs(T,18,2)
U13=subs(T,1,1)+subs(T,14,2)+subs(T,4,1)+subs(T,2,2)++subs(T,7,5)++subs(T,5,2)++subs(T,12,2)++subs(T,16,2)++subs(T,19,3)+subs(T,18,1)
U14=subs(T,20,2)+subs(T,3,4)+subs(T,1,2)+subs(T,9,1)+subs(T,8,1)+subs(T,11,2)+subs(T,7,1)+subs(T,17,1)+subs(T,14,3)+subs(T,18,2)+subs(T,13,1)+subs(T,10,1)
U15=subs(T,13,1)+subs(T,10,1)+subs(T,3,4)+subs(T,20,2)+subs(T,9,1)+subs(T,2,1)+subs(T,11,2)+subs(T,1,1)+subs(T,16,2)+subs(T,14,2)+subs(T,18,2)+subs(T,7,2)
U16=subs(T,7,2)+subs(T,3,4)+subs(T,13,1)+subs(T,10,1)+SUBSTR(T,9,1)+subs(T,21,1)+subs(T,11,2)+subs(T,20,1)+subs(T,15,3)+subs(T,14,1)+subs(T,18,2)+subs(T,1,2)
U17=subs(T,1,3)+subs(T,7,1)+subs(T,5,1)+subs(T,9,1)+subs(T,14,1)+subs(T,8,1)+subs(T,17,1)+subs(T,13,1)+subs(T,10,3)+subs(T,18,1)+subs(T,15,2)+subs(T,21,1)+subs(T,4,1)+subs(T,19,2)+subs(T,6,1)
U18=subs(T,1,3)+subs(T,14,1)+subs(T,5,1)+subs(T,17,2)+subs(T,8,1)+subs(T,21,1)+subs(T,12,2)+subs(T,10,2)+subs(T,4,1)+subs(T,15,2)+subs(T,6,2)+subs(T,19,2)+subs(T,9,1)
U19=subs(T,1,3)+subs(T,18,1)+subs(T,5,1)+subs(T,21,1)+subs(T,4,1)+subs(T,8,1)+subs(T,6,1)+subs(T,11,3)+subs(T,10,1)+subs(T,7,1)+subs(T,15,2)+subs(T,9,1)+subs(T,14,1)+subs(T,19,2)+subs(T,17,1)
USE DB2_01X
DELETE ALL
PACK
APPEND BLANK
REPLACE A2 with U11
REPLACE A3 with "1"
APPEND BLANK
REPLACE A2 with U12
REPLACE A3 with "2"
APPEND BLANK
REPLACE A2 with U13
REPLACE A3 with "3"
REPLACE ALL A4 with 1
USE DB2_01Y
DELETE ALL
PACK
APPEND BLANK
REPLACE A2 with U14
REPLACE A3 with "4"
APPEND BLANK
REPLACE A2 with U15
REPLACE A3 with "5"
APPEND BLANK
REPLACE A2 with U16
REPLACE A3 with "6"
REPLACE ALL A4 with 1
USE DB2_01Z
DELETE ALL
PACK
APPEND BLANK
REPLACE A2 with U17
REPLACE A3 with "7"
APPEND BLANK
REPLACE A2 with U18
REPLACE A3 with "8"
APPEND BLANK
REPLACE A2 with U19
REPLACE A3 with "9"
REPLACE ALL A4 with 1
USE DB2_01D
APPEND FROM DB2_01X
APPEND FROM DB2_01Y
APPEND FROM DB2_01Z
ENDIF
FOR KI=2 TO 12
?SPACE(15)+"DB2_02X.DBF的建立"
?SPACE(15)+"DB2_02Y.DBF的建立"
?SPACE(15)+"DB2_02Z.DBF的建立"
SELECT 1
USE DB2_02X
DELETE ALL
PACK
SELECT 4
USE DB2_02Y
DELETE ALL
PACK
SELECT 7
USE DB2_02Z
DELETE ALL
PACK
TIME1=TIME()
?SPACE(5)+TIME1+" 本级转动库的管理"
SELECT 2
USE DB2_01X
COUNT TO V2
SELECT 5
USE DB2_01Y
COUNT TO V5
SELECT 8
USE DB2_01Z
COUNT TO V8
?SPACE(15)+"DB2_01X.DBF的数据"+SPACE(25)+LTRIM(STR(V2))
?SPACE(15)+"DB2_01Y.DBF的数据"+SPACE(25)+LTRIM(STR(V5))
?SPACE(15)+"DB2_01Z.DBF的数据"+SPACE(25)+LTRIM(STR(V8))
TIME1=TIME()
?SPACE(5)+TIME1+" 本级转动库的处理"
SELECT 2
COPY TO DB2_U14
COPY TO DB2_U15
COPY TO DB2_U16
COPY TO DB2_U17
COPY TO DB2_U18
COPY TO DB2_U19
?SPACE(15)+"DB2_01X.DBF的分库已经生成"
??SPACE(50)
??TIME()
USE DB2_U14
REPLACE ALL A2 WITH subs(A2,20,2)+subs(A2,3,4)+subs(A2,1,2)+subs(A2,9,1)+subs(A2,8,1)+subs(A2,11,2)+subs(A2,7,1)+subs(A2,17,1)+subs(A2,14,3)+subs(A2,18,2)+subs(A2,13,1)+subs(A2,10,1)
REPLACE ALL A3 WITH SUBSTR(A3,1,KI-1)+"4"
REPLACE ALL A4 WITH KI
USE DB2_U15
REPLACE ALL A2 WITH subs(A2,13,1)+subs(A2,10,1)+subs(A2,3,4)+subs(A2,20,2)+subs(A2,9,1)+subs(A2,2,1)+subs(A2,11,2)+subs(A2,1,1)+subs(A2,16,2)+subs(A2,14,2)+subs(A2,18,2)+subs(A2,7,2)
REPLACE ALL A3 WITH SUBSTR(A3,1,KI-1)+"5"
REPLACE ALL A4 WITH KI
USE DB2_U16
REPLACE ALL A2 WITH subs(A2,7,2)+subs(A2,3,4)+subs(A2,13,1)+subs(A2,10,1)+SUBS(A2,9,1)+subs(A2,21,1)+subs(A2,11,2)+subs(A2,20,1)+subs(A2,15,3)+subs(A2,14,1)+subs(A2,18,2)+subs(A2,1,2)
REPLACE ALL A3 WITH SUBSTR(A3,1,KI-1)+"6"
REPLACE ALL A4 WITH KI
USE DB2_U17
REPLACE ALL A2 WITH subs(A2,1,3)+subs(A2,7,1)+subs(A2,5,1)+subs(A2,9,1)+subs(A2,14,1)+subs(A2,8,1)+subs(A2,17,1)+subs(A2,13,1)+subs(A2,10,3)+subs(A2,18,1)+subs(A2,15,2)+subs(A2,21,1)+subs(A2,4,1)+subs(A2,19,2)+subs(A2,6,1)
REPLACE ALL A3 WITH SUBSTR(A3,1,KI-1)+"7"
REPLACE ALL A4 WITH KI
USE DB2_U18
REPLACE ALL A2 WITH subs(A2,1,3)+subs(A2,14,1)+subs(A2,5,1)+subs(A2,17,2)+subs(A2,8,1)+subs(A2,21,1)+subs(A2,12,2)+subs(A2,10,2)+subs(A2,4,1)+subs(A2,15,2)+subs(A2,6,2)+subs(A2,19,2)+subs(A2,9,1)
REPLACE ALL A3 WITH SUBSTR(A3,1,KI-1)+"8"
REPLACE ALL A4 WITH KI
USE DB2_U19
REPLACE ALL A2 WITH subs(A2,1,3)+subs(A2,18,1)+subs(A2,5,1)+subs(A2,21,1)+subs(A2,4,1)+subs(A2,8,1)+subs(A2,6,1)+subs(A2,11,3)+subs(A2,10,1)+subs(A2,7,1)+subs(A2,15,2)+subs(A2,9,1)+subs(A2,14,1)+subs(A2,19,2)+subs(A2,17,1)
REPLACE ALL A3 WITH SUBSTR(A3,1,KI-1)+"9"
REPLACE ALL A4 WITH KI
USE
?SPACE(15)+" DB2_01X.DBF 中间库数据流向完成"
??SPACE(44)
??TIME()
SELECT 4
APPEND FROM DB2_U14
APPEND FROM DB2_U15
APPEND FROM DB2_U16
?SPACE(15)+"向 DB2_02Y.DBF 添加数据已经完成 "+STR(3*V2)
??SPACE(32)
??TIME()
SELECT 7
APPEND FROM DB2_U17
APPEND FROM DB2_U18
APPEND FROM DB2_U19
?SPACE(15)+"向 DB2_02Z.DBF 添加数据已经完成 "+STR(3*V2)
??SPACE(32)
??TIME()
SELECT 5
COPY TO DB2_U11
COPY TO DB2_U12
COPY TO DB2_U13
COPY TO DB2_U17
COPY TO DB2_U18
COPY TO DB2_U19
?SPACE(15)+"DB2_01Y.DBF的分库已经生成"
??SPACE(50)
??TIME()
USE DB2_U11
REPLACE ALL A2 WITH subs(A2,1,1)+subs(A2,5,2)+subs(A2,4,1)+subs(A2,12,2)+subs(A2,7,5)+subs(A2,14,2)+subs(A2,2,2)+subs(A2,16,2)+subs(A2,21,1)+subs(A2,18,3)
REPLACE ALL A3 WITH SUBSTR(A3,1,KI-1)+"1"
REPLACE ALL A4 WITH KI
USE DB2_U12
REPLACE ALL A2 WITH subs(A2,1,1)+subs(A2,12,2)+subs(A2,4,1)+subs(A2,14,2)+subs(A2,7,5)+subs(A2,2,2)+subs(A2,5,2)+subs(A2,16,2)+subs(A2,20,2)+subs(A2,18,2)
REPLACE ALL A3 WITH SUBSTR(A3,1,KI-1)+"2"
REPLACE ALL A4 WITH KI
USE DB2_U13
REPLACE ALL A2 WITH subs(A2,1,1)+subs(A2,14,2)+subs(A2,4,1)+subs(A2,2,2)++subs(A2,7,5)++subs(A2,5,2)++subs(A2,12,2)++subs(A2,16,2)++subs(A2,19,3)+subs(A2,18,1)
REPLACE ALL A3 WITH SUBSTR(A3,1,KI-1)+"3"
REPLACE ALL A4 WITH KI
USE DB2_U17
REPLACE ALL A2 WITH subs(A2,1,3)+subs(A2,7,1)+subs(A2,5,1)+subs(A2,9,1)+subs(A2,14,1)+subs(A2,8,1)+subs(A2,17,1)+subs(A2,13,1)+subs(A2,10,3)+subs(A2,18,1)+subs(A2,15,2)+subs(A2,21,1)+subs(A2,4,1)+subs(A2,19,2)+subs(A2,6,1)
REPLACE ALL A3 WITH SUBSTR(A3,1,KI-1)+"7"
REPLACE ALL A4 WITH KI
USE DB2_U18
REPLACE ALL A2 WITH subs(A2,1,3)+subs(A2,14,1)+subs(A2,5,1)+subs(A2,17,2)+subs(A2,8,1)+subs(A2,21,1)+subs(A2,12,2)+subs(A2,10,2)+subs(A2,4,1)+subs(A2,15,2)+subs(A2,6,2)+subs(A2,19,2)+subs(A2,9,1)
REPLACE ALL A3 WITH SUBSTR(A3,1,KI-1)+"8"
REPLACE ALL A4 WITH KI
USE DB2_U19
REPLACE ALL A2 WITH subs(A2,1,3)+subs(A2,18,1)+subs(A2,5,1)+subs(A2,21,1)+subs(A2,4,1)+subs(A2,8,1)+subs(A2,6,1)+subs(A2,11,3)+subs(A2,10,1)+subs(A2,7,1)+subs(A2,15,2)+subs(A2,9,1)+subs(A2,14,1)+subs(A2,19,2)+subs(A2,17,1)
REPLACE ALL A3 WITH SUBSTR(A3,1,KI-1)+"9"
REPLACE ALL A4 WITH KI
USE
?SPACE(15)+" DB2_01Y.DBF 中间库数据流向完成"
??SPACE(44)
??TIME()
SELECT 1
APPEND FROM DB2_U11
APPEND FROM DB2_U12
APPEND FROM DB2_U13
?SPACE(15)+"向 DB2_02X.DBF 添加数据已经完成 "+STR(3*V5)
??SPACE(32)
??TIME()
SELECT 7
APPEND FROM DB2_U17
APPEND FROM DB2_U18
APPEND FROM DB2_U19
?SPACE(15)+"向 DB2_02Z.DBF 添加数据已经完成 "+STR(3*V5)
??SPACE(32)
??TIME()

SELECT 8
COPY TO DB2_U11
COPY TO DB2_U12
COPY TO DB2_U13
COPY TO DB2_U14
COPY TO DB2_U15
COPY TO DB2_U16
?SPACE(15)+"DB2_01Z.DBF的分库已经生成"
??SPACE(50)
??TIME()
USE DB2_U11
REPLACE ALL A2 WITH subs(A2,1,1)+subs(A2,5,2)+subs(A2,4,1)+subs(A2,12,2)+subs(A2,7,5)+subs(A2,14,2)+subs(A2,2,2)+subs(A2,16,2)+subs(A2,21,1)+subs(A2,18,3)
REPLACE ALL A3 WITH SUBSTR(A3,1,KI-1)+"1"
REPLACE ALL A4 WITH KI
USE DB2_U12
REPLACE ALL A2 WITH subs(A2,1,1)+subs(A2,12,2)+subs(A2,4,1)+subs(A2,14,2)+subs(A2,7,5)+subs(A2,2,2)+subs(A2,5,2)+subs(A2,16,2)+subs(A2,20,2)+subs(A2,18,2)
REPLACE ALL A3 WITH SUBSTR(A3,1,KI-1)+"2"
REPLACE ALL A4 WITH KI
USE DB2_U13
REPLACE ALL A2 WITH subs(A2,1,1)+subs(A2,14,2)+subs(A2,4,1)+subs(A2,2,2)++subs(A2,7,5)++subs(A2,5,2)++subs(A2,12,2)++subs(A2,16,2)++subs(A2,19,3)+subs(A2,18,1)
REPLACE ALL A3 WITH SUBSTR(A3,1,KI-1)+"3"
REPLACE ALL A4 WITH KI

USE DB2_U14
REPLACE ALL A2 WITH subs(A2,20,2)+subs(A2,3,4)+subs(A2,1,2)+subs(A2,9,1)+subs(A2,8,1)+subs(A2,11,2)+subs(A2,7,1)+subs(A2,17,1)+subs(A2,14,3)+subs(A2,18,2)+subs(A2,13,1)+subs(A2,10,1)
REPLACE ALL A3 WITH SUBSTR(A3,1,KI-1)+"4"
REPLACE ALL A4 WITH KI
USE DB2_U15
REPLACE ALL A2 WITH subs(A2,13,1)+subs(A2,10,1)+subs(A2,3,4)+subs(A2,20,2)+subs(A2,9,1)+subs(A2,2,1)+subs(A2,11,2)+subs(A2,1,1)+subs(A2,16,2)+subs(A2,14,2)+subs(A2,18,2)+subs(A2,7,2)
REPLACE ALL A3 WITH SUBSTR(A3,1,KI-1)+"5"
REPLACE ALL A4 WITH KI
USE DB2_U16
REPLACE ALL A2 WITH subs(A2,7,2)+subs(A2,3,4)+subs(A2,13,1)+subs(A2,10,1)+SUBS(A2,9,1)+subs(A2,21,1)+subs(A2,11,2)+subs(A2,20,1)+subs(A2,15,3)+subs(A2,14,1)+subs(A2,18,2)+subs(A2,1,2)
REPLACE ALL A3 WITH SUBSTR(A3,1,KI-1)+"6"
REPLACE ALL A4 WITH KI
USE
?SPACE(15)+" DB2_01Z.DBF 中间库数据流向完成"
??SPACE(44)
??TIME()
SELECT 1
APPEND FROM DB2_U11
APPEND FROM DB2_U12
APPEND FROM DB2_U13
?SPACE(15)+"向 DB2_02X.DBF 添加数据已经完成 "+STR(3*V8)
??SPACE(32)
??TIME()
SELECT 4
APPEND FROM DB2_U14
APPEND FROM DB2_U15
APPEND FROM DB2_U16
?SPACE(15)+"向 DB2_02Y.DBF 添加数据已经完成 "+STR(3*V8)
??SPACE(32)
??TIME()
?SPACE(5)+TIME()+" 下级转动库的整理"+TIME()
SELECT 1
COUNT to HV10
APPEND FROM DB2_00
FOR I0=1 TO KI-1
File1="DB2_"+SUBSTR(LTRIM(STR(100+I0)),2,2)+"D.DBF"
APPEND FROM &File1
NEXT I0
SORT TO DB2_01E ON A2,A4
USE DB2_01E
COUNT to V10
GO TOP
T1=A2
FOR I1=2 to V10
GO I1
IF A2=T1
DELETE
ELSE
T1=A2
ENDI
NEXT I1
DELETE ALL FOR A4<KI
PACK
File2=".\过程库\DB2_"+SUBS(LTRI(STR(100+KI)),2,2)+"X.DBF"
COPY TO &File2
COPY TO DB2_01X
USE
SELECT 2
USE DB2_01X
COUNT to HV1
?SPACE(15)+" DB2_02X.DBF 的整理前"+STR(HV10)+" 整理后 "+STR(HV1)+" 排除量 "+STR(HV10-HV1)+SPACE(5)+TIME()

SELECT 4
COUNT to HV40
APPEND FROM DB2_00
FOR I0=1 TO KI-1
File1="DB2_"+SUBSTR(LTRIM(STR(100+I0)),2,2)+"D.DBF"
APPEND FROM &File1
NEXT I0
SORT TO DB2_01E ON A2,A4
USE DB2_01E
COUNT to V40
GO TOP
T1=A2
FOR I1=2 to V40
GO I1
IF A2=T1
DELETE
ELSE
T1=A2
ENDI
NEXT I1
DELETE ALL FOR A4<KI
PACK
File2=".\过程库\DB2_"+SUBS(LTRI(STR(100+KI)),2,2)+"Y.DBF"
COPY TO &File2
COPY TO DB2_01Y
USE
SELECT 5
USE DB2_01Y
COUNT to HV4
?SPACE(15)+" DB2_02Y.DBF 的整理前"+STR(HV40)+" 整理后 "+STR(HV4)+" 排除量 "+STR(HV40-HV4)+SPACE(5)+TIME()

SELECT 7
COUNT to HV70
APPEND FROM DB2_00
FOR I0=1 TO KI-1
File1="DB2_"+SUBSTR(LTRIM(STR(100+I0)),2,2)+"D.DBF"
APPEND FROM &File1
NEXT I0
SORT TO DB2_01E ON A2,A4
USE DB2_01E
COUNT to V70
GO TOP
T1=A2
FOR I1=2 to V70
GO I1
IF A2=T1
DELETE
ELSE
T1=A2
ENDI
NEXT I1
DELETE ALL FOR A4<KI
PACK
File2=".\过程库\DB2_"+SUBS(LTRI(STR(100+KI)),2,2)+"Z.DBF"
COPY TO &File2
COPY TO DB2_01Z
USE
SELECT 8
USE DB2_01Z
COUNT to HV7
?SPACE(15)+" DB2_02Z.DBF 的整理前"+STR(HV70)+" 整理后 "+STR(HV7)+" 排除量 "+STR(HV70-HV7)+SPACE(5)+TIME()

?SPACE(5)+TIME()+" 样本库的整理"
SELECT 10
USE DB2_01D
File1="DB2_"+SUBSTR(LTRIM(STR(100+KI)),2,2)+"D.DBF"
COPY TO DB2_01F
USE DB2_01F
DELETE ALL
PACK
APPE FROM DB2_01X
APPE FROM DB2_01Y
APPE FROM DB2_01Z
SORT TO DB2_01E ON A2,A4
USE DB2_01E
COUNT to V100
GO TOP
T1=A2
FOR I1=2 to V100
GO I1
IF A2=T1
DELETE
ELSE
T1=A2
ENDI
NEXT I1
PACK
COPY TO &File1

?SPACE(5)+TIME()+" 样本库的显示"
?SPACE(15)+"完成态"
??SPACE(9)
??"1"
TT=1
FOR I2=1 TO KI
File1="DB2_"+SUBSTR(LTRIM(STR(100+I2)),2,2)+"D.DBF"
USE &File1
COUNT TO V01
?SPACE(15)+"第"+SUBS((LTRIM(STR(100+I2))),2,2)+"步"
??V01
TT=TT+V01
NEXT I2
IF KI<11
?SPACE(15)+"合 计"
ELSE
?SPACE(15)+"总 计"
ENDI
??SPACE(10-LEN(LTRIM(STR(TT))))
??LTRIM(STR(TT))
?
TIME0=TIME()
?SPAC(10)+"状态库的归类"+SPAC(8)+TIME()
file1='DB2_'+SUBSTR(ALLTRIM(STR(100+KI)),2,2)+'D.DBF'
USE &file1
REPL ALL L1 with 0
REPL ALL L2 with 0
REPL ALL L3 with 0
REPL ALL L4 with 0
REPL ALL L5 with 0
REPL ALL L6 with 0
REPL ALL L1 with 1 FOR "A"$SUBS(A2,1,3)=.T. .and. "B"$SUBS(A2,1,3)=.T. .and. "C"$SUBS(A2,1,3)=.T.
?"L1计算已经完成"+SPAC(8)+TIME()
REPL ALL L2 with 1 FOR "D"$SUBS(A2,4,3)=.T. .and. "E"$SUBS(A2,4,3)=.T. .and. "F"$SUBS(A2,4,3)=.T.
?"L2计算已经完成"+SPAC(8)+TIME()
REPL ALL L3 with 1 FOR "G"$SUBS(A2,7,3)=.T. .and. "H"$SUBS(A2,7,3)=.T. .and. "J"$SUBS(A2,7,3)=.T.
?"L3计算已经完成"+SPAC(8)+TIME()
REPL ALL L4 with 1 FOR "K"$SUBS(A2,10,4)=.T. .and. "L"$SUBS(A2,10,4)=.T. .and. "M"$SUBS(A2,10,4)=.T. .and. "N"$SUBS(A2,10,4)=.T.
REPL ALL L4 with 1 FOR "P"$SUBS(A2,10,4)=.T. .and. "Q"$SUBS(A2,10,4)=.T. .and. "R"$SUBS(A2,10,4)=.T. .and. "S"$SUBS(A2,10,4)=.T.
REPL ALL L4 with 1 FOR "W"$SUBS(A2,10,4)=.T. .and. "X"$SUBS(A2,10,4)=.T. .and. "Y"$SUBS(A2,10,4)=.T. .and. "Z"$SUBS(A2,10,4)=.T.
?"L4计算已经完成"+SPAC(8)+TIME()
REPL ALL L5 with 1 FOR "K"$SUBS(A2,14,4)=.T. .and. "L"$SUBS(A2,14,4)=.T. .and. "M"$SUBS(A2,14,4)=.T. .and. "N"$SUBS(A2,14,4)=.T.
REPL ALL L5 with 1 FOR "P"$SUBS(A2,14,4)=.T. .and. "Q"$SUBS(A2,14,4)=.T. .and. "R"$SUBS(A2,14,4)=.T. .and. "S"$SUBS(A2,14,4)=.T.
REPL ALL L5 with 1 FOR "W"$SUBS(A2,14,4)=.T. .and. "X"$SUBS(A2,14,4)=.T. .and. "Y"$SUBS(A2,14,4)=.T. .and. "Z"$SUBS(A2,14,4)=.T.
?"L5计算已经完成"+SPAC(8)+TIME()
REPL ALL L6 with 1 FOR "K"$SUBS(A2,18,4)=.T. .and. "L"$SUBS(A2,18,4)=.T. .and. "M"$SUBS(A2,18,4)=.T. .and. "N"$SUBS(A2,18,4)=.T.
REPL ALL L6 with 1 FOR "P"$SUBS(A2,18,4)=.T. .and. "Q"$SUBS(A2,18,4)=.T. .and. "R"$SUBS(A2,18,4)=.T. .and. "S"$SUBS(A2,18,4)=.T.
REPL ALL L6 with 1 FOR "W"$SUBS(A2,18,4)=.T. .and. "X"$SUBS(A2,18,4)=.T. .and. "Y"$SUBS(A2,18,4)=.T. .and. "Z"$SUBS(A2,18,4)=.T.
?"L6计算已经完成"+SPAC(8)+TIME()
REPL ALL A5 with L1+L2+L3+L4+L5+L6
?"A5计算已经完成"
?
?SPACE(12)+"开始时间"+SPACE(8)+TIME0
?SPACE(12)+"结束时间"+SPACE(8)+TIME()
?SPACE(10)+"-----------------------------"
?SPACE(12)+"使用时间"+SPACE(8)
NEXT KI
SET PRINTER OFF
SET PRINTER TO
SET DEVICE TO SCREEN
CLOSE ALL DATA
SET SAFETY ON
SET TALK OFF
RETURN

[此贴子已经被作者于2006-4-11 20:36:33编辑过]


作者: 黑王子    时间: 2006-4-11 07:48:46     标题: 文件名称: DB2_00D.DBF

[基本数据库DB2_00D.DBF信息资料,运行Cube2_V10.PRG程序前建立]


表结构: E:\二阶魔方\DB2_00D.DBF
数据记录数: 1
最近更新的时间: 04/11/06
代码页: 936
Field 字段名 类型 宽度
1 A1 字符型 2
2 A2 字符型 21
3 A3 字符型 11
4 A4 数值型 2
5 A5 数值型 1
6 L1 数值型 1
7 L2 数值型 1
8 L3 数值型 1
9 L4 数值型 1
10 L5 数值型 1
11 L6 数值型 1
** 总计 ** 44


记录号 A1 A2 A3 A4 A5 L1 L2 L3 L4 L5 L6
1 ABCDEFGHJKLMNPQRSWXYZ 0 0


[此贴子已经被作者于2006-4-11 19:57:04编辑过]


作者: ggglgq    时间: 2006-4-27 12:45:33


不错, SORT、DELETE、PACK 等语句加快了程序的进程! 加精了!

作者: ggglgq    时间: 2006-4-27 12:45:53


我准备利用 五一 黄金周 开发出快速求解程序!

作者: ggglgq    时间: 2006-5-7 19:35:14


正六面体二阶魔方-48“同态”图解,提供公式 键盘输入鼠标输入 两模式。

注: n 号位置镜像 是指: n 号位置为“后左上 0 位置”的“左右(对称)镜像”。

附件:调色工具,为大家配置自己喜欢的面块颜色。


作者: ggglgq    时间: 2006-5-7 19:48:42

以下是引用ggglgq在2006-4-27 12:45:53的发言:

我准备利用 五一 黄金周 开发出快速求解程序!


正六面体二阶魔方最远状态开解程序

虽然 五一 长假,但家务杂事颇多,暂时提供一个简易程序,容日后完善。

本程序 开解 时间: 赛扬 800 约六分钟 P4 系列计算机 约三分钟

开发环境:用速度较慢的 VB 6.0 研发测试

请大家先暂时凑合着使用 本软件


作者: ggglgq    时间: 2006-5-7 20:31:30


注:上面的程序是在 正六面体二阶魔方-48“同态” 的基础上进行的,每一态均代表
48“同态”! (希望大家不要产生误解!)


作者: ggglgq    时间: 2006-5-12 16:13:34


正六面体二阶魔方最远状态开解程序

版本升级 1.1 ,优化了 算法 ,在 P4 系列计算机 开解 约 一 分钟 !

作者: ggglgq    时间: 2006-5-23 18:23:43


顶!

作者: ggglgq    时间: 2006-5-23 18:32:31

  
    国内 首个 正六面体二阶魔方 任意状态 最少步 快速开解程序
  

  
    应 广大魔友 的要求,我对《正六面体二阶魔方任意状态最少步开解程序》的功能又做了
进一步的完善和扩充,在此感谢  广大魔友 的大力 支持 和 帮助!

  


  
    《正六面体二阶魔方任意状态最少步开解程序》 1.3 版 比前几版本 的操作更智能化:  

    1、加入贴色输入模式,只有 鼠标指针 变为 “ ?” 时才能更换 魔方贴色;
      (即 只有 “非开解状态” 且 “非同色贴片”  时 才能更换 魔方贴色;)

    2、只有 贴色 是“正确状态”时 才能进行 开解 计算;

    3、程序实现 多方位 开解;
  







    程序 提供公式的 键盘输入鼠标输入 两种模式。

    注:  旋转 180° 分别按 (一 或 两) 步 两种情况 开解 。


    程序 开解 时间: 任意状态 平均时间 少于 8 秒钟 。

  

[此贴子已经被作者于2007-9-25 9:53:16编辑过]


作者: ggglgq    时间: 2006-6-5 19:52:33


应 广大魔友 的要求,我对《正六面体二阶魔方任意状态最少步开解程序》的功能又做了
进一步的完善和扩充,在此感谢 广大魔友 的大力 支持 和 帮助!



《正六面体二阶魔方任意状态最少步开解程序》 1.3 版 比前几版本 的操作更智能化:

1、加入贴色输入模式,只有 鼠标指针 变为 “ ?” 时才能更换 魔方贴色;
(即 只有 “非开解状态” 且 “非同色贴片” 时 才能更换 魔方贴色;)

2、只有 贴色 是“正确状态”时 才能进行 开解 计算;

3、程序实现 多方位 开解;



作者: 还猪哥哥    时间: 2006-6-6 06:24:07

有VB的原代码吗?能否发给我学习一下。我试试转成DELPHI的看效率能否提高一些。

[此贴子已经被作者于2006-6-6 6:44:58编辑过]


作者: ggglgq    时间: 2006-6-6 18:29:34

  
  好的。本程序采用的是简单的广度优先算法,中间含 48 “同态”优化技巧。
  
       正六面体二阶魔方任意状态最少步开解源代码.rar (16.52 KB, 下载次数: 15, 售价: 10 点威望)

本人用 VB 开发这个程序的意思是 一则为了测试,二则为了日后读这些程序不累,

三则为了别人二次开发提供方便。(唉,我没时间呀,只能指望大家了。)
  
   我的程序把对应数据更改后很容易变成 各类魔方 最少步开解程序 (有希望在短

时间内开解的魔方是个别构造简单的 类似二阶魔方 ) ,希望大家能对这个程序进行
  
二次开发,亦希望您把开发后的源程序发给我一份!
  
  

[ 本帖最后由 ggglgq 于 2010-3-18 07:26 编辑 ]

附件: [正六面体二阶魔方任意状态最少步开解源代码.rar] 正六面体二阶魔方任意状态最少步开解源代码.rar (2010-3-18 07:26:29, 16.52 KB) / 下载次数 15
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=OTEwMjV8MWNiN2RiZjh8MTczMjI0NTA4N3wwfDA%3D
作者: tanzhuolin    时间: 2006-7-15 18:19:05

好啊,是二阶最简单的解法吗
作者: 彳亍    时间: 2006-9-11 23:50:56

学学vb 源码
作者: traytray    时间: 2006-9-24 22:25:47

学习 学习


作者: qienyu    时间: 2006-10-8 15:12:40

回复,学习一下


作者: Arcan    时间: 2007-4-21 22:39:43

回一个
[em17]
作者: pl_whh    时间: 2007-6-8 13:41:56

顶~~~~~~~~~~~~~`
作者: romijnl    时间: 2007-8-13 22:06:22

学习一下!!


作者: google2020    时间: 2007-9-6 17:52:09

顶!!!
作者: 青龙    时间: 2007-12-21 14:43:14

是好东西,我正需要它!
作者: 圆柱体积    时间: 2008-1-6 14:11:55

急需,学习中。。。。
作者: llwf    时间: 2008-3-2 19:49:32

学习一下~~~~~~~~~~~~~~~~~~~~~~~
作者: 乌木    时间: 2008-3-5 19:49:52

回复………………………………
作者: popo44824482    时间: 2008-3-18 17:19:22

就是他了 顶一下 好的 找的好苦啊
作者: zhaohal    时间: 2008-3-18 17:20:16

................................
作者: zhengjb    时间: 2008-4-3 09:42:31

看看,学习下
作者: lilemon    时间: 2008-4-8 20:39:30

回复~~~~~~~~~~~~~~~~~~
作者: hoykey    时间: 2008-5-20 13:35:58

好东西,下载下来试试
作者: bobenbo99    时间: 2008-5-28 12:40:01     标题: 有这种好东西?一定要下载来一个看看,先谢谢楼主了

有这种好东西?一定要下载来一个看看,先谢谢楼主了
作者: 463976379    时间: 2008-6-8 16:46:29

dingdingddddddddddddddd
作者: skywalkerxy    时间: 2008-7-29 16:45:01

好东西啊,学习学习~
作者: cyx19960114    时间: 2008-9-25 19:46:09

厉害!顶&nbsp;&nbsp; 厉害!顶
作者: huitoubushian    时间: 2008-10-5 02:11:12

hao dong xi! ding!
作者: huitoubushian    时间: 2008-10-5 02:19:23     标题: 回复 11# 的帖子

ding a a a a a a   aa !
作者: juventus66    时间: 2009-1-23 13:34:37

支持``````````
作者: superpower    时间: 2009-2-16 18:25:06

想看看源码,可以吗?
作者: wgcoolj    时间: 2009-2-19 12:47:55

找了好久了  谢谢了
作者: juventus66    时间: 2009-2-19 14:00:58

收藏了,谢谢
作者: mikemo    时间: 2009-3-13 04:19:42

不错,好东西,要顶!!!
作者: flashbbs    时间: 2009-4-27 09:53:56

终于找到组织了
作者: 一半    时间: 2009-5-10 16:31:03

试试看试试看试试看
作者: Swing    时间: 2009-5-20 09:34:14

学习,学习
作者: peoplezz    时间: 2009-5-24 23:59:27

我也想看看~~~~~
作者: yilonglucky    时间: 2009-6-1 02:21:45     标题: 回复 1# 的帖子

难道程序员基本都是魔友?
刚入大学,学C的,不懂……
二阶那个程序是用MFC写的???
作者: clfsyh    时间: 2009-7-14 09:32:32

ddddddddddddddddddddddddddddd
作者: matthew01    时间: 2009-8-29 19:16:22

好东西,下一个看看
作者: stray    时间: 2009-9-17 11:24:29

下来看看
作者: corbusier    时间: 2010-5-28 09:09:50

1、加入贴色输入模式,只有 鼠标指针 变为 “ ?” 时才能更换 魔方贴色;
(即 只有 “非开解状态” 且 “非同色贴片” 时 才能更换 魔方贴色;)

2、只有 贴色 是“正确状态”时 才能进行 开解 计算;

3、程序实现 多方位 开解
作者: jtr1888    时间: 2010-9-8 23:19:17

学习了。。。嘿嘿、、、、
作者: 魔一方549393033    时间: 2011-1-2 20:27:31

用不了!!!!!11
作者: jtr1888    时间: 2011-3-4 13:43:37

回复。。。学习中。。。。
作者: 398877601    时间: 2011-3-16 20:25:02     标题: 回复 12# 的帖子

很好很强大 很好很强大
作者: xiaozhuatcg    时间: 2011-12-31 16:27:27

学习了,看看
作者: 黑白子    时间: 2015-5-4 17:12:27

隐藏了什么内容?
作者: angus0525    时间: 2016-3-30 17:26:58

程序大神
作者: 轻描淡写3333333    时间: 2017-12-21 20:28:01

版主现在不在了




欢迎光临 魔方吧·中文魔方俱乐部 (http://bbs.mf8-china.com/) Powered by Discuz! X2