// Game Programmer
Explore the world while solving crossword puzzles!
Crossworld is a unique spin on the old crossword formula. Instead of word clues, you must examine your surroundings using Google Street View to find the right word on the crossword. In this new twist, your eyes, examination skills, and knowledge of historical landmarks, monuments, and cities will be the keys to success!
How It Works:
Select from a variety of different puzzles, including U.S. cities, riddles, and global landmarks.
- Given only a small hint, you must decipher where you are in the world!
If you need further help, buy a hint or letter.
Customize the way you play!
Crossworld was among the last of my projects in university. The class prompt was to code a crossword puzzle on an IOS device with a twist. My answer was utilizing Google's Street View as a way of giving hints. Instead of the usual word clue, players must figure out the word in the puzzle through observing their environment.
Click the buttons below to learn more about how I implemented the core features of Crossworld!
Let's begin in the backend. Below you'll see the variables I used to save a snapshot of a particular crossword puzzle. The puzzles themselves are objects. The save system I set up allows the user to play a puzzle part way, quit the game, and then resume where they left off:
Puzzles are organized into categories. They range from guessing U.S. cities and states, to even solving riddles. I personally designed and hand-crafted the puzzles themselves. When player selects a puzzle to play, the program starts by first reading puzzle data in a txt file. The first few lines of the txt data notate the actual structure of the crossword. If you notice, the (#) inform the program that the word starts at that cell location. The second half tells the program of word's meta data (including coordinates for Google Street View to locate).
But how is the data read in from this txt file exactly? When the player selects a level, this script will take in all the information from that txt file and store it in a grid.
The code snippet below details the process of collecting the words and storing them into objects with meta information:
After the information has been read in, now it's time to present it so that the player can interact with it. Xcode allows developers to dynamically create new grid cells. I stored the value of each letter inside each one of these cells, along with a layer that senses player touch:
Once a player starts typing, the game must keep track of whether or not the word has been spelt correctly. The function below shows how I accomplished this.
Implementing Google's Street View API into my game was a painless process. After hooking up the API key to my .info file, I was able to seamlessly transition into a full screen Street View process. The image below shows how I segued into that page:
The page itself contains the import to the GoogleMaps library, as well as adView to support advertisements. I also take the coordinates from the current word and plug them into Street View:
The user interface is rather simple and intuitive. It allows customization over whether you skip words, toggle music, etc. I used the default keyboard setup Xcode uses in its UI, but modified it to only allow capitalized letters. Once a player taps a cell on the crossword, the below code runs. Essentially, it finds the word attached to the cell and allows the user to type in a letter. There's a neat option that allows you to switch between across and down just by tapping a cell twice.
Next, after a player has entered in a letter, the game automatically transitions the focus of the keyboard to the next available cell in the word. If we're at the end of a word, it checks whether or not it is correct, then it moves onto the next word's starting cell.
There's two additional buttons that allow the player to skip to the next or previous word. The below code allows them to perform that action: