Skip to content

Instantly share code, notes, and snippets.

@dra1n
Created November 10, 2023 06:59
Show Gist options
  • Save dra1n/88cb5ee9304cf01a99dab9a96ed32cd2 to your computer and use it in GitHub Desktop.
Save dra1n/88cb5ee9304cf01a99dab9a96ed32cd2 to your computer and use it in GitHub Desktop.
(ns number-puzzles.imbaru
(:refer-clojure :exclude [==]) ;; Prevent ns conflict
(:require [clojure.core.logic :refer :all]))
(def answers (run* [q]
(fresh [r1 r2 r3 r4
r5 r6 r7 r8
r9 r10 r11 r12
r13 r14 r15 r16]
;; Last room
(conde [(== [r4 r10 r13] [1 0 0])]
[(== [r4 r10 r13] [0 1 0])]
[(== [r4 r10 r13] [0 0 1])])
(conde [(== [r2 r5 r7] [1 0 1])]
[(== [r2 r5 r7] [0 1 1])]
[(== [r2 r5 r7] [0 0 0])])
(conde [(== [r5 r8 r15] [0 1 0])]
[(== [r5 r8 r15] [1 0 0])]
[(== [r5 r8 r15] [1 1 1])])
(conde [(== [r1 r4 r16] [1 0 1])]
[(== [r1 r4 r16] [0 1 1])]
[(== [r1 r4 r16] [0 0 0])])
;; Mirrors room
(conde [(== [r6 r9 r11] [0 0 1])]
[(== [r6 r9 r11] [1 1 1])]
[(== [r6 r9 r11] [1 0 0])])
(conde [(== [r1 r3 r16] [0 1 1])]
[(== [r1 r3 r16] [1 0 1])]
[(== [r1 r3 r16] [1 1 0])])
(conde [(== [r6 r8 r12] [1 1 0])]
[(== [r6 r8 r12] [0 0 0])]
[(== [r6 r8 r12] [0 1 1])])
(conde [(== [r5 r7 r15] [1 1 0])]
[(== [r5 r7 r15] [0 0 0])]
[(== [r5 r7 r15] [0 1 1])])
;; Warpath room
(conde [(== [r6 r9 r12] [1 1 1])]
[(== [r6 r9 r12] [0 0 1])]
[(== [r6 r9 r12] [0 1 0])])
(conde [(== [r2 r7 r13] [1 0 1])]
[(== [r2 r7 r13] [0 1 1])]
[(== [r2 r7 r13] [0 0 0])])
(conde [(== [r1 r4 r16] [1 0 1])]
[(== [r1 r4 r16] [0 1 1])]
[(== [r1 r4 r16] [0 0 0])])
(conde [(== [r3 r11 r14] [1 1 1])]
[(== [r3 r11 r14] [0 0 1])]
[(== [r3 r11 r14] [0 1 0])])
;; Chests room
(conde [(== [r2 r10 r13] [0 0 0])]
[(== [r2 r10 r13] [1 1 0])]
[(== [r2 r10 r13] [1 0 1])])
(conde [(== [r9 r11 r14] [1 0 1])]
[(== [r9 r11 r14] [0 1 1])]
[(== [r9 r11 r14] [0 0 0])])
(conde [(== [r8 r12 r15] [0 1 1])]
[(== [r8 r12 r15] [1 0 1])]
[(== [r8 r12 r15] [1 1 0])])
(conde [(== [r4 r10 r16] [1 0 1])]
[(== [r4 r10 r16] [0 1 1])]
[(== [r4 r10 r16] [0 0 0])])
(== q [[r1 r2 r3 r4]
[r5 r6 r7 r8]
[r9 r10 r11 r12]
[r13 r14 r15 r16]]))))
(first answers)
@dra1n
Copy link
Author

dra1n commented Nov 10, 2023

IMAGE 2023-11-10 08:59:43

IMAGE 2023-11-10 08:59:21

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment