|
1 |
| -import { atom, reset_BANG_, range, conj, vec, prn, nth, swap_BANG_, vector, mapv, subvec, inc, str, apply, map_indexed, deref, re_matches } from 'clavascript/core.js' |
2 |
| -var board_state = atom([]); |
3 |
| -var counter = atom(0); |
4 |
| -var attempt = atom(0); |
5 |
| -var word_of_the_day = atom("hello"); |
| 1 | +import * as squint_core from 'squint-cljs/core.js'; |
| 2 | +var board_state = squint_core.atom([]); |
| 3 | +var counter = squint_core.atom(0); |
| 4 | +var attempt = squint_core.atom(0); |
| 5 | +var word_of_the_day = squint_core.atom("hello"); |
6 | 6 | var write_letter = function (cell, letter) {
|
7 |
| -return cell["textContent"] = letter; |
| 7 | +return cell.textContent = letter; |
8 | 8 | ;
|
9 | 9 | };
|
10 | 10 | var make_cell = function () {
|
11 |
| -let cell1 = document.createElement("div"); |
12 |
| -cell1["className"] = "cell"; |
| 11 | +const cell1 = document.createElement("div"); |
| 12 | +cell1.className = "cell"; |
13 | 13 | return cell1;
|
14 | 14 | };
|
15 | 15 | var make_board = function (n) {
|
16 |
| -let board2 = document.createElement("div"); |
17 |
| -board2["className"] = "board"; |
18 |
| -let seq__37 = range(n); |
19 |
| -let chunk__48 = null; |
20 |
| -let count__59 = 0; |
21 |
| -let i__610 = 0; |
22 |
| -while(true){ |
23 |
| -if ((i__610 < count__59)) { |
24 |
| -let _11 = _nth(chunk__48, i__610); |
25 |
| -let cell12 = make_cell(); |
26 |
| -swap_BANG_(board_state, conj, cell12); |
27 |
| -board2.appendChild(cell12); |
28 |
| -null; |
29 |
| -let G__13 = seq__37; |
30 |
| -let G__14 = chunk__48; |
31 |
| -let G__15 = count__59; |
32 |
| -let G__16 = unchecked_inc(i__610); |
33 |
| -seq__37 = G__13; |
34 |
| -chunk__48 = G__14; |
35 |
| -count__59 = G__15; |
36 |
| -i__610 = G__16; |
37 |
| -continue; |
38 |
| -} else { |
39 |
| -let temp__29223__auto__17 = ((seq__37["length"] > 0)) ? (seq__37) : (null); |
40 |
| -if (temp__29223__auto__17) { |
41 |
| -let seq__318 = temp__29223__auto__17; |
42 |
| -if (false) { |
43 |
| -let c__29616__auto__19 = chunk_first(seq__318); |
44 |
| -let G__20 = chunk_rest(seq__318); |
45 |
| -let G__21 = c__29616__auto__19; |
46 |
| -let G__22 = count(c__29616__auto__19); |
47 |
| -let G__23 = 0; |
48 |
| -seq__37 = G__20; |
49 |
| -chunk__48 = G__21; |
50 |
| -count__59 = G__22; |
51 |
| -i__610 = G__23; |
52 |
| -continue; |
53 |
| -} else { |
54 |
| -let _24 = (seq__318[0]); |
55 |
| -let cell25 = make_cell(); |
56 |
| -swap_BANG_(board_state, conj, cell25); |
57 |
| -board2.appendChild(cell25); |
58 |
| -null; |
59 |
| -let G__26 = seq__318.slice(1); |
60 |
| -let G__27 = null; |
61 |
| -let G__28 = 0; |
62 |
| -let G__29 = 0; |
63 |
| -seq__37 = G__26; |
64 |
| -chunk__48 = G__27; |
65 |
| -count__59 = G__28; |
66 |
| -i__610 = G__29; |
67 |
| -continue; |
68 |
| -}}};break; |
69 |
| -} |
70 |
| -; |
71 |
| -return board2; |
| 16 | +const board1 = document.createElement("div"); |
| 17 | +board1.className = "board"; |
| 18 | +for (let G__2 of squint_core.iterable(squint_core.range(n))) { |
| 19 | +const _3 = G__2; |
| 20 | +const cell4 = make_cell(); |
| 21 | +squint_core.swap_BANG_(board_state, squint_core.conj, cell4); |
| 22 | +board1.appendChild(cell4) |
| 23 | +}; |
| 24 | +return board1; |
72 | 25 | };
|
73 | 26 | var get_letter = function (cell) {
|
74 |
| -return cell["textContent"]; |
| 27 | +return cell.textContent; |
75 | 28 | };
|
76 | 29 | var color_cell = function (idx, cell) {
|
77 |
| -let color30 = function (el, color) { |
78 |
| -return el["style"]["backgroundColor"] = color; |
| 30 | +const color1 = (function (el, color) { |
| 31 | +return el.style.backgroundColor = color; |
79 | 32 | ;
|
80 |
| -}; |
81 |
| -let letter31 = get_letter(cell); |
82 |
| -if ((letter31 === nth(deref(word_of_the_day), idx))) { |
83 |
| -return color30(cell, "green");} else { |
84 |
| -if (contains_QMARK_(set(deref(word_of_the_day)), letter31)) { |
85 |
| -return color30(cell, "aqua");} else { |
| 33 | +}); |
| 34 | +const letter2 = get_letter(cell); |
| 35 | +if ((letter2) === (squint_core.nth(squint_core.deref(word_of_the_day), idx))) { |
| 36 | +return color1(cell, "green");} else { |
| 37 | +if (squint_core.truth_(squint_core.contains_QMARK_(squint_core.set(squint_core.deref(word_of_the_day)), letter2))) { |
| 38 | +return color1(cell, "aqua");} else { |
86 | 39 | if ("else") {
|
87 |
| -return color30(cell, "#333333");} else { |
| 40 | +return color1(cell, "#333333");} else { |
88 | 41 | return null;}}}
|
89 | 42 | };
|
90 | 43 | var check_solution = function (cells) {
|
91 |
| -let seq__3236 = map_indexed(vector, cells); |
92 |
| -let chunk__3337 = null; |
93 |
| -let count__3438 = 0; |
94 |
| -let i__3539 = 0; |
95 |
| -while(true){ |
96 |
| -if ((i__3539 < count__3438)) { |
97 |
| -let vec__4043 = _nth(chunk__3337, i__3539); |
98 |
| -let idx44 = nth(vec__4043, 0, null); |
99 |
| -let cell45 = nth(vec__4043, 1, null); |
100 |
| -color_cell(idx44, cell45); |
101 |
| -null; |
102 |
| -let G__46 = seq__3236; |
103 |
| -let G__47 = chunk__3337; |
104 |
| -let G__48 = count__3438; |
105 |
| -let G__49 = unchecked_inc(i__3539); |
106 |
| -seq__3236 = G__46; |
107 |
| -chunk__3337 = G__47; |
108 |
| -count__3438 = G__48; |
109 |
| -i__3539 = G__49; |
110 |
| -continue; |
111 |
| -} else { |
112 |
| -let temp__29223__auto__50 = ((seq__3236["length"] > 0)) ? (seq__3236) : (null); |
113 |
| -if (temp__29223__auto__50) { |
114 |
| -let seq__3251 = temp__29223__auto__50; |
115 |
| -if (false) { |
116 |
| -let c__29616__auto__52 = chunk_first(seq__3251); |
117 |
| -let G__53 = chunk_rest(seq__3251); |
118 |
| -let G__54 = c__29616__auto__52; |
119 |
| -let G__55 = count(c__29616__auto__52); |
120 |
| -let G__56 = 0; |
121 |
| -seq__3236 = G__53; |
122 |
| -chunk__3337 = G__54; |
123 |
| -count__3438 = G__55; |
124 |
| -i__3539 = G__56; |
125 |
| -continue; |
126 |
| -} else { |
127 |
| -let vec__5760 = (seq__3251[0]); |
128 |
| -let idx61 = nth(vec__5760, 0, null); |
129 |
| -let cell62 = nth(vec__5760, 1, null); |
130 |
| -color_cell(idx61, cell62); |
131 |
| -null; |
132 |
| -let G__63 = seq__3251.slice(1); |
133 |
| -let G__64 = null; |
134 |
| -let G__65 = 0; |
135 |
| -let G__66 = 0; |
136 |
| -seq__3236 = G__63; |
137 |
| -chunk__3337 = G__64; |
138 |
| -count__3438 = G__65; |
139 |
| -i__3539 = G__66; |
140 |
| -continue; |
141 |
| -}}};break; |
142 |
| -} |
143 |
| -; |
144 |
| -prn(str(mapv(get_letter, cells))); |
145 |
| -prn(str(vec(deref(word_of_the_day)))); |
146 |
| -return (apply(str, mapv(get_letter, cells)) === str(deref(word_of_the_day))); |
| 44 | +for (let G__1 of squint_core.iterable(squint_core.map_indexed(squint_core.vector, cells))) { |
| 45 | +const vec__25 = G__1; |
| 46 | +const idx6 = squint_core.nth(vec__25, 0, null); |
| 47 | +const cell7 = squint_core.nth(vec__25, 1, null); |
| 48 | +color_cell(idx6, cell7) |
| 49 | +}; |
| 50 | +return (squint_core.apply(squint_core.str, squint_core.mapv(get_letter, cells))) === (squint_core.str(squint_core.deref(word_of_the_day))); |
147 | 51 | };
|
148 | 52 | var user_input = function (key) {
|
149 |
| -let start67 = (5 * deref(attempt)); |
150 |
| -let end68 = (5 * (deref(attempt) + 1)); |
151 |
| -if (re_matches(/[a-z]/, key)&&(deref(counter) < end68)) { |
152 |
| -write_letter(nth(deref(board_state), deref(counter)), key); |
153 |
| -return swap_BANG_(counter, inc);} else { |
154 |
| -if ((key === "backspace")&&(deref(counter) > start67)) { |
155 |
| -swap_BANG_(counter, dec); |
156 |
| -return write_letter(nth(deref(board_state), deref(counter)), "");} else { |
157 |
| -if ((key === "enter")&&(deref(counter) === end68)) { |
158 |
| -if (check_solution(subvec(deref(board_state), start67, end68))) { |
| 53 | +const start1 = (5) * (squint_core.deref(attempt)); |
| 54 | +const end2 = (5) * ((squint_core.deref(attempt) + 1)); |
| 55 | +if (squint_core.truth_((() => { |
| 56 | +const and__24178__auto__3 = squint_core.re_matches(/[a-z]/, key); |
| 57 | +if (squint_core.truth_(and__24178__auto__3)) { |
| 58 | +return (squint_core.deref(counter)) < (end2);} else { |
| 59 | +return and__24178__auto__3;} |
| 60 | +})())) { |
| 61 | +write_letter(squint_core.nth(squint_core.deref(board_state), squint_core.deref(counter)), key); |
| 62 | +return squint_core.swap_BANG_(counter, squint_core.inc);} else { |
| 63 | +if (squint_core.truth_((() => { |
| 64 | +const and__24178__auto__4 = (key) === ("backspace"); |
| 65 | +if (and__24178__auto__4) { |
| 66 | +return (squint_core.deref(counter)) > (start1);} else { |
| 67 | +return and__24178__auto__4;} |
| 68 | +})())) { |
| 69 | +squint_core.swap_BANG_(counter, squint_core.dec); |
| 70 | +return write_letter(squint_core.nth(squint_core.deref(board_state), squint_core.deref(counter)), "");} else { |
| 71 | +if (squint_core.truth_((() => { |
| 72 | +const and__24178__auto__5 = (key) === ("enter"); |
| 73 | +if (and__24178__auto__5) { |
| 74 | +return (squint_core.deref(counter)) === (end2);} else { |
| 75 | +return and__24178__auto__5;} |
| 76 | +})())) { |
| 77 | +if (squint_core.truth_(check_solution(squint_core.subvec(squint_core.deref(board_state), start1, end2)))) { |
159 | 78 | alert("You won")};
|
160 |
| -return swap_BANG_(attempt, inc);} else { |
| 79 | +return squint_core.swap_BANG_(attempt, squint_core.inc);} else { |
161 | 80 | return null;}}}
|
162 | 81 | };
|
163 |
| -if ((typeof listener !== 'undefined')) { |
164 |
| -null} else { |
165 |
| -var listener = atom(null); |
166 |
| -}; |
| 82 | +var listener = squint_core.atom(null); |
167 | 83 | var unmount = function () {
|
168 |
| -document.removeEventListener("keydown", deref(listener)); |
169 |
| -let app69 = document.getElementById("app"); |
170 |
| -return app69["innerHTML"] = ""; |
| 84 | +document.removeEventListener("keydown", squint_core.deref(listener)); |
| 85 | +const app1 = document.getElementById("app"); |
| 86 | +return app1.innerHTML = ""; |
171 | 87 | ;
|
172 | 88 | };
|
173 | 89 | var mount = function () {
|
174 |
| -let app70 = document.getElementById("app"); |
175 |
| -let board71 = make_board(30); |
176 |
| -let input_listener72 = function (e) { |
177 |
| -return user_input(e["key"].toLowerCase()); |
178 |
| -}; |
179 |
| -app70.appendChild(board71); |
180 |
| -reset_BANG_(listener, input_listener72); |
181 |
| -return document.addEventListener("keydown", input_listener72); |
| 90 | +const app1 = document.getElementById("app"); |
| 91 | +const board2 = make_board(30); |
| 92 | +const input_listener3 = (function (e) { |
| 93 | +return user_input(e.key.toLowerCase()); |
| 94 | +}); |
| 95 | +app1.appendChild(board2); |
| 96 | +squint_core.reset_BANG_(listener, input_listener3); |
| 97 | +return document.addEventListener("keydown", input_listener3); |
182 | 98 | };
|
183 | 99 | mount();
|
184 |
| -null; |
185 | 100 |
|
186 | 101 | export { make_cell, counter, word_of_the_day, board_state, listener, user_input, check_solution, color_cell, attempt, unmount, mount, make_board, write_letter, get_letter }
|
0 commit comments