Show HN: Spindle, a cross between Wordle and a Rubik's Cube made in PHP
65 points| abbm | 2 years ago |playspindle.com
I was late to wordle, so I am also late to making my own version.
In Spindle, you rotate words on a grid with the aim of assembling the day’s target word. I enjoy it, so I thought some of you might enjoy it too.
From a tech perspective, it’s a very simple Laravel / Livewire app. My happy place in recent years has been Typescript and SvelteKit, so this was a bit of an adjustment, but it allowed me to take advantage of an existing shared hosting server meaning no additional financial outlay. Happy to report a positive experience with PHP and this framework, although I do miss types! Deploying with rsync feels enjoyably old school.
(I gather PHP does have types now, but perhaps I’m using the wrong IDE or need a specific VS.Code plugin…)
Very happy to answer any questions, although I’m the first to admit it’s very simple from a tech perspective. Your guess at how it was implemented is probably a better solution than what I actually did :)
Happy holidays all!
HuoKnight|2 years ago
A more out-there suggestion would be a replay (either on the puzzle itself or as a gif) of all the moves you made. Could make it more interesting to share with friends.
abbm|2 years ago
tcmb|2 years ago
First of all, I need to 'spin', but how do I do that? By clicking, dragging, typing...? Any or all of these? And if so, clicking/dragging what?
And what is it that is being spun? Rows, columns? Apparently it's words, but that is mentioned nowhere.
Second, in the 'How to Play' there are these two examples: > For example, you could spin CAT to obtain TAC. > You can also spin in reverse, so you could spin TAHC to make CHAT
I don't see the difference between these two, both reverse a word by 'spinning', so why are these two seemingly identical examples given here?
bionsystem|2 years ago
By rearranging existing words on the grid you can map new words including the "target" word. It's actually pretty hard I find...
theogravity|2 years ago
furyofantares|2 years ago
A simple thing you can do when they try to make an invalid spin is pop up "XYZ is not in the word list" on a brief toast. That'll make it easier to learn that you need to spin words, and that you have to click the first letter first.
eps|2 years ago
It would help to have an unlimited undo in a dedicated button. I realize that the undo can be done by spinning words in reverse order, but that's inconvenient and I really wouldn't remember what I did beyond last 2-3 words.
abbm|2 years ago
abroun_beholder|2 years ago
After checking back here a few times I eventually got that I could only spin valid words but they were hard to find so I ended up relying heavily on 2 letter words to reach my final score of 35. Assuming that you support valid Scrabble 2 letter words https://scrabblewordfinder.org/two-letter-scrabble-words you end up spinning words that sound like gibberish most of the time so it seems a bit arbitrary when you can't spin titles like Mr or Ms. :P. Perhaps allow a few free spins to help people unblock the board? Or allow people to skip past problem letters every now and then so that they can spin longer words?
All the best with further development!
MilnerRoute|2 years ago
The instructions could use maybe a few examples on how to make a move -- but I figured it out. The game is tough and challenging, but it's really satisfying when you make progress. Well done!
abbm|2 years ago
spuz|2 years ago
abbm|2 years ago
So if you had a row like AEBUG, you could tap B then G to spin BUG, and the row would end up as AEGUB. Or you could tap B then E to spin BE, and the row would end up as ABEUG.
(Because BUG and BE are both real words)
blowski|2 years ago
Symfony, the other big PHP framework, has a lot more to offer if you like types. It also has a combination of Encore, Stimulus and Twig to link the backend to the front, but it doesn’t have the features of Livewire.
kgdiem|2 years ago
It does! In PHP fashion, checks done runtime and there’s no compile step to check your code. Can be quite a trip!
I picked up laravel again recently it’s let me work at a feverish pace, love it. Happy to see you were able to get something shipped with it as well.
nextaccountic|2 years ago
and why can't I spin more than 2 letters?
abbm|2 years ago
pixxel|2 years ago
Personally I find this game too difficult to be pleasurable. It’s like the difference between playing an easy-medium sudoku and a real hard sudoku. The former is relaxing whilst the latter is frustrating, time consuming and requires 100% concentration.
I like to relax while playing games :)
I am intrigued and will return. Perhaps it’s a skill to learn.
Best of luck and congratulations on the release.
pierrec|2 years ago
Spoiler:
At the end, it shows you a graph of how many turns people took to solve it, and if I'm reading it correctly, only 30-ish people solved it at all, despite being on the front page of HN for 2-3 hours? Definitely on the harder end of wordle derivatives! And I bow down to whoever solved it in 9 turns.
abbm|2 years ago
PS: I solved it in 8 today, and my friend - who seems unnaturally good at this - solved it in 7. He always seems to beat me by 1; it’s like if the person who invented golf was best mates with Tiger Woods!
nextaccountic|2 years ago
I'm curious to see how people did with so few turns
Also I would like an undo or at least a reset button
Vuska|2 years ago
PHP does indeed have good support for types now. Laravel as a framework generally eschews them, but it's flexible enough to make it developer preference really.
abbm|2 years ago
EDIT: https://github.com/clarewolftrust/spindle (but definitely take it with a grain of salt!)
It is literally my first php project in years, though, and first Laravel project ever, so might not be the best educational reference!
danielrw7|2 years ago
HuoKnight|2 years ago
unknown|2 years ago
[deleted]
noman-land|2 years ago
pjm331|2 years ago
jackstraw14|2 years ago