Skip to content

Repository files navigation

History

Dingle is a word game that I brainstormed and created in Python while on my 2022 spring break at Boston College. I shelved it, until the summer of 2023, since I struggled to convert my Python code to JavaScript and look pretty with HTML and CSS. However, I eventually figured it out.

The retro-terminal look produced by the CSS file was something I wanted to create since I wrote the original game on Replit which has that look in its console. But, I was actually able to create it with a lot of help from the source code of the 'rataalada' website that was created when 'The Batman' was released. (You can the Wayback Machine to take a look).

I left the game to stew until late February 2024 where I was inspired to learn more about web development. This included diving into React since that is the most popular and current method for front end development. Of course, I didn't know how to use the React library so I had to study it until I felt that enough studying was enough and that I needed to just learn from experience and mistakes. So I went to a familiar project to do this, which ending up being this one. Turns out, I retained much from studying and learned much more about the actual structure and layout of React through practice. So, now the website is built using the React library.

Through using React, I was able to add other features that I had been wanting to include but couldn't figure out how to. I added a button that opened a notepad for the user (since the game can get difficult). I also added multiple levels so there are now options for 5-letter, 6-letter, and 7-letter secret words and localStorage handling for all of them. In the process, I also reconfigured the CSS to put all of these selections in a navigation bar in the header.

How to play

As you can probably tell, Dingle is heavily inspired by Wordle from its name to its goal. However, the caveat here is that a guess only informs you if the secret word has similar letter(s), instead of the position and which letter is similar. For example, if the secret word is "caveat" and you guess "apples," the game would return "2" since there are 2 similar letters between the two words — 'a' and 'e.' Similar to Wordle, the guess must match the length of the secret word, which in this case is 6 letters. There are no limits ot the amount of guesses, but obviously you want to get it done in as few as possible.

(P.S. it is advisable to get a little notepad or something since it can be easy to lose track of eliminated and guaranteed letters)

How it works

All the secret words are listed, in the order of their use, in an array in the 'sixletterwords.js' file. The word is chosen and updated every day based on the time. Each guess is checked for existence using an API and length otherwise an error message is printed out for the user. All valid guesses and progress is saved to localStorage so that we can limit 'cheaters' and whatnot. A win is recorded when the guess is correct and is tallied in localStorage. Other stats are saved in localStorage so that we can show them all when the user eventually wins.

To Add-on/Contribute

First and foremost, any contributions and/or ideas are welcome. Just because an idea is here does NOT mean that you HAVE to do ALL of it. Do what you can and are able to do.

  1. I think it would be cool to add some sort of leaderboard system whether its global or among friends.
  2. Any ideas and extensions that you might have, I'd love to hear.

Thank you

- Gio

About

Word Game project inspired by Wordle

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - gio-puter/Dingle: Word Game project inspired by Wordle · GitHub
Skip to content

Repository files navigation

History

Dingle is a word game that I brainstormed and created in Python while on my 2022 spring break at Boston College. I shelved it, until the summer of 2023, since I struggled to convert my Python code to JavaScript and look pretty with HTML and CSS. However, I eventually figured it out.

The retro-terminal look produced by the CSS file was something I wanted to create since I wrote the original game on Replit which has that look in its console. But, I was actually able to create it with a lot of help from the source code of the 'rataalada' website that was created when 'The Batman' was released. (You can the Wayback Machine to take a look).

I left the game to stew until late February 2024 where I was inspired to learn more about web development. This included diving into React since that is the most popular and current method for front end development. Of course, I didn't know how to use the React library so I had to study it until I felt that enough studying was enough and that I needed to just learn from experience and mistakes. So I went to a familiar project to do this, which ending up being this one. Turns out, I retained much from studying and learned much more about the actual structure and layout of React through practice. So, now the website is built using the React library.

Through using React, I was able to add other features that I had been wanting to include but couldn't figure out how to. I added a button that opened a notepad for the user (since the game can get difficult). I also added multiple levels so there are now options for 5-letter, 6-letter, and 7-letter secret words and localStorage handling for all of them. In the process, I also reconfigured the CSS to put all of these selections in a navigation bar in the header.

How to play

As you can probably tell, Dingle is heavily inspired by Wordle from its name to its goal. However, the caveat here is that a guess only informs you if the secret word has similar letter(s), instead of the position and which letter is similar. For example, if the secret word is "caveat" and you guess "apples," the game would return "2" since there are 2 similar letters between the two words — 'a' and 'e.' Similar to Wordle, the guess must match the length of the secret word, which in this case is 6 letters. There are no limits ot the amount of guesses, but obviously you want to get it done in as few as possible.

(P.S. it is advisable to get a little notepad or something since it can be easy to lose track of eliminated and guaranteed letters)

How it works

All the secret words are listed, in the order of their use, in an array in the 'sixletterwords.js' file. The word is chosen and updated every day based on the time. Each guess is checked for existence using an API and length otherwise an error message is printed out for the user. All valid guesses and progress is saved to localStorage so that we can limit 'cheaters' and whatnot. A win is recorded when the guess is correct and is tallied in localStorage. Other stats are saved in localStorage so that we can show them all when the user eventually wins.

To Add-on/Contribute

First and foremost, any contributions and/or ideas are welcome. Just because an idea is here does NOT mean that you HAVE to do ALL of it. Do what you can and are able to do.

  1. I think it would be cool to add some sort of leaderboard system whether its global or among friends.
  2. Any ideas and extensions that you might have, I'd love to hear.

Thank you

- Gio

About

Word Game project inspired by Wordle

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - gio-puter/Dingle: Word Game project inspired by Wordle · GitHub
Skip to content

Repository files navigation

History

Dingle is a word game that I brainstormed and created in Python while on my 2022 spring break at Boston College. I shelved it, until the summer of 2023, since I struggled to convert my Python code to JavaScript and look pretty with HTML and CSS. However, I eventually figured it out.

The retro-terminal look produced by the CSS file was something I wanted to create since I wrote the original game on Replit which has that look in its console. But, I was actually able to create it with a lot of help from the source code of the 'rataalada' website that was created when 'The Batman' was released. (You can the Wayback Machine to take a look).

I left the game to stew until late February 2024 where I was inspired to learn more about web development. This included diving into React since that is the most popular and current method for front end development. Of course, I didn't know how to use the React library so I had to study it until I felt that enough studying was enough and that I needed to just learn from experience and mistakes. So I went to a familiar project to do this, which ending up being this one. Turns out, I retained much from studying and learned much more about the actual structure and layout of React through practice. So, now the website is built using the React library.

Through using React, I was able to add other features that I had been wanting to include but couldn't figure out how to. I added a button that opened a notepad for the user (since the game can get difficult). I also added multiple levels so there are now options for 5-letter, 6-letter, and 7-letter secret words and localStorage handling for all of them. In the process, I also reconfigured the CSS to put all of these selections in a navigation bar in the header.

How to play

As you can probably tell, Dingle is heavily inspired by Wordle from its name to its goal. However, the caveat here is that a guess only informs you if the secret word has similar letter(s), instead of the position and which letter is similar. For example, if the secret word is "caveat" and you guess "apples," the game would return "2" since there are 2 similar letters between the two words — 'a' and 'e.' Similar to Wordle, the guess must match the length of the secret word, which in this case is 6 letters. There are no limits ot the amount of guesses, but obviously you want to get it done in as few as possible.

(P.S. it is advisable to get a little notepad or something since it can be easy to lose track of eliminated and guaranteed letters)

How it works

All the secret words are listed, in the order of their use, in an array in the 'sixletterwords.js' file. The word is chosen and updated every day based on the time. Each guess is checked for existence using an API and length otherwise an error message is printed out for the user. All valid guesses and progress is saved to localStorage so that we can limit 'cheaters' and whatnot. A win is recorded when the guess is correct and is tallied in localStorage. Other stats are saved in localStorage so that we can show them all when the user eventually wins.

To Add-on/Contribute

First and foremost, any contributions and/or ideas are welcome. Just because an idea is here does NOT mean that you HAVE to do ALL of it. Do what you can and are able to do.

  1. I think it would be cool to add some sort of leaderboard system whether its global or among friends.
  2. Any ideas and extensions that you might have, I'd love to hear.

Thank you

- Gio

About

Word Game project inspired by Wordle

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - gio-puter/Dingle: Word Game project inspired by Wordle · GitHub
Skip to content

Repository files navigation

History

Dingle is a word game that I brainstormed and created in Python while on my 2022 spring break at Boston College. I shelved it, until the summer of 2023, since I struggled to convert my Python code to JavaScript and look pretty with HTML and CSS. However, I eventually figured it out.

The retro-terminal look produced by the CSS file was something I wanted to create since I wrote the original game on Replit which has that look in its console. But, I was actually able to create it with a lot of help from the source code of the 'rataalada' website that was created when 'The Batman' was released. (You can the Wayback Machine to take a look).

