home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 30 fixes_v
/
30-fixes_v.zip
/
f16_b.zip
/
KNFJ.B
< prev
next >
Wrap
Text File
|
1994-01-11
|
5KB
|
116 lines
* ïRÄmé╠Åäù≡
* ì∞Ä╥:Jack Schueler
* WATCOM International Corp.
* Waterloo, Ontario, Canada
*$noextensions
*$nocheck
CHARACTER REPLY*20, LINE(2)*41
INTEGER I, J, D, SP, OFFSET, TI, TJ, BOARD
INTEGER ISTACK, JSTACK, DSTACK, DI, DJ
DIMENSION ISTACK(0:64), JSTACK(0:64), DSTACK(0:64)
DIMENSION DI(0:11), DJ(0:11), BOARD(0:11, 0:11)
DATA DI/2, 1, -1, -2, -2, -1, 1, 2, 2, 1, -1, -2/
DATA DJ/-1, -2, -2, -1, 1, 2, 2, 1, -1, -2, -2, -1/
PRINT 100
100 FORMAT(
1'.---------------------------------------.',/,
2'| K | N | I | G | H | T | '' | S |',/,
3'|----+----+----+----+----+----+----+----|',/,
4'| | | |(K) | | | | |',/,
5'|----+----+----+----+----+----+----+----|',/,
6'| | | T | O | U | R | | |',/,
7'|.--------------------------------------------------------.',/,
8'||é▒é╠╠▀█╕▐╫╤é═┴¬╜ö┬é╠ô«é½é≡ÆméΘé╜é▀é╔┼▓─(îjön)é≡ö┬Åπé┼ |',/,
9'||êΩÅäé│é╣é▄é╖üB |',/,
A'||▒┘║▐╪╜▐╤é═Ä⌐ÅKò√Ä«é≡Ägéóé▄é╖üBÅ\ò¬é╚Ä₧è╘é≡ |',/,
B'||é¡é╛é│éΩé╬(Ä₧é╔é═ë╜öNéα)üAé½é┴é╞ë≡îêû@é≡î⌐é┬é»é▄é╖üB |',/,
C'|| ìKé╔éαæ╜é¡é╠Åëé▀é╠ê╩Æu(ùßéªé╬, 4,3)é╚é╟é═ü@ |',/,
D'||ë≡îêû@é═é⌐é╚éΦæüé¡î⌐é┬é»éτéΩé▄é╖üB |',/,
E'|`--------------------------------------------------------''',/,
F'|----+----+----+----+----+----+----+----|',/,
G'| | W | A | T | C | O | M | |',/,
H'`---------------------------------------''' )
*--== (5,5),(6,6),(7,7)é┼Äné▄éΘÅäù≡é═┼▓─é╠é╟é±é╚ô«é½é≡éáé½éτé⌐é╔é╡é▄é╖é⌐==--
LOOP
*--== óû│î°úé╞é╚éΘÆ[é╠ê╩Æué≡Åëè·ë╗é╡é▄é╖==--
DO I = 0, 11
DO J = 0, 11
BOARD( I, J ) = -1
END DO
END DO
*--== óÄgéφéΩé─éóé╚éóúê╩Æué≡Åëè·ë╗é╡é▄é╖==--
DO I = 2, 9
DO J = 2, 9
BOARD( I, J ) = 0
END DO
END DO
*--== Åëé▀é╠ê╩Æu ==--
PRINT *,' '
PRINT *,'Åäù≡é≡Äné▀éΘé╜é▀é╔Åëé▀é╠ù±é╞╢╫╤Éöé≡ôⁿéΩé─ë║é│éóüB'
PRINT *,'(1,1) é═ì╢Åπé╠èpé┼é╖üB║▌╧é┼ò¬é»é╜ô±é┬é╠É«Éöé≡'
PRINT *,'ôⁿéΩé─ë║é│éóüBÄ~é▀éΘÄ₧é═''QUIT''é≡ôⁿéΩé─ë║é│éóüB'
WRITE( *, '(A,$)' ) 'ù±, ╢╫╤: '
READ( *, '(A)', END=99, ERR=99 ) REPLY
READ( REPLY, *, END=99, ERR=99 ) I, J
IF( I .GT. 8 .OR. J .GT. 8 ) GO TO 99
*--== ë≡îêû@é╠ö¡î⌐ ==--
I = I+1
J = J+1
D = -1
SP = 1
LOOP :L1
IF (I .LE. J) THEN
OFFSET = 4
ELSE
OFFSET = 0
END IF
GUESS :G1
LOOP :L2
D = D + 1
IF( D .EQ. 8 ) QUIT :G1
TI = I + DI( D + OFFSET )
TJ = J + DJ( D + OFFSET )
UNTIL( BOARD( TI, TJ ) .EQ. 0 )
ISTACK( SP ) = I
JSTACK( SP ) = J
DSTACK( SP ) = D
BOARD( I, J ) = SP
I = TI
J = TJ
SP = SP + 1
D = -1
ADMIT
SP = SP - 1
BOARD( I, J ) = 0
I = ISTACK( SP )
J = JSTACK( SP )
D = DSTACK( SP )
END GUESS
UNTIL( SP .EQ. 64 )
BOARD( I, J ) = 64
J = J - 1
*--== îïë╩é╠┴¬╜ö┬é≡╠▀╪▌─é╡é▄é╖ ==--
PRINT *,' '
PRINT *,' ïRÄmé╠Åäù≡ü[ë≡îêîïë╩ WATFOR-77'
PRINT *,' 1=èJÄn (K)=ÅIéΦ'
PRINT *,'.---------------------------------------.'
DO K = 2, 8
WRITE(LINE, 101) (BOARD( K, L ),L=2,9)
IF( I .EQ. K )LINE(1)(J*5-2:J*5)='(K)'
WRITE(*, '(A41)') LINE
ENDDO
WRITE(LINE, 102)(BOARD( 9, L ),L=2,9)
IF( I .EQ. 9 )LINE(1)(J*5-2:J*5)='(K)'
WRITE(*, '(A41)') LINE
ENDLOOP
101 FORMAT( '| ',I2,' | ',I2,' | ',I2,' | ',I2,
1 ' | ',I2,' | ',I2,' | ',I2,' | ',I2,' |',/,
2 '|----+----+----+----+----+----+----+----|')
102 FORMAT( '| ',I2,' | ',I2,' | ',I2,' | ',I2,
1 ' | ',I2,' | ',I2,' | ',I2,' | ',I2,' |',/,
2 '`---------------------------------------''')
99 END