fork download
  1.  
  2. ;;ボード8*8の端の判定を楽にするのに10*10行列にしている。
  3. (define mat
  4. (list->matrix
  5. '((0 0 0 0 0 0 0 0 0 0)
  6. (0 0 0 0 0 0 0 0 0 0)
  7. (0 0 0 0 0 0 0 0 0 0)
  8. (0 0 0 0 2 0 0 0 0 0)
  9. (0 0 0 0 2 2 0 0 0 0)
  10. (0 0 0 1 1 1 0 0 0 0)
  11. (0 0 0 0 0 0 0 0 0 0)
  12. (0 0 0 0 0 0 0 0 0 0)
  13. (0 0 0 0 0 0 0 0 0 0)
  14. (0 0 0 0 0 0 0 0 0 0))))
  15.  
  16. (define init? #t)
  17.  
  18. (define (find)
  19. (do ((i 2 (+ i 1)))
  20. ((> i 9) (if init? (display "初期配置")))
  21. (do ((j 2 (+ j 1)))
  22. ((> j 9) #t)
  23. (check-LU i j)
  24. (check-UP i j)
  25. (check-RU i j)
  26. (check-LT i j)
  27. (check-RT i j)
  28. (check-LD i j)
  29. (check-DN i j)
  30. (check-RD i j))))
  31.  
  32.  
  33. (define (LU? i j)
  34. (and (not (= (matrix-ref1 mat i j) 0))
  35. (= (matrix-ref1 mat (- i 1) (- j 1))
  36. (matrix-ref1 mat i j))
  37. (= (matrix-ref1 mat (+ i 1) (+ i 1)) 0)))
  38.  
  39. (define (UP? i j)
  40. (and (not (= (matrix-ref1 mat i j) 0))
  41. (= (matrix-ref1 mat (- i 1) j)
  42. (matrix-ref1 mat i j))
  43. (= (matrix-ref1 mat (+ i 1) j) 0)))
  44.  
  45. (define (RU? i j)
  46. (and (not (= (matrix-ref1 mat i j) 0))
  47. (= (matrix-ref1 mat (- i 1) (+ j 1))
  48. (matrix-ref1 mat i j))
  49. (= (matrix-ref1 mat (+ i 1) (- j 1)) 0)))
  50.  
  51. (define (LT? i j)
  52. (and (not (= (matrix-ref1 mat i j) 0))
  53. (= (matrix-ref1 mat i (- j 1))
  54. (matrix-ref1 mat i j))
  55. (= (matrix-ref1 mat i (+ j 1)) 0)))
  56.  
  57. (define (RT? i j)
  58. (and (not (= (matrix-ref1 mat i j) 0))
  59. (= (matrix-ref1 mat i (+ j 1))
  60. (matrix-ref1 mat i j))
  61. (= (matrix-ref1 mat i (- j 1)) 0)))
  62.  
  63. (define (LD? i j)
  64. (and (not (= (matrix-ref1 mat i j) 0))
  65. (= (matrix-ref1 mat (+ i 1) (- j 1))
  66. (matrix-ref1 mat i j))
  67. (= (matrix-ref1 mat (- i 1) (+ j 1)) 0)))
  68.  
  69. (define (DN? i j)
  70. (and (not (= (matrix-ref1 mat i j) 0))
  71. (= (matrix-ref1 mat (+ i 1) j)
  72. (matrix-ref1 mat i j))
  73. (= (matrix-ref1 mat (- i 1) j) 0)))
  74.  
  75. (define (RD? i j)
  76. (and (not (= (matrix-ref1 mat i j) 0))
  77. (= (matrix-ref1 mat (+ i 1) (+ j 1))
  78. (matrix-ref1 mat i j))
  79. (= (matrix-ref1 mat (- i 1) (- j 1)) 0)))
  80.  
  81.  
  82. (define (check-LU i j)
  83. (when (LU? i j)
  84. (let ((e (matrix-ref1 mat i j)))
  85. (let loop ((i1 i) (j1 j) (cnt 0))
  86. (cond ((< i1 1) #f)
  87. ((< j1 1) #f)
  88. ((and (= 0 (matrix-ref1 mat i1 j1))
  89. (> cnt 2))
  90. (answer e i j))
  91. ((not (= e (matrix-ref1 mat i1 j1))) #f)
  92. (else
  93. (loop (- i1 1) (- j1 1) (+ cnt 1))))))))
  94.  
  95.  
  96. (define (check-UP i j)
  97. (when (UP? i j)
  98. (let ((e (matrix-ref1 mat i j)))
  99. (let loop ((i1 i) (j1 j) (cnt 0))
  100. (cond ((< i1 1) #f)
  101. ((and (= 0 (matrix-ref1 mat i1 j1))
  102. (> cnt 2))
  103. (answer e i j))
  104. ((not (= e (matrix-ref1 mat i1 j1))) #f)
  105. (else
  106. (loop (- i1 1) j1 (+ cnt 1))))))))
  107.  
  108. (define (check-RU i j)
  109. (when (RU? i j)
  110. (let ((e (matrix-ref1 mat i j)))
  111. (let loop ((i1 i) (j1 j) (cnt 0))
  112. (cond ((< i1 1) #f)
  113. ((> j1 10) #f)
  114. ((and (= 0 (matrix-ref1 mat i1 j1))
  115. (> cnt 2))
  116. (answer e i j))
  117. ((not (= e (matrix-ref1 mat i1 j1))) #f)
  118. (else
  119. (loop (- i1 1) (+ j1 1) (+ cnt 1))))))))
  120.  
  121. (define (check-LT i j)
  122. (when (LT? i j)
  123. (let ((e (matrix-ref1 mat i j)))
  124. (let loop ((i1 i) (j1 j) (cnt 0))
  125. (cond ((< j1 1) #f)
  126. ((and (= 0 (matrix-ref1 mat i1 j1))
  127. (> cnt 2))
  128. (answer e i j))
  129. ((not (= e (matrix-ref1 mat i1 j1))) #f)
  130. (else
  131. (loop i1 (- j1 1)(+ cnt 1))))))))
  132.  
  133. (define (check-RT i j)
  134. (when (RT? i j)
  135. (let ((e (matrix-ref1 mat i j)))
  136. (let loop ((i1 i) (j1 j) (cnt 0))
  137. (cond ((> j1 10) #f)
  138. ((and (= 0 (matrix-ref1 mat i1 j1))
  139. (> cnt 2))
  140. (answer e i j))
  141. ((not (= e (matrix-ref1 mat i1 j1))) #f)
  142. (else
  143. (loop i1 (+ j1 1)(+ cnt 1))))))))
  144.  
  145. (define (check-LD i j)
  146. (when (LD? i j)
  147. (let ((e (matrix-ref1 mat i j)))
  148. (let loop ((i1 i) (j1 j) (cnt 0))
  149. (cond ((> i1 10) #f)
  150. ((< j1 1) #f)
  151. ((and (= 0 (matrix-ref1 mat i1 j1))
  152. (> cnt 2))
  153. (answer e i j))
  154. ((not (= e (matrix-ref1 mat i1 j1))) #f)
  155. (else
  156. (loop (+ i1 1) (- j1 1) (+ cnt 1))))))))
  157.  
  158. (define (check-DN i j)
  159. (when (DN? i j)
  160. (let ((e (matrix-ref1 mat i j)))
  161. (let loop ((i1 i) (j1 j) (cnt 0))
  162. (cond ((> i1 10) #f)
  163. ((and (= 0 (matrix-ref1 mat i1 j1))
  164. (> cnt 2))
  165. (answer e i j))
  166. ((not (= e (matrix-ref1 mat i1 j1))) #f)
  167. (else
  168. (loop (+ i1 1) j1 (+ cnt 1))))))))
  169.  
  170. (define (check-RD i j)
  171. (when (RD? i j)
  172. (let ((e (matrix-ref1 mat i j)))
  173. (let loop ((i1 i) (j1 j) (cnt 0))
  174. (cond ((> i1 10) #f)
  175. ((> j1 10) #f)
  176. ((and (= 0 (matrix-ref1 mat i1 j1))
  177. (> cnt 2))
  178. (answer e i j))
  179. ((not (= e (matrix-ref1 mat i1 j1))) #f)
  180. (else
  181. (loop (+ i1 1) (+ j1 1) (+ cnt 1))))))))
  182.  
  183.  
  184. (define (answer e i j)
  185. (set! init? #f)
  186. (display "color=")(display e)(display " (")
  187. (display (- i 1))(display ",")
  188. (display (- j 1))(display ")")(newline))
  189.  
  190.  
  191. norm> (find)
  192. color=1 (5,3)
  193. color=1 (5,5)
  194. #<undef>
  195. norm>
  196.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:2: error: illegal character: '\uff0a'
;;???????????????????????????????
      ^
Main.java:2: error: illegal character: '\uff18'
;;???????????????????????????????
       ^
Main.java:2: error: illegal character: '\uff0a'
;;???????????????????????????????
                      ^
Main.java:2: error: illegal character: '\uff11'
;;???????????????????????????????
                       ^
Main.java:2: error: illegal character: '\uff10'
;;???????????????????????????????
                        ^
Main.java:2: error: illegal character: '\u3002'
;;???????????????????????????????
                                ^
Main.java:5: error: unclosed character literal
    '((0 0 0 0 0 0 0 0 0 0)
    ^
Main.java:16: error: illegal character: '#'
(define init? #t)
              ^
Main.java:22: error: illegal character: '#'
          ((> j 9) #t)
                   ^
Main.java:86: error: illegal character: '#'
        (cond ((< i1 1) #f)
                        ^
Main.java:87: error: illegal character: '#'
              ((< j1 1) #f)
                        ^
Main.java:91: error: illegal character: '#'
              ((not (= e (matrix-ref1 mat i1 j1))) #f)
                                                   ^
Main.java:100: error: illegal character: '#'
        (cond ((< i1 1) #f)
                        ^
Main.java:104: error: illegal character: '#'
              ((not (= e (matrix-ref1 mat i1 j1))) #f)
                                                   ^
Main.java:112: error: illegal character: '#'
        (cond ((< i1 1) #f)
                        ^
Main.java:113: error: illegal character: '#'
              ((> j1 10) #f)
                         ^
Main.java:117: error: illegal character: '#'
              ((not (= e (matrix-ref1 mat i1 j1))) #f)
                                                   ^
Main.java:125: error: illegal character: '#'
        (cond ((< j1 1) #f)
                        ^
Main.java:129: error: illegal character: '#'
              ((not (= e (matrix-ref1 mat i1 j1))) #f)
                                                   ^
Main.java:137: error: illegal character: '#'
        (cond ((> j1 10) #f)
                         ^
Main.java:141: error: illegal character: '#'
              ((not (= e (matrix-ref1 mat i1 j1))) #f)
                                                   ^
Main.java:149: error: illegal character: '#'
        (cond ((> i1 10) #f)
                         ^
Main.java:150: error: illegal character: '#'
              ((< j1 1) #f)
                        ^
Main.java:154: error: illegal character: '#'
              ((not (= e (matrix-ref1 mat i1 j1))) #f)
                                                   ^
Main.java:162: error: illegal character: '#'
        (cond ((> i1 10) #f)
                         ^
Main.java:166: error: illegal character: '#'
              ((not (= e (matrix-ref1 mat i1 j1))) #f)
                                                   ^
Main.java:174: error: illegal character: '#'
        (cond ((> i1 10) #f)
                         ^
Main.java:175: error: illegal character: '#'
              ((> j1 10) #f)
                         ^
Main.java:179: error: illegal character: '#'
              ((not (= e (matrix-ref1 mat i1 j1))) #f)
                                                   ^
Main.java:185: error: illegal character: '#'
  (set! init? #f)
              ^
Main.java:194: error: illegal character: '#'
#<undef>
^
31 errors
stdout
Standard output is empty