笔趣阁 - 都市小说 - 电子生涯在线阅读 - 游戏汉诺塔源代码

游戏汉诺塔源代码

    这个游戏是用Focal写成,大家见识一下这种化石编程语言,至于Basic和Fortran至今都在,就不举例子了。

    01.01CHANOIBYDEC

    01.02CFROM‘PROGRAMMINGLANGUAGES‘

    01.03CLASTCHANGE:8/7/71

    01.04

    01.05CTHISPROGRAMWORKSWITHTHETOWERSOFHANOIPROBLEM.

    01.06CYOUAREGIVENTHREETOWERSWITHVARIOUSSIZEDDISCSON

    01.07CONEOFTHEM.THEOBJECTISTOPLACEALLTHEDISCSON

    01.08CANOTHERTOWERONATATIME,WITHTHESTIPULATIONTHATA

    01.09CLARGERDISCMAYNEVERBEONTOPOFASMALLERONE.THIS

    01.10CPROGRAMISGOODFORANYNUMBEROFDISCSANDCANBERUN

    01.11CEITHERINMANUAL(YOUTELLITWHERETOMOVE)ORAUTOMATIC

    01.12CMODE.ITWILLALSOEXPLAINITSMOVESORDRAWTHEFORYOU,

    01.13CDEPENDINGONHOWYOUANSWERTHE‘MOVESORPLOTS‘QUESTION.

    01.14C**OUTDISCISTHEDISC(1ONTOP)THATYOUWANTTOMOVE

    01.15C**INDISCISTHEPOSITION(1ONTOP)WHEREYOUMOVETO

    01.16C**OUTTOWERISTHETOWER(1ONLEFT)FROMWHICHYOUMOVE

    01.17C**INTOWERISTHETOWER(3ONRIGHT)YOUMOVETO

    01.18CTHISPROGRAMASSUMESNOCHEATING,ANDDOESNOTCHECKFORIT.

    01.19

    01.29E

    01.30ANO.OFDISKSN,!

    01.40FI=1,N;SSS(I)=I

    01.50SSO=1;SSI=3

    01.60SNO=N;SNI=N;SI=0

    01.70AMOVESORPLOTS,MOVE,!

    01.80I(FABS(MO-0MOVES)),1.85;D23

    01.85AAUTOORMANUAL,A,!

    01.90I(FABS(A-0MANUAL)),5.1;D2;T!!DONE!,!!;Q

    02.20I[SS<(SO-1)*N NO-1>]ER,2.95

    02.30SI=I 1;SNO(I)=NO;SSO(I)=SO;SSI(I)=SI

    02.50SSI=6-SO-SI;SNO=NO-1;D3;STE(I)=NI;D2

    02.60SSI=SI(I);SNO=NO 1;D3;D6

    02.70SSO=6-SO-SI;SNO=TE(I);D3;D2

    02.80SSI=SI(I);SSO=SO(I);SNO=NO(I);SI=I-1

    02.90R

    02.D6;R

    03.10SNI=N

    03.20I[SS((SI-1)*N NI)]ER,3.3;SNI=NI-1;G3.2

    03.30R

    05.10AOUT-DISC:,NO,TOWER:,SO

    05.20A!IN-DISC:,NI,TOWER:,SI,!;D6

    05.30SA=0

    05.40FI=1,N*2;SA=A SS(I)

    05.50I(-A)5.1;T!WELLDONE!!;Q

    06.10SDO=(SO-1)*N NO

    06.20SDI=(SI-1)*N NI

    06.30SSS(DI)=SS(DO)

    06.40SSS(DO)=0

    06.50I(MOVE)ER,6.7;D23;R

    06.70T!%2,SO,NO,!SI,NI,!

    23.10FJ=1,N;T!;FK=0,70;D23.3

    23.20T!!!!;R

    23.30I[K-15 SS(J)*2]23.6;I(-K 15 SS(J)*2)23.6;T#

    23.60I(K-35 SS(J N)*2)23.7;I(-K 35 SS(J N)*2)23.7;T#

    23.70I(K-55 SS(J N N)*2)23.8;I(-K 55 SS(J N N)*2)23.77;T#

    23.77SK=100;R

    23.80T