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 >
Text File  |  1994-01-11  |  5KB  |  116 lines

  1. *    ïRÄmé╠Åäù≡
  2. *      ì∞Ä╥:Jack Schueler
  3. *           WATCOM International Corp.
  4. *           Waterloo, Ontario, Canada
  5.  
  6. *$noextensions
  7. *$nocheck
  8.       CHARACTER REPLY*20, LINE(2)*41
  9.       INTEGER I, J, D, SP, OFFSET, TI, TJ, BOARD
  10.       INTEGER ISTACK, JSTACK, DSTACK, DI, DJ
  11.       DIMENSION ISTACK(0:64), JSTACK(0:64), DSTACK(0:64)
  12.       DIMENSION DI(0:11), DJ(0:11), BOARD(0:11, 0:11)
  13.       DATA DI/2, 1, -1, -2, -2, -1, 1, 2, 2, 1, -1, -2/
  14.       DATA DJ/-1, -2, -2, -1, 1, 2, 2, 1, -1, -2, -2, -1/
  15.       PRINT 100
  16. 100   FORMAT(
  17.      1'.---------------------------------------.',/,
  18.      2'| K  | N  | I  | G  | H  | T  | ''  | S  |',/,
  19.      3'|----+----+----+----+----+----+----+----|',/,
  20.      4'|    |    |    |(K) |    |    |    |    |',/,
  21.      5'|----+----+----+----+----+----+----+----|',/,
  22.      6'|    |    | T  | O  | U  | R  |    |    |',/,
  23.      7'|.--------------------------------------------------------.',/,
  24.      8'||é▒é╠╠▀█╕▐╫╤é═┴¬╜ö┬é╠ô«é½é≡ÆméΘé╜é▀é╔┼▓─(îjön)é≡ö┬Åπé┼   |',/,
  25.      9'||êΩÅäé│é╣é▄é╖üB                                          |',/,
  26.      A'||▒┘║▐╪╜▐╤é═Ä⌐ÅKò√Ä«é≡Ägéóé▄é╖üBÅ\ò¬é╚Ä₧è╘é≡              |',/,
  27.      B'||é¡é╛é│éΩé╬(Ä₧é╔é═ë╜öNéα)üAé½é┴é╞ë≡îêû@é≡î⌐é┬é»é▄é╖üB    |',/,
  28.      C'||  ìKé╔éαæ╜é¡é╠Åëé▀é╠ê╩Æu(ùßéªé╬, 4,3)é╚é╟é═ü@           |',/,
  29.      D'||ë≡îêû@é═é⌐é╚éΦæüé¡î⌐é┬é»éτéΩé▄é╖üB                      |',/,
  30.      E'|`--------------------------------------------------------''',/,
  31.      F'|----+----+----+----+----+----+----+----|',/,
  32.      G'|    | W  | A  | T  | C  | O  | M  |    |',/,
  33.      H'`---------------------------------------''' )
  34.  
  35. *--== (5,5),(6,6),(7,7)é┼Äné▄éΘÅäù≡é═┼▓─é╠é╟é±é╚ô«é½é≡éáé½éτé⌐é╔é╡é▄é╖é⌐==--
  36.  
  37.       LOOP
  38. *--== óû│î°úé╞é╚éΘÆ[é╠ê╩Æué≡Åëè·ë╗é╡é▄é╖==--
  39.           DO I = 0, 11
  40.               DO J = 0, 11
  41.                   BOARD( I, J ) = -1
  42.               END DO
  43.           END DO
  44. *--== óÄgéφéΩé─éóé╚éóúê╩Æué≡Åëè·ë╗é╡é▄é╖==--
  45.           DO I = 2, 9
  46.               DO J = 2, 9
  47.                   BOARD( I, J ) = 0
  48.               END DO
  49.           END DO
  50. *--== Åëé▀é╠ê╩Æu ==--
  51.           PRINT *,' '
  52.           PRINT *,'Åäù≡é≡Äné▀éΘé╜é▀é╔Åëé▀é╠ù±é╞╢╫╤Éöé≡ôⁿéΩé─ë║é│éóüB'
  53.           PRINT *,'(1,1) é═ì╢Åπé╠èpé┼é╖üB║▌╧é┼ò¬é»é╜ô±é┬é╠É«Éöé≡'
  54.           PRINT *,'ôⁿéΩé─ë║é│éóüBÄ~é▀éΘÄ₧é═''QUIT''é≡ôⁿéΩé─ë║é│éóüB'
  55.           WRITE( *, '(A,$)' ) 'ù±, ╢╫╤: '
  56.           READ( *, '(A)', END=99, ERR=99 ) REPLY
  57.           READ( REPLY, *, END=99, ERR=99 ) I, J
  58.           IF( I .GT. 8 .OR.  J .GT. 8 ) GO TO 99
  59. *--== ë≡îêû@é╠ö¡î⌐ ==--
  60.           I = I+1
  61.           J = J+1
  62.           D = -1
  63.           SP = 1
  64.           LOOP :L1
  65.               IF (I .LE. J) THEN
  66.                   OFFSET = 4
  67.                 ELSE
  68.                   OFFSET = 0
  69.               END IF
  70.               GUESS :G1
  71.                   LOOP :L2
  72.                       D = D + 1
  73.                       IF( D .EQ. 8 ) QUIT :G1
  74.                       TI = I + DI( D + OFFSET )
  75.                       TJ = J + DJ( D + OFFSET )
  76.                   UNTIL( BOARD( TI, TJ ) .EQ. 0 )
  77.                   ISTACK( SP ) = I
  78.                   JSTACK( SP ) = J
  79.                   DSTACK( SP ) = D
  80.                   BOARD( I, J ) = SP
  81.                   I = TI
  82.                   J = TJ
  83.                   SP = SP + 1
  84.                   D = -1
  85.               ADMIT
  86.                   SP = SP - 1
  87.                   BOARD( I, J ) = 0
  88.                   I = ISTACK( SP )
  89.                   J = JSTACK( SP )
  90.                   D = DSTACK( SP )
  91.               END GUESS
  92.           UNTIL( SP .EQ. 64 )
  93.           BOARD( I, J ) = 64
  94.           J = J - 1
  95. *--== îïë╩é╠┴¬╜ö┬é≡╠▀╪▌─é╡é▄é╖ ==--
  96.           PRINT *,' '
  97.           PRINT *,'      ïRÄmé╠Åäù≡ü[ë≡îêîïë╩     WATFOR-77'
  98.           PRINT *,'                  1=èJÄn     (K)=ÅIéΦ'
  99.           PRINT *,'.---------------------------------------.'
  100.           DO K = 2, 8
  101.               WRITE(LINE, 101) (BOARD( K, L ),L=2,9)
  102.               IF( I .EQ. K )LINE(1)(J*5-2:J*5)='(K)'
  103.               WRITE(*, '(A41)') LINE
  104.           ENDDO
  105.           WRITE(LINE, 102)(BOARD( 9, L ),L=2,9)
  106.           IF( I .EQ. 9 )LINE(1)(J*5-2:J*5)='(K)'
  107.           WRITE(*, '(A41)') LINE
  108.       ENDLOOP
  109. 101       FORMAT(   '| ',I2,' | ',I2,' | ',I2,' | ',I2,
  110.      1    ' | ',I2,' | ',I2,' | ',I2,' | ',I2,' |',/,
  111.      2    '|----+----+----+----+----+----+----+----|')
  112. 102       FORMAT(   '| ',I2,' | ',I2,' | ',I2,' | ',I2,
  113.      1    ' | ',I2,' | ',I2,' | ',I2,' | ',I2,' |',/,
  114.      2    '`---------------------------------------''')
  115. 99    END
  116.