Scrabble
An intuitive experience for a desktop game.
category
date
technologies used
Java, Java Swing
This is a desktop game written in Java using Java Swing for GUI. Professors selected this project from among 400 as "above and beyond" expectations because I was focusing on creating an intuitive experience using my unique predictive algorithm and designing a minimal, modern UI. Professors singled out as “above and beyond” their expectations, in a class of over 400.
Predictive Algorithm
I felt this desktop game needed a new approach to user experience- it doesn't feel right using click-and-drag methods like you would with your finger in a mobile app, as it would be cumbersome and frustrating when using a mouse.
My solution: Moves would be played simply by typing the word. I developed a predictive algorithm that finds all possible valid placement locations for the word in real-time. This algo also incorporates blank (wildcard) tiles in predictions, and is instant (checks tens of thousands of words).
I realize now, I could have made CPU opponents with this algo. Missed opportunity!
Because of the predictive algorithm I created, I was able to make two unique gamemode experiences, a fast-paced Casual Mode and the traditional Classic Mode.
CASUAL MODE
This mode is my favorite because it's so fun. In this mode, all possible locations for the typed out words are shown to the player, often resulting in surprisingly educational moments by discovering new words as you type.
Classic Mode
This mode mimics the traditional Scrabble experience. The predictive algo's results are hidden from the user, and are only used as a validator for incorrect word spellings or placements. By using this algorithm and the ability to type-and-place, I've created an intuitive desktop experience unlike any I've seen in other Scrabble implementations.
Simple. Clean. Minimal.
The design was meant to complement the simplified user experience with a simplified, clear design that combines the traditional board with a spaced, modern desktop UI. Buttons are clear, colors are of a soft pallete, tiles are physical-looking and text is large and legible.
Production Screenshots
View the source code
Download the .jar