Show HN: Can you beat my dad at Scrabble?
dadagrams.com
dadagrams.com
And the information you provide below is good (it provides a bit of "braggy" info without giving the answer away) but I would make it more conversational, e.g., "I beat Dad!" and then "I beat Dad again!" and then "I'm on a roll... I beat Dad 3 times in a row!" and add a call to action like "Can you beat Dad too? Try here: https://dadagrams.com".
The "Dad" emoji is chef's kiss. Definitely keep that in the share message.
For reference, here's the current share message (minus the great emoji, which apparently HN does not support):
#dadagrams14
Today: Won by 2 points
All time: Winning by 2 points
Daily streak: 1
They're using the "Wordle" share method which worked insanely well, precisely due to the fact it didn't try to share with facebook or anything annoying, you just copy paste into an IM client
We've been playing scrabble together for years so it's nice I'm finally competent enough to code this online version.
I posted it on reddit and now over 1000 people are playing against my dad everyday haha.
My only gripe is: any time you click away from the tab, when you click back to it it resets the screen (shuffles the pile and clears any letters you had placed)
The reason it was there is some days I opened the tab on my iphone and for some reason it still showed the yesterdays result rather than the new day's letters.
Will have a think of a better way to force the refresh of the letters on a new day.
This'll be the Cache-Control header interacting with tab resume: rather than setting that to expire after X time has elapsed, set it to expire at time=T, and the browser will¹ fetch the new page instead. You'd increase the effectiveness of this technique (and reduce your bandwidth requirements for repeat players) if you made `/daily` a static page, and factored out those JavaScript variables into a separate file, fetched with `fetch` or `XMLHttpRequest` (or even a `<script>` tag, like `wordlist.js` is).
If I've configured my browser to behave otherwise (e.g. it takes me longer than a day to solve each puzzle), I really don't want it overriding that and resetting on me: that would make me very sad.
¹: usually. Firefox Session Restore behaves differently – but that's expected behaviour. Every website ever behaves like that: it's what I expect, because I expect to be able to close my browser and open it again and still have more-or-less the same pages available. After all, I've got a refresh button, but no un-refresh button.
- could be nice to have it calculate and show the score of the word you have currently placed
- when you place a tile on the DL or TL you can't see where the DL and TL are any more (I think on Scrabble board they have little triangles that stick out past the edges?)
- I found myself wanting to know the 'target' score, but I guess that would change the experience a bit
(I don't know if you are aware, but in French speaking countries, competition are mostly played this way, everyone with the same letters. At the end everybody got its own points and the best word is placed on the board)
Wow no I didn't know that is how the french play. I believe it is a much fairer version of the game and better tests the players skill
So what I'm about to say is not specifically a knock against your game.
What I've noticed lately on HN is this weird split where everything has to either be super basic - like, this game could have been literally written with BASIC in 1984 - or else it has to be an abstract conversation about the future of AI. With very little in the middle.
What would be in the middle? I don't know, like, games that people spent a couple years making. Things with awesome graphics. Or small games that showcased interesting new game mechanics. The rise (resurrection?) of the one-shot HTML game, I get it, it's a rebuke of all the overly complicated stuff. Concept over execution. Wordle got bought up, right? But aren't we already on the long tail of that?
Again, this is not a knock - this would be fun to make in spare time, and it would be fun to play if I had spare time. I'm just wondering why there's this decisive move away from tacking up things that took a long time to make. And I'll be willing to sound bitter: For example, I posted a project here not too long ago that I worked on for a year. It was too complicated or posted at the wrong time. I have several others that are more sophisticated, that I know now are just too much for anyone here to look at and upvote.
On the other side, discussion (practically worship) of higher-level usage of enormously complicated things like GPT seem to drastically outpace discussion of the underlying mechanics.
If every little piece of code you put on the internet is a card trick (and it is) then this is a forum about magic, and we should stop being proud that we can do a trick, and start talking about how tricks work and how to make them better.
One similarity is: both don't take too long to create. The AI it self might, but the thought about it don't
That's what I've been noticing, and why I gravitate toward those comments about AI which are like, "have you thought about using an if/then for this thing?"
I wonder what would happen to the quality of discourse on HN if there wasn't a scorecard at the top of each screen.
The "gamification" of everything is so 2010.
If you do a bit of knitting that is obviously an amateur's attempt, people will say "wow, so cool that you can knit". When you work hard and get better at knitting and you produce stuff that is so good that it's commercial-product quality, people will say "what's the point in spending all that time and effort when you can just buy one?". Only when you become so good at knitting that your output is of a quality that is not generally available commercially do people find it interesting again.
Replace "knitting" with anything you like: programming, painting, woodworking, welding, electronics, 3d printing, pottery, basket-weaving, card tricks, ...
People are interested in things that seem cute and homemade. They're interested in things that are better than anything they've seen before. They're not generally interested in the mediocre middle, even when it has been created by 1 person who spent a lot of time and tried hard, rather than by a faceless megacorporation.
EDIT: I think I did the faceless megacorporations a disservice there. Faceless megacorporations also make high quality products through the hard work of their employees, they just do such a great job, and they mass-produce so efficiently, that the products end up inconceivably cheap and we take them for granted.
Actual advice from black people to other black people not to work on your accent.
Having a bad accent might help you sound like an enthusiastic tourist though; Americans start off with pretty bad pronunciation, Spanish/Italian/Finnish are closer and people might think you're fluent.
Browsing BoingBoing in the 2010s, the maker-themed posts that gained traction were projects that were essentially structured as: An over complicated _______ but it’s actually a simple ________. For example, ‘a 3d printed diy wrist mounted display that actually only shows yesterdays’ tweets”.
In some ways today’s pattern of projects being either very complicated or very simple is a distillation/separation of the earlier pattern.
It’s different playing with something that someone built because they wanted to build it and it was fun, rather than them having some sense of commercial gain. See: indie games.
Also, the real underlying reason why I started was the technical itch I wanted to scratch - it's been done so many times by so many people that I don't think it would be particularly interesting at this point.
I suppose there are more people like me.
So I pivoted, and eventually made money, not from selling a game, but from developing tutorials about digital lighting. I was also able to contribute to a project at work that was making a product based on a commercial games engine, not by actually coding it, but by helping to better estimate the costs of the asset generation required.
Coding Unity object scripts in C# also got me back into programming, and I went on to successfully build a self-hosting lisp interpreter following the Make a Lisp guidelines [0].
[0] https://github.com/kanaka/mal/blob/master/process/guide.md
[0] https://www.daz3d.com/killer-lighting--lighting-for-photorea...
- People who make small simple things and put them on HN
- People who make bigger nontrivial stuff
The latter stuff also shows up on HN but less often because the amount of time spent making is so much more, like if something takes 3 years it's a single Show HN and if it takes a day to make it's also a single Show HN. Also note that a decent blog post takes about as long to make as a basic game, ie "thought leadership" is in box 1.
The people working at OpenAI and related are empathically not spending all their time doing Show HNs, nor even blogging on the AI future. They're actually making stuff, just like indie gamedevs or the average Microsoft employee. They're all in box 2.
Lots of people are doing nontrivial stuff all the time, but most of it isn't big enough for other people to write blog posts and huge HN comment threads about, yet also not small enough to make a new HN submission every few days.
Not sure if that explains your observation or not, but at least it’s what attracts me to engage with a submission like this.
Like many people here I have a full time job writing software. Most of the time I get home and don't really want to sit at a computer for a bunch more hours working on a side project. But a few times a year I get super inspired or have an acute need and will spend my spare time working on a game, or a small project or something like that. Inevitably I lose interest after reaching the 'alpha' phase of the project (or sometimes even failing to get there). At that point I sometimes want to share the project with others, but I won't usually continue working on it.
I think this may partially explain your experience.
I don't think I've ever seen a youtube video get to the front page of HN, and that seems the easiest way for me to broadly communicate all that I've put into it. Some part of me thinks a medium post about it or whatever just wouldn't make sense. I want to present what you're hungry for, haha.
Cheap stuff is easy to churn out -> low chance of success, x many shots
Expensive stuff costs a lot to be the best, and gets big payoff.
Middle-tier stuff costs too much for its benefits.
Ironically I just launched a new word game today so we'll see if it makes the front page! https://news.ycombinator.com/item?id=35184884
I like your game for what it is, but anchoring it to Scrabble confused me a bit when I first played. It was missing a couple of keys aspects for me:
1) Bingo bonus (+50 for using all of your tiles)
2) Optimizing your tileset so that future turns have a better chance for a bingo.
Also, minor nit: the colors for the letter multipliers (purple and red) in your game also confused me because in Scrabble the red x3 is a word multiplier and not a letter multiplier. You could consider using light blue and dark blue if you want to align to the traditional game.
One nit, the letters could snap the grid a bit more aggressive, I found I frequently had letter “miss” the grid and have to drag them again (on an iPad).
How much do you think will his dad make at NYT?
Case in point: my language doesn't really have a word for "almonry" - there's usually no dedicated space for collecting/dispensing alms.
By far the best Scrabble player I ever encountered was a former corporate drone in his 50s, who hiked 40km+ daily in the Carpathians and was in charge of maintaining a mountain shelter there.
When he wasn't out hiking, chopping wood or collecting water he would be sitting in the common room absolutely dominating the Scrabble board. I don't know his story and he didn't talk much about himself, but with age I increasingly get the appeal of such a life.
From [1], they seem obsolete well before any colonization, so it's probably only British people with an interest in church history.
"Alms" is already fairly obscure, [2] puts it at word frequency 44625. Almonry is not in the top 333,333 words.
For instance, today's top words:
Obvert - I know this one but it isn't too common.
Overt - This was my answer, it's not uncommon.
Over - Common
Evo - I've never seen this used as a word other than a name.
Bevor - Apparently this is medieval neck armour. Uncommon.
Ouvert - From ballet according to the internet. Uncommon, although I know it as a French word.
Note this isn't the game's fault, they're all in the scrabble dictionary it's using. These words are only useful if you want to win scrabble, not if you want to speak English.
I'd change up the UX a bit.
1 - For the drag and drop, I'd keep the original letter in place, and just make the original slightly transparent as you drag. Reason being, as you drag on a phone you can't see the original letter since your finger is on it... so leaving the original as an indicator is good.
https://master--5fc05e08a4a65d0021ae0bf2.chromatic.com/?path...
2 - For the drag and drop, I would add a a "drop indicator" as you mouse over each square.
https://master--5fc05e08a4a65d0021ae0bf2.chromatic.com/?path...
3 - For things like "Triple Letter" I would change it up... "x3" -- I know you're going for "Scrabble" but frankly the text is a bit small for older people, who I think make up the "Dads" in your audience.
4 - Instead of "Delete" I would change the word to "Recall" for recalling letters you placed on the board.
5 - For the Colors I would go more vibrant.
6 - For font sizes, bigger is better. https://imgur.com/a/kduZzwl
7 - For buttons, I would suggest having different colors for different buttons. Having them all black means you have to read through them all... having one as a clear "primary" color helps.
Feature that is missing vs actually playing Scrabble is the ability to play a fake word if other players do not call you out on it.
I wonder if you could find a list of common misspelled words or fake words to allow, or could have some logic that compares the percentage word is misspelled by, and have the computer call it out as fake if it is over say 25% misspelled or something.
Two suggestions, you need to put an actual URL in the "share" text in the clipboard. With https:// before the domain. It's so that people can click the link on instant messaging platforms for viral traffic
Then, I need some dad lore
You are a scrabble word master. The rules of the game are as follows. -- Create the highest scoring word you can with the 7 letters! The word must start in the first square of the board and be at least 2 letters long. 2x and 3x squares double and triple the value of that letter. The total points for your word will appear above a valid word.
The letters to point values are represented as a string where the point value follows the letter --- E1R1B3U1O1V4T1
The second square is 3x points, the fifth square is 2x points and the 7th square is 3x points.
The word must be a real english word. Lets think step by step.
It seems buggy in several places. First, sharing doesn't work for me at all. Nothing ends up on my clipboard, WhatsApp messages are empty, etc. I'm using Firefox Nightly on Android. Second, I think my opponent when playing the computer skipped a go, since their score didn't increase on one turn and their played word didn't change.
If you can get sharing working I'll be playing this regularly :)
Or... perhaps allow starting on any tile to try and arrange letter scoring optimally? That might add something as well.
Will have a think how and if it should be more weighted
Edit: 27, not 24. Another useful thing would be the ability to view the puzzle and your answer. I had to reverse engineer the squares from the possible scores. :-)
There are words in OSPD (ex. fab) that aren't accepted. It also accepts words (ex. oonts, accas) that aren't in OSPD.
Can you tell I tried it, um, several times? It's fun.
Also, I wrote this in seconds and I know it could be more efficient / cleaner. don't @ me.
Toss this in your browser's dev console to get the best word available for each puzzle instantly
function solvePuzzle(puzzle, words) {
const letters = {};
puzzle.forEach(l => {
if (!letters[l]) {
letters[l] = 0;
}
letters[l]++;
});
let best = '';
words.forEach(word => {
if (word.length > puzzle.length) {
return;
}
const has = { ...letters };
for (let i = 0; i < word.length; i++) {
if (!has[word[i]]) {
return;
}
has[word[i]]--;
}
if (word.length > best.length) {
best = word;
}
});
return best;
}
// lettersarray and wordlist are both globally available
solvePuzzle(lettersarray, wordlist);I'm @ing you :) This code only checks for the longest word, not the highest scoring word. It neglects the x3 and x2 tile spaces.
nit: I found the sentence "you found the nth highest scoring word" a little confusing since there can be >n words with a higher score (e.g. there could be 6 words scoring 12 and you found the 2nd highest scoring word with a score of 11).
Hmm yes what do you think could be a better way? Just the number of points?
Other nits:
- Gray the submit button until the word is valid, otherwise it's unclear why clicking on the submit button doesn't do anything.
- If you are trying to find a word and switch tabs, things get reset when you come back.
- If you place tiles forming a word, a space, random tiles: you can submit the first set of letters. IMHO, it shouldn't let you submit if you have spaces between tiles.
- Display the best word I have found so far, but let me keep trying other tiles.
The important thing is not that there are 6 better words, but there is 1 better score (i.e. you got the second best score possible)
But also you have to start on the first square
- You don’t have to use all letters.
- You do have to start the word all the way to the left.
- It has to be a valid scrabble word before you get any feedback at all.
I think you should try to give much more feedback when the player tries different things, so they have a chance to figure out the rules.
It's also the "newspaper puzzle" version of Scrabble, that your Dad played when he was a child.
ROT13: Pheeragyl gur irel orfg jbeq vf boireg sbe na nqqvgvbany cbvag.
Terccvat /hfe/funer/qvpg/jbeqf V qb abg frr nalguvat orggre.
Each letter has a number on, that's the score for using it.
DL and tl are double and triple letter tiles respectively. You get double or triple the points.
I'm not sure if they added it but in the real game you'd get 50 bonus points if you use all your letters.
https://en.m.wikibooks.org/wiki/Scrabble/Rules
A simple search on your search engine of choice would have yielded the answer.
Is this what you were looking for?
Don’t normal scrabble words preclude foreign words?
http://norvig.com/ngrams/ says it's the 28462-most-frequent English word, slightly more frequent than pronounce, lactating, aquamarine, sedimentation and slime.
We don't really like wordle but this is super fun!