End of semester project/challenge



If you’ve selected to work on the CodingBat ladder for your final project, head over to Notyhp.


If you’re going to work on a game, keep reading:

  • For this project, you will choose one of the small games listed below and build it in a code spell.
  • You may choose to use The Machine (scratch) or raw code (python), or any language the Loremaster can run.
  • You have two periods in which to write it, May 23rd and 25th.
  • At the end of the period on May 25th, whether you consider your code finished or not, email your code or a link to your scratch project to
  • I will let you know when there is only 10 minutes left, and 5 minutes left, so you can clean up your code before turning it in.

The Checklist

D I turned in something that looked like code.  It might someday do what it was supposed to do, but it needed a lot more debugging.  I didn’t even note or comment on which problem I was trying to solve.
C My code runs.  It might not do everything it was supposed to do, but it will execute and do at least some of what it was supposed to do.  My code includes at least one loop or one conditional.  I commented or noted which problem I was solving.  I did not provide instructions for the user, or provided confusing or inaccurate instructions.
B I turned in code that runs.  It does what it was supposed to do.  It includes at least one loop and at least one conditional.  I commented or noted which problem I was solving.  I provided clear instructions for the user.  If I used a language with multiple current versions, like PYTHON, I indicated which version I used (eg: 2 or 3, for Python).
A My code runs and does what it’s supposed to do.  It includes loops and conditionals. It’s cleanly formatted and easy to read. I clearly commented it so it’s easy to understand what my code does, which problem I was solving, and which language & version I used.  I provided clear instructions for the user.  My language, punctuation, spacing, spelling, etc. is all proper.  My code gives the user a chance to play the game repeatedly, or exit, each time they finish a round.

The games

Simple (Max B)

  • A choose your own adventure story

    From the hilarious XKCD

    Present a bit of storyline, then give the user a choice, then present a bit more storyline, then another choice, and so on until the end of the story.  To be acceptable, this must be a fairly decent length story with several possible branches.  It may be helpful to plan it out using twine before you start coding.

  • Knights and Knaves
    In this game, you are presented with two doors.  One leads to freedom, the other to a hangman.  You don’t know which is which.  You must choose one door, then you receive your reward. ( In a somewhat more complicated version, there is a guard at each door.  One guard always tells the truth, the other always lies.  You don’t know which is which. )  We’ll leave the guards out for now; just program the doors->choice->reward sequence.




Middling Challenge (max A-)

  • Bracket
    In Bracket, the player starts out with 100LE.  They are dealt two cards, face up from a standard deck (A,2,3,4,5,6,7,8,9,J,Q,K).  The player may bet (or not) based on whether the next card will be between the two they already have. One final card is dealt; if it’s between, they win and are paid an amount equal to their bet, if not, they lose the money they bet.  Stop the game if the player loses all 100LE or if they get to 200LE.  (Note: you’ll need to know how to do random selection in order to program this one.)


  • noun_gold_127202Brabeum
    This lovely game starts with a pile of brabeum (loot). You and your opponent (the system, in this case) each take turns taking a number of brabeum from the pile (minimum is 1, maximum is 5).  The last person to take a brabeum from the pile loses.  It’s possible to program all kinds of different algorithms for the computer to use as it’s game strategy AI.  Example play:

    System> The pile of brabeum is ready.  There are 26 pieces.  How many do you take?
    User> 6
    System> Sorry, you can only take 1 - 5 pieces.  How many do you take?
    User> 4
    System> I take 3 pieces.  There are 19 pieces of brabeum left.  How many do you take
  • Nullo uno gogo
    This clever little game involves the system picking a 4-digit code (lowercase letters from a-z).  The player attempts to guess what it is.  For each answer, the system responds with: UNO (a letter is correct, but is in the wrong place), GOGO (letter is correct and in the correct place) or NULLO (no letters correct).  A sample bit of gameplay might look like this (the computer picked ” r l o b ” as the number:

    System> I picked a 4 letter code.  Can you guess it?
    System> UNO
    System>Guess #2?
    System> UNO
    System>Guess #3?
    System> GOGO, GOGO

Top challenge

  • Cube
    Cube is played on the facing sides of a cube with side dimension of 2.  A location is designated by three numbers–eg: 1,2,1 (depth to the right, width to the left, and height).  The object of the game is to travel from 1,1,1 to 3,3,3 by moving one horizontal or one vertical square (ie: orthogonally not diagonally) at a time without striking one of three randomly placed land mines.  The round is over if you hit a mine or try to make an illegal move (eg: try to change more than one digit from your previous position, or move off the cube).

    System> The cube is ready. You stand at 1,1,1. Your move:
    User> 1,2,1
    System> BLAMO! Oh, dear. You stepped on a land mine.  Play again?
    User> Y
    System> The cube is ready. You stand at 1,1,1.  Your move:
    User> 1,2,1
    System> You stand at 1,2,1.  1 move.  Your move:
    User> 1,2,2

High School CTF (Capture the flag) competition coming up

The HSCTF, or High School Capture the Flag, is coming up in May.  If you liked Bebras, or EasyCTF, or if the Secrets and Tsin quests are intriguing, you might like the HSCTF, too.  You can check out the details now, practice problems will be released in April, and the competition will begin in May.  They’ve already posted sample problem on the front page of the website.

If several of you are interested, they are offering Skype sessions to orient and prepare groups to participate; we could organize a chat with them (though the timezones might pose a logistics problem).


You should investigate this oneScreen Shot 2016-02-22 at 21.27.46 on your own time – it’s not really for class time.  But I thought you’d like many of the jokes on this page.  If you don’t get some, you may not yet have run across the programming or the language scenario that makes that joke funny.  Come back in a few years or when you have more experience (bookmark this page so you can!) and it’ll probably be funnier.

Skip to toolbar