Skip to content

Commit b908ed0

Browse files
Merge pull request #15 from quantum9Innovation/variants
Add all variants
2 parents 1f5804d + 0b242c5 commit b908ed0

24 files changed

Lines changed: 244326 additions & 286 deletions

App/Data/answers4.txt

Lines changed: 61731 additions & 0 deletions
Large diffs are not rendered by default.

App/Data/dictionary4.txt

Lines changed: 179386 additions & 0 deletions
Large diffs are not rendered by default.

App/Icons/cancel.svg

Lines changed: 1 addition & 0 deletions
Loading

App/Icons/menu.svg

Lines changed: 3 additions & 0 deletions
Loading

App/Icons/settings.svg

Lines changed: 0 additions & 7 deletions
This file was deleted.

App/Icons/skip.svg

Lines changed: 1 addition & 0 deletions
Loading

App/Scripts/build.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ let makeHeader = () => {
112112
settingsButton.className = 'header-button'
113113
settingsButton.setAttribute('onclick', 'toggleSettings()')
114114
settingsButton.innerHTML =
115-
'<img src="Icons/settings.svg" class="header-icon" alt="settings">'
115+
'<img src="Icons/menu.svg" class="header-icon" alt="menu">'
116116

117117
let helpButton = document.createElement('a')
118118
helpButton.id = 'help-button'

App/four/build.js

Lines changed: 281 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,281 @@
1+
2+
// Loading screen
3+
let makeLoad = () => {
4+
5+
let load = document.createElement('div')
6+
load.id = 'load'
7+
load.innerHTML = '<div class="shapes-5"></div>'
8+
document.body.appendChild(load)
9+
10+
}; makeLoad()
11+
12+
13+
// Build scripts
14+
15+
let makePopup = (x, y, letter) => {
16+
17+
// Create the popup HTML
18+
19+
const fidal = [
20+
['ሀ', 'ሁ', 'ሂ', 'ሃ', 'ሄ', 'ህ', 'ሆ'],
21+
['ለ', 'ሉ', 'ሊ', 'ላ', 'ሌ', 'ል', 'ሎ', 'ሏ'],
22+
['ሐ', 'ሑ', 'ሒ', 'ሓ', 'ሔ', 'ሕ', 'ሖ', 'ሗ'],
23+
['መ', 'ሙ', 'ሚ', 'ማ', 'ሜ', 'ም', 'ሞ', 'ሟ'],
24+
['ሠ', 'ሡ', 'ሢ', 'ሣ', 'ሤ', 'ሥ', 'ሦ', 'ሧ'],
25+
['ረ', 'ሩ', 'ሪ', 'ራ', 'ሬ', 'ር', 'ሮ', 'ሯ'],
26+
['ሰ', 'ሱ', 'ሲ', 'ሳ', 'ሴ', 'ስ', 'ሶ', 'ሷ'],
27+
['ሸ', 'ሹ', 'ሺ', 'ሻ', 'ሼ', 'ሽ', 'ሾ', 'ሿ'],
28+
['ቀ', 'ቁ', 'ቂ', 'ቃ', 'ቄ', 'ቅ', 'ቆ', 'ቋ'],
29+
['በ', 'ቡ', 'ቢ', 'ባ', 'ቤ', 'ብ', 'ቦ', 'ቧ'],
30+
['ተ', 'ቱ', 'ቲ', 'ታ', 'ቴ', 'ት', 'ቶ', 'ቷ'],
31+
['ቸ', 'ቹ', 'ቺ', 'ቻ', 'ቼ', 'ች', 'ቾ', 'ቿ'],
32+
['ኀ', 'ኁ', 'ኂ', 'ኃ', 'ኄ', 'ኅ', 'ኆ', 'ኋ'],
33+
['ነ', 'ኑ', 'ኒ', 'ና', 'ኔ', 'ን', 'ኖ', 'ኗ'],
34+
['ኘ', 'ኙ', 'ኚ', 'ኛ', 'ኜ', 'ኝ', 'ኞ', 'ኟ'],
35+
['አ', 'ኡ', 'ኢ', 'ኣ', 'ኤ', 'እ', 'ኦ', 'ኧ'],
36+
['ከ', 'ኩ', 'ኪ', 'ካ', 'ኬ', 'ክ', 'ኮ', 'ኳ'],
37+
['ኸ', 'ኹ', 'ኺ', 'ኻ', 'ኼ', 'ኽ', 'ኾ'],
38+
['ወ', 'ዉ', 'ዊ', 'ዋ', 'ዌ', 'ው', 'ዎ'],
39+
['ዐ', 'ዑ', 'ዒ', 'ዓ', 'ዔ', 'ዕ', 'ዖ'],
40+
['ዘ', 'ዙ', 'ዚ', 'ዛ', 'ዜ', 'ዝ', 'ዞ', 'ዟ'],
41+
['ዠ', 'ዡ', 'ዢ', 'ዣ', 'ዤ', 'ዥ', 'ዦ', 'ዧ'],
42+
['የ', 'ዩ', 'ዪ', 'ያ', 'ዬ', 'ይ', 'ዮ'],
43+
['ደ', 'ዱ', 'ዲ', 'ዳ', 'ዴ', 'ድ', 'ዶ', 'ዷ'],
44+
['ጀ', 'ጁ', 'ጂ', 'ጃ', 'ጄ', 'ጅ', 'ጆ', 'ጇ'],
45+
['ገ', 'ጉ', 'ጊ', 'ጋ', 'ጌ', 'ግ', 'ጎ', 'ጓ'],
46+
['ጠ', 'ጡ', 'ጢ', 'ጣ', 'ጤ', 'ጥ', 'ጦ', 'ጧ'],
47+
['ጨ', 'ጩ', 'ጪ', 'ጫ', 'ጬ', 'ጭ', 'ጮ', 'ጯ'],
48+
['ጰ', 'ጱ', 'ጲ', 'ጳ', 'ጴ', 'ጵ', 'ጶ', 'ጷ'],
49+
['ጸ', 'ጹ', 'ጺ', 'ጻ', 'ጼ', 'ጽ', 'ጾ', 'ጿ'],
50+
['ፀ', 'ፁ', 'ፂ', 'ፃ', 'ፄ', 'ፅ', 'ፆ'],
51+
['ፈ', 'ፉ', 'ፊ', 'ፋ', 'ፌ', 'ፍ', 'ፎ', 'ፏ'],
52+
['ፐ', 'ፑ', 'ፒ', 'ፓ', 'ፔ', 'ፕ', 'ፖ', 'ፗ'],
53+
['ቨ', 'ቩ', 'ቪ', 'ቫ', 'ቬ', 'ቭ', 'ቮ', 'ቯ']
54+
]
55+
const keys = [
56+
'ሀ', 'ለ', 'ሐ', 'መ', 'ሠ', 'ረ', 'ሰ', 'ሸ', 'ቀ', 'በ', 'ተ', 'ቸ',
57+
'ኀ', 'ነ', 'ኘ', 'አ', 'ከ', 'ኸ', 'ወ', 'ዐ', 'ዘ', 'ዠ',
58+
'የ', 'ደ', 'ጀ', 'ገ', 'ጠ', 'ጨ', 'ጰ', 'ጸ', 'ፀ', 'ፈ', 'ፐ', 'ቨ'
59+
]
60+
61+
if ( !keys.includes(letter) ) return
62+
let index = keys.indexOf(letter)
63+
let letters = fidal[index]
64+
65+
let carousel = document.createElement('div')
66+
carousel.id = 'c-' + x + '-' + y
67+
carousel.className = 'carousel carousel-' + letters.length
68+
69+
for ( let i = 0; i < letters.length; i++ ) {
70+
71+
let letter = letters[i]
72+
let letterDiv = document.createElement('div')
73+
letterDiv.id = 'l-' + x + '-' + y + '-' + (i + 1)
74+
letterDiv.className = 'carousel-letter'
75+
letterDiv.setAttribute('onclick', 'type(this.innerText)')
76+
77+
if ( i == 0 ) letterDiv.classList.add('carousel-letter-first')
78+
79+
letterDiv.innerHTML = letter
80+
carousel.appendChild(letterDiv)
81+
82+
}
83+
84+
return [carousel.outerHTML, 'popup-' + letters.length]
85+
86+
}
87+
88+
let makeHeader = () => {
89+
90+
let header = document.createElement('div')
91+
header.id = 'bar'
92+
93+
let title = document.createElement('h1')
94+
title.id = 'title'
95+
title.innerHTML = 'ቃልነት'
96+
97+
let leftBar = document.createElement('div')
98+
leftBar.id = 'left-bar'
99+
100+
let rightBar = document.createElement('div')
101+
rightBar.id = 'right-bar'
102+
103+
let statsButton = document.createElement('button')
104+
statsButton.id = 'stats-button'
105+
statsButton.className = 'header-button'
106+
statsButton.setAttribute('onclick', 'toggleStats()')
107+
statsButton.innerHTML =
108+
'<img src="../Icons/stats.svg" class="header-icon" alt="stats">'
109+
110+
let settingsButton = document.createElement('button')
111+
settingsButton.id = 'settings-button'
112+
settingsButton.className = 'header-button'
113+
settingsButton.setAttribute('onclick', 'toggleSettings()')
114+
settingsButton.innerHTML =
115+
'<img src="../Icons/menu.svg" class="header-icon" alt="menu">'
116+
117+
let helpButton = document.createElement('a')
118+
helpButton.id = 'help-button'
119+
helpButton.className = 'header-button'
120+
helpButton.setAttribute('href', '../guide/')
121+
helpButton.innerHTML =
122+
'<img src="../Icons/help.svg" class="header-icon" alt="help">'
123+
124+
let revealButton = document.createElement('button')
125+
revealButton.id = 'reveal-button'
126+
revealButton.className = 'header-button'
127+
revealButton.setAttribute('onclick', 'reveal()')
128+
revealButton.innerHTML =
129+
'<img src="../Icons/reveal.svg" class="header-icon" alt="reveal">'
130+
131+
rightBar.appendChild(statsButton)
132+
rightBar.appendChild(settingsButton)
133+
134+
leftBar.appendChild(helpButton)
135+
leftBar.appendChild(revealButton)
136+
137+
header.appendChild(leftBar)
138+
header.appendChild(rightBar)
139+
header.appendChild(title)
140+
document.body.appendChild(header)
141+
142+
}
143+
144+
let makeGrid = () => {
145+
146+
let content = document.createElement('div')
147+
content.id = 'content'
148+
149+
for (let i = 0; i < 6; i++) {
150+
151+
let word = document.createElement('div')
152+
for (let j = 0; j < 4; j++) {
153+
154+
let box = document.createElement('div')
155+
box.className = 'box ' + (j + 1)
156+
box.id = (i + 1) + '-' + (j + 1)
157+
box.innerText = ' '
158+
word.appendChild(box)
159+
160+
}
161+
162+
word.id = String(i + 1)
163+
word.className = 'word'
164+
165+
if ( i == 5 ) word.className = 'word hide'
166+
167+
content.appendChild(word)
168+
169+
}
170+
171+
document.body.appendChild(content)
172+
173+
}
174+
175+
let makeKeyboard = () => {
176+
177+
let keyboard = document.createElement('div')
178+
keyboard.id = 'keyboard'
179+
180+
let letters = [
181+
'ሀ', 'ለ', 'ሐ', 'መ', 'ሠ', 'ረ', 'ሰ', 'ሸ', 'ቀ', 'በ', 'ተ', 'ቸ',
182+
'<img src="../Icons/backspace.svg" class="inline-icon" alt="backspace" >',
183+
'ኀ', 'ነ', 'ኘ', 'አ', 'ከ', 'ኸ', 'ወ', 'ዐ', 'ዘ', 'ዠ',
184+
'<img src="../Icons/enter.svg" class="inline-icon" alt="enter" >',
185+
'የ', 'ደ', 'ጀ', 'ገ', 'ጠ', 'ጨ', 'ጰ', 'ጸ', 'ፀ', 'ፈ', 'ፐ', 'ቨ'
186+
]
187+
188+
let index = 0
189+
190+
for (let i = 0; i < 3; i++) {
191+
192+
let row = document.createElement('div')
193+
row.className = 'row'
194+
row.id = 'r' + (i + 1)
195+
196+
let limits = [12, 12, 12]
197+
198+
for (let j = 0; j < limits[i]; j++) {
199+
200+
let key = document.createElement('button')
201+
key.className = 'key'
202+
203+
key.id = 'k-' + (i + 1) + '-' + (j + 1)
204+
key.setAttribute('onclick', 'keyClick(this)')
205+
206+
if (index == 12 || index == 23 ) {
207+
208+
key.className = 'key icon-container'
209+
key.innerHTML = '<span class="letter">'+letters[index]+'</span>'
210+
211+
if ( index == 12 ) key.setAttribute('onclick', 'backspace()')
212+
else key.setAttribute('onclick', 'enter()')
213+
214+
row.appendChild(key)
215+
index++
216+
continue
217+
218+
}
219+
220+
let popup = document.createElement('span')
221+
popup.className = 'popup'
222+
popup.id = 'p-' + (i + 1) + '-' + (j + 1)
223+
popupCode = makePopup(i + 1, j + 1, letters[index])
224+
popup.innerHTML = popupCode[0]
225+
popup.classList.add(popupCode[1])
226+
227+
key.innerHTML = '<span class="letter">'+letters[index]+'</span>'
228+
key.appendChild(popup)
229+
230+
row.appendChild(key)
231+
index++
232+
233+
}
234+
235+
keyboard.appendChild(row)
236+
237+
}
238+
239+
document.body.appendChild(keyboard)
240+
241+
}
242+
243+
let makeModal = () => {
244+
245+
// Make score modal
246+
let modal = document.createElement('div')
247+
modal.id = 'modal'
248+
modal.innerHTML =
249+
'<div id="modal-content">0</div>'
250+
+ '<div id="timer" ></div>'
251+
document.body.appendChild(modal)
252+
253+
// Make fireworks container
254+
let fireworks = document.createElement('div')
255+
fireworks.id = 'fireworks'
256+
document.body.appendChild(fireworks)
257+
258+
// Make statistics modal
259+
let statsModal = document.createElement('div')
260+
statsModal.id = 'stats-modal'
261+
statsModal.innerHTML =
262+
'<div id="stats-modal-content"><canvas id="stats-chartjs"></canvas>'
263+
+ '</div>'
264+
document.body.appendChild(statsModal)
265+
266+
// Make reveal modal
267+
let revealModal = document.createElement('div')
268+
revealModal.id = 'reveal-modal'
269+
revealModal.innerHTML =
270+
'<div id="reveal-modal-content">'
271+
+ '<div id="reveal-modal-title">ቃል አሳይ?</div>'
272+
+ '<button id="reveal-form" onclick="alertReveal()">አዎን</button>'
273+
+ '</div>'
274+
document.body.appendChild(revealModal)
275+
276+
}
277+
278+
makeHeader()
279+
makeGrid()
280+
makeKeyboard()
281+
makeModal()

App/four/index.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
.word {
2+
width: 80%;
3+
margin-left: 10%;
4+
}

App/four/index.html

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
4+
<head>
5+
<title>ቃልነት | ሚጢጢ</title>
6+
7+
<link rel="apple-touch-icon" sizes="180x180" href="../Favicons/apple-touch-icon.png">
8+
<link rel="icon" type="image/png" sizes="32x32" href="../Favicons/favicon-32x32.png">
9+
<link rel="icon" type="image/png" sizes="16x16" href="../Favicons/favicon-16x16.png">
10+
<link rel="manifest" href="../site.webmanifest">
11+
<link rel="mask-icon" href="../Favicons/safari-pinned-tab.svg" color="#629e4f">
12+
<meta name="apple-mobile-web-app-title" content="ቃልነት">
13+
<meta name="application-name" content="ቃልነት">
14+
<meta name="msapplication-TileColor" content="#ffffff">
15+
<meta name="msapplication-TileImage" content="../Favicons/mstile-144x144.png">
16+
<meta name="theme-color" content="#ffffff">
17+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
18+
<meta name="description" content="The four-letter version of Amharic Wordle" />
19+
20+
<link rel="stylesheet" href="../index.css">
21+
<link rel="stylesheet" href="./index.css">
22+
23+
<script defer src="https://cdn.jsdelivr.net/npm/canvas-confetti@1.5.1/dist/confetti.browser.min.js"></script>
24+
<script defer src="https://cdn.jsdelivr.net/npm/fireworks-js@latest/dist/fireworks.js"></script>
25+
<script defer src='https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js'></script>
26+
<script type="module" src="../Modules/js.cookie.min.mjs"></script>
27+
<script nomodule defer src="../Modules/js.cookie.min.js"></script>
28+
29+
</head>
30+
31+
<body></body>
32+
<script src="../Scripts/popups.js"></script>
33+
<script src="./build.js"></script>
34+
<script type="module" src="./index.js"></script>
35+
36+
</html>

0 commit comments

Comments
 (0)