There’s been quite a bit going on with Blocku the past few weeks, so let’s get started:

Milestones and Goals

Here’s the abbreviated milestones and goals from our presentation to the Rochester Pythonistas on 10/14.


  • To produce a fully functioning prototype by week 10


  • Have blocks snap to grid – Week 6
    • Each block of the grid is now its own object. This lets us have the blocks snap to individual grids, making it much easier for the user to position their answers.
  • Blocks w/ answers generate on their own – Week 7
    • The game can generate a board based on an answer and the length of one side of the square (currently, addition only).
  • Working on teacher editor – Week 8
    • A .net application that lets teachers create their own game boards for students to play on XO.
    • Cross-platform compatibility: The created boards are simple text files that work everywhere.
  • Game completion logic – Week 8
    • Two types of solution checking:
    • For a randomly generated grid, the game will check all of the blocks to make sure they add up to the correct answer.
    • For teacher-created boards, the game will check the blocks’ original position to make sure the board has been completed as to the teacher’s specifications
  • Block rotation & basic menu functions – Week 9
    • Main menu allowing navigation of start game, instructions, load random, or load teacher board.
    • Design and implement a system for rotating individual blocks with the mouse
  • Game modes & Sugarizing – Week 10
    • Implement different game modes:
      • Normal – User has unlimited time and unlimited moves to solve the puzzle
      • Time Attack – User has a limited amount of time to complete the puzzle
      • Puzzle Mode – User has a limited amount of moves to complete the puzzle
      • Adventure Mode – Teacher can create multiple game boards and link them together, and the students will follow the teacher’s path. This allows the teacher to come up with a whole lesson plan within the game.

Division of Labor

  • Matt – UI Design and Game Logic
  • Kai – Usability and User Interaction
  • Lorin – Documentation and Game Organization


At the moment, Blocku doesn’t really have an interface. I mean, it obviously has an interface, but it’s not really a good one. The game doesn’t have a defined art style yet either. Below are the first drafts of what Blocku might look like once it’s complete.

The first image is the title screen, what the users will see when they first open Blocku. The buttons are large in order to make them easy to hit on the XO.

The second and third images are what the board could look like. I tried to use bright, distinct colors for the board. This will hopefully help attract the kids’ attention more easily. The blocks are also easy to distinguish even if the user is black/white color blind. The screen has room for a timer and a score counter if desired – these would probably be placed in the upper corners.

The third image is what the game would look like when the user finishes a puzzle. The idea here, as with the rest of the design, is to make it as easy for the user to understand what is happening.

State of Blocku

When we inherited Blocku, there was very little in the game. And by very little, I mean there were two blocks that spawned on the screen. And you could move them.

At this point, I’ve written an algorithm to randomly generate a board based on an answer and the length of one side of the board. For instance, if you call GenerateAddition(3, 10) a list of blocks will be returned that form a 3×3 board, where adjacent numbers have to add up to 10.

Next up is the game completion logic. As noted in the milestones above, we’ll have two types of solving.

The first is for when the board is randomly generated. In this case, the game will loop through all of the blocks, and check to make sure that adjacent answers add up to the correct answer.

The second is for when a teacher creates a board. Since the teacher might want the students to do more than simple addition or multiplication, Blocku will have an editor which will allow them to create boards that fit their curriculum. A teacher could, for instance, have adjacent answers fit the form ((x^2) + (1/3)(y^3)) = 44 (OK, that might be a bit advanced for 4th graders, but you get the point). To avoid having to worry about the exact form of the answer the teacher wants, the game will check the position of the blocks. When the teacher creates the board, the editor will save the original positions of the blocks. When loaded into the game, the board will have grid spaces at those positions, allowing us to ensure that the blocks are in the exact position they are meant to be when we check the board. When the user then hits “Check Answer” the game will check the current position of the blocks against their original positions, and report back whether or not the board is solved.

Work has already begun on this part of the project, and we’re hopeful that it will be done by the end of the week.

Blocku Editor

As mentioned above, Blocku will come with an editor. The editor is only about 30% complete at this point – I’ll have more on that in a post in the near future.

Work for this week

This week will be spent (at least for me) on the Editor. I’ve put about 15 hours into it this weekend, and it’s off to a good start. Another 10-15 hours during the rest of the week and it should be completed.