I left the game to stew until late February 2024 where I was inspired to learn more about web development. This included diving into React since that is the most popular and current method for front end development. Of course, I didn't know how to use the React library so I had to study it until I felt that enough studying was enough and that I needed to just learn from experience and mistakes. So I went to a familiar project to do this, which ending up being this one. Turns out, I retained much from studying and learned much more about the actual structure and layout of React through practice. So, now the website is built using the React library.

Through using React, I was able to add other features that I had been wanting to include but couldn't figure out how to. I added a button that opened a notepad for the user (since the game can get difficult). I also added multiple levels so there are now options for 5-letter, 6-letter, and 7-letter secret words and localStorage handling for all of them. In the process, I also reconfigured the CSS to put all of these selections in a navigation bar in the header.

How to play

As you can probably tell, Dingle is heavily inspired by Wordle from its name to its goal. However, the caveat here is that a guess only informs you if the secret word has similar letter(s), instead of the position and which letter is similar. For example, if the secret word is "caveat" and you guess "apples," the game would return "2" since there are 2 similar letters between the two words — 'a' and 'e.' Similar to Wordle, the guess must match the length of the secret word, which in this case is 6 letters. There are no limits ot the amount of guesses, but obviously you want to get it done in as few as possible.

(P.S. it is advisable to get a little notepad or something since it can be easy to lose track of eliminated and guaranteed letters)

How it works

All the secret words are listed, in the order of their use, in an array in the 'sixletterwords.js' file. The word is chosen and updated every day based on the time. Each guess is checked for existence using an API and length otherwise an error message is printed out for the user. All valid guesses and progress is saved to localStorage so that we can limit 'cheaters' and whatnot. A win is recorded when the guess is correct and is tallied in localStorage. Other stats are saved in localStorage so that we can show them all when the user eventually wins.

To Add-on/Contribute

First and foremost, any contributions and/or ideas are welcome. Just because an idea is here does NOT mean that you HAVE to do ALL of it. Do what you can and are able to do.

  1. I think it would be cool to add some sort of leaderboard system whether its global or among friends.
  2. Any ideas and extensions that you might have, I'd love to hear.

Thank you

- Gio

About

Word Game project inspired by Wordle

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - gio-puter/Dingle: Word Game project inspired by Wordle · GitHub
Skip to content

Repository files navigation

History

Dingle is a word game that I brainstormed and created in Python while on my 2022 spring break at Boston College. I shelved it, until the summer of 2023, since I struggled to convert my Python code to JavaScript and look pretty with HTML and CSS. However, I eventually figured it out.

The retro-terminal look produced by the CSS file was something I wanted to create since I wrote the original game on Replit which has that look in its console. But, I was actually able to create it with a lot of help from the source code of the 'rataalada' website that was created when 'The Batman' was released. (You can the Wayback Machine to take a look).

I left the game to stew until late February 2024 where I was inspired to learn more about web development. This included diving into React since that is the most popular and current method for front end development. Of course, I didn't know how to use the React library so I had to study it until I felt that enough studying was enough and that I needed to just learn from experience and mistakes. So I went to a familiar project to do this, which ending up being this one. Turns out, I retained much from studying and learned much more about the actual structure and layout of React through practice. So, now the website is built using the React library.

Through using React, I was able to add other features that I had been wanting to include but couldn't figure out how to. I added a button that opened a notepad for the user (since the game can get difficult). I also added multiple levels so there are now options for 5-letter, 6-letter, and 7-letter secret words and localStorage handling for all of them. In the process, I also reconfigured the CSS to put all of these selections in a navigation bar in the header.

How to play

As you can probably tell, Dingle is heavily inspired by Wordle from its name to its goal. However, the caveat here is that a guess only informs you if the secret word has similar letter(s), instead of the position and which letter is similar. For example, if the secret word is "caveat" and you guess "apples," the game would return "2" since there are 2 similar letters between the two words — 'a' and 'e.' Similar to Wordle, the guess must match the length of the secret word, which in this case is 6 letters. There are no limits ot the amount of guesses, but obviously you want to get it done in as few as possible.

(P.S. it is advisable to get a little notepad or something since it can be easy to lose track of eliminated and guaranteed letters)

How it works

All the secret words are listed, in the order of their use, in an array in the 'sixletterwords.js' file. The word is chosen and updated every day based on the time. Each guess is checked for existence using an API and length otherwise an error message is printed out for the user. All valid guesses and progress is saved to localStorage so that we can limit 'cheaters' and whatnot. A win is recorded when the guess is correct and is tallied in localStorage. Other stats are saved in localStorage so that we can show them all when the user eventually wins.

To Add-on/Contribute

First and foremost, any contributions and/or ideas are welcome. Just because an idea is here does NOT mean that you HAVE to do ALL of it. Do what you can and are able to do.

  1. I think it would be cool to add some sort of leaderboard system whether its global or among friends.
  2. Any ideas and extensions that you might have, I'd love to hear.

Thank you

- Gio

About

Word Game project inspired by Wordle

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - gio-puter/Dingle: Word Game project inspired by Wordle · GitHub
Skip to content

Repository files navigation

History

Dingle is a word game that I brainstormed and created in Python while on my 2022 spring break at Boston College. I shelved it, until the summer of 2023, since I struggled to convert my Python code to JavaScript and look pretty with HTML and CSS. However, I eventually figured it out.

The retro-terminal look produced by the CSS file was something I wanted to create since I wrote the original game on Replit which has that look in its console. But, I was actually able to create it with a lot of help from the source code of the 'rataalada' website that was created when 'The Batman' was released. (You can the Wayback Machine to take a look).

I left the game to stew until late February 2024 where I was inspired to learn more about web development. This included diving into React since that is the most popular and current method for front end development. Of course, I didn't know how to use the React library so I had to study it until I felt that enough studying was enough and that I needed to just learn from experience and mistakes. So I went to a familiar project to do this, which ending up being this one. Turns out, I retained much from studying and learned much more about the actual structure and layout of React through practice. So, now the website is built using the React library.

Through using React, I was able to add other features that I had been wanting to include but couldn't figure out how to. I added a button that opened a notepad for the user (since the game can get difficult). I also added multiple levels so there are now options for 5-letter, 6-letter, and 7-letter secret words and localStorage handling for all of them. In the process, I also reconfigured the CSS to put all of these selections in a navigation bar in the header.

How to play

As you can probably tell, Dingle is heavily inspired by Wordle from its name to its goal. However, the caveat here is that a guess only informs you if the secret word has similar letter(s), instead of the position and which letter is similar. For example, if the secret word is "caveat" and you guess "apples," the game would return "2" since there are 2 similar letters between the two words — 'a' and 'e.' Similar to Wordle, the guess must match the length of the secret word, which in this case is 6 letters. There are no limits ot the amount of guesses, but obviously you want to get it done in as few as possible.

(P.S. it is advisable to get a little notepad or something since it can be easy to lose track of eliminated and guaranteed letters)

How it works

All the secret words are listed, in the order of their use, in an array in the 'sixletterwords.js' file. The word is chosen and updated every day based on the time. Each guess is checked for existence using an API and length otherwise an error message is printed out for the user. All valid guesses and progress is saved to localStorage so that we can limit 'cheaters' and whatnot. A win is recorded when the guess is correct and is tallied in localStorage. Other stats are saved in localStorage so that we can show them all when the user eventually wins.

To Add-on/Contribute

First and foremost, any contributions and/or ideas are welcome. Just because an idea is here does NOT mean that you HAVE to do ALL of it. Do what you can and are able to do.

  1. I think it would be cool to add some sort of leaderboard system whether its global or among friends.
  2. Any ideas and extensions that you might have, I'd love to hear.

Thank you

- Gio

About

Word Game project inspired by Wordle

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - gio-puter/Dingle: Word Game project inspired by Wordle · GitHub
Skip to content

Repository files navigation

History

Dingle is a word game that I brainstormed and created in Python while on my 2022 spring break at Boston College. I shelved it, until the summer of 2023, since I struggled to convert my Python code to JavaScript and look pretty with HTML and CSS. However, I eventually figured it out.

The retro-terminal look produced by the CSS file was something I wanted to create since I wrote the original game on Replit which has that look in its console. But, I was actually able to create it with a lot of help from the source code of the 'rataalada' website that was created when 'The Batman' was released. (You can the Wayback Machine to take a look).

I left the game to stew until late February 2024 where I was inspired to learn more about web development. This included diving into React since that is the most popular and current method for front end development. Of course, I didn't know how to use the React library so I had to study it until I felt that enough studying was enough and that I needed to just learn from experience and mistakes. So I went to a familiar project to do this, which ending up being this one. Turns out, I retained much from studying and learned much more about the actual structure and layout of React through practice. So, now the website is built using the React library.

Through using React, I was able to add other features that I had been wanting to include but couldn't figure out how to. I added a button that opened a notepad for the user (since the game can get difficult). I also added multiple levels so there are now options for 5-letter, 6-letter, and 7-letter secret words and localStorage handling for all of them. In the process, I also reconfigured the CSS to put all of these selections in a navigation bar in the header.

How to play

As you can probably tell, Dingle is heavily inspired by Wordle from its name to its goal. However, the caveat here is that a guess only informs you if the secret word has similar letter(s), instead of the position and which letter is similar. For example, if the secret word is "caveat" and you guess "apples," the game would return "2" since there are 2 similar letters between the two words — 'a' and 'e.' Similar to Wordle, the guess must match the length of the secret word, which in this case is 6 letters. There are no limits ot the amount of guesses, but obviously you want to get it done in as few as possible.

(P.S. it is advisable to get a little notepad or something since it can be easy to lose track of eliminated and guaranteed letters)

How it works

All the secret words are listed, in the order of their use, in an array in the 'sixletterwords.js' file. The word is chosen and updated every day based on the time. Each guess is checked for existence using an API and length otherwise an error message is printed out for the user. All valid guesses and progress is saved to localStorage so that we can limit 'cheaters' and whatnot. A win is recorded when the guess is correct and is tallied in localStorage. Other stats are saved in localStorage so that we can show them all when the user eventually wins.

To Add-on/Contribute

First and foremost, any contributions and/or ideas are welcome. Just because an idea is here does NOT mean that you HAVE to do ALL of it. Do what you can and are able to do.

  1. I think it would be cool to add some sort of leaderboard system whether its global or among friends.
  2. Any ideas and extensions that you might have, I'd love to hear.

Thank you

- Gio

About

Word Game project inspired by Wordle

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - gio-puter/Dingle: Word Game project inspired by Wordle · GitHub
Skip to content

Repository files navigation

History

Dingle is a word game that I brainstormed and created in Python while on my 2022 spring break at Boston College. I shelved it, until the summer of 2023, since I struggled to convert my Python code to JavaScript and look pretty with HTML and CSS. However, I eventually figured it out.

The retro-terminal look produced by the CSS file was something I wanted to create since I wrote the original game on Replit which has that look in its console. But, I was actually able to create it with a lot of help from the source code of the 'rataalada' website that was created when 'The Batman' was released. (You can the Wayback Machine to take a look).

I left the game to stew until late February 2024 where I was inspired to learn more about web development. This included diving into React since that is the most popular and current method for front end development. Of course, I didn't know how to use the React library so I had to study it until I felt that enough studying was enough and that I needed to just learn from experience and mistakes. So I went to a familiar project to do this, which ending up being this one. Turns out, I retained much from studying and learned much more about the actual structure and layout of React through practice. So, now the website is built using the React library.

Through using React, I was able to add other features that I had been wanting to include but couldn't figure out how to. I added a button that opened a notepad for the user (since the game can get difficult). I also added multiple levels so there are now options for 5-letter, 6-letter, and 7-letter secret words and localStorage handling for all of them. In the process, I also reconfigured the CSS to put all of these selections in a navigation bar in the header.

How to play

As you can probably tell, Dingle is heavily inspired by Wordle from its name to its goal. However, the caveat here is that a guess only informs you if the secret word has similar letter(s), instead of the position and which letter is similar. For example, if the secret word is "caveat" and you guess "apples," the game would return "2" since there are 2 similar letters between the two words — 'a' and 'e.' Similar to Wordle, the guess must match the length of the secret word, which in this case is 6 letters. There are no limits ot the amount of guesses, but obviously you want to get it done in as few as possible.

(P.S. it is advisable to get a little notepad or something since it can be easy to lose track of eliminated and guaranteed letters)

How it works

All the secret words are listed, in the order of their use, in an array in the 'sixletterwords.js' file. The word is chosen and updated every day based on the time. Each guess is checked for existence using an API and length otherwise an error message is printed out for the user. All valid guesses and progress is saved to localStorage so that we can limit 'cheaters' and whatnot. A win is recorded when the guess is correct and is tallied in localStorage. Other stats are saved in localStorage so that we can show them all when the user eventually wins.

To Add-on/Contribute

First and foremost, any contributions and/or ideas are welcome. Just because an idea is here does NOT mean that you HAVE to do ALL of it. Do what you can and are able to do.

  1. I think it would be cool to add some sort of leaderboard system whether its global or among friends.
  2. Any ideas and extensions that you might have, I'd love to hear.

Thank you

- Gio

About

Word Game project inspired by Wordle

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages