Older Version Newer Version

bradmoore bradmoore Mar 30, 2009

=<span style="color: black; font-family: Arial;">Graphic Farkle Contest </span>= <span style="font-size: 10pt; color: black; font-family: Arial;">Farkle is a dice game that has also been called Zonk, Zilch, Wimp Out, and Hot Dice. <span style="mso-spacerun: yes;"> </span>Its origins as a folk game are unknown.<span style="mso-spacerun: yes;"> </span>Farkle is played by two or more players, with each player in succession having a turn at throwing the dice. Each player's turn results in a score, and the scores for each player accumulate until someone reaches 10,000. </span> ==<span style="color: black; font-family: Arial;">The Contest Goal </span>== <span style="font-size: 10pt; color: black; font-family: Arial;">Create a **<span style="font-weight: normal; font-family: Arial; mso-bidi-font-weight: bold;">graphic based implementation of the game Farkle.<span style="mso-spacerun: yes;"> </span>The game should support two or more players.<span style="mso-spacerun: yes;"> </span>Ideally the game should implement some form of AI for computer players, but this is not a requirement to actually win.<span style="mso-spacerun: yes;"> </span>The winning entry will exhibit the following traits: </span>**</span> **<span style="font-weight: normal; font-size: 10pt; color: black; font-family: Arial;">1)</span>****<span style="font-weight: normal; font-size: 10pt; color: black; font-family: Arial; mso-bidi-font-weight: bold;"> Easy to understand game play </span>** **<span style="font-weight: normal; font-size: 10pt; color: black; font-family: Arial; mso-bidi-font-weight: bold;">2) Clean, efficient graphic user interfaces </span>** **<span style="font-weight: normal; font-size: 10pt; color: black; font-family: Arial; mso-bidi-font-weight: bold;">3) Well structured and commented code </span>** **<span style="font-weight: normal; font-size: 10pt; color: black; font-family: Arial; mso-bidi-font-weight: bold;">4) All implied features implemented – no dead-end menus or program options </span>** **<span style="font-weight: normal; font-size: 10pt; color: black; font-family: Arial; mso-bidi-font-weight: bold;">5) Sound operation – no program failures </span>** **<span style="font-weight: normal; font-size: 10pt; color: black; font-family: Arial; mso-bidi-font-weight: bold;">6) Rules and game play is well documented</span>**<span style="font-size: 10pt; color: black; font-family: Arial;"> </span> ==<span style="color: black; font-family: Arial;">The Rules </span>== # <span style="font-size: 10pt; font-family: Arial;">Contest begins on April 3rd, 2009. </span> # <span style="font-size: 10pt; font-family: Arial;">Contest ends on**<span style="font-family: Arial;"> May 15th, 2009.</span>** </span> # <span style="font-size: 10pt; font-family: Arial;">The Game must be implemented in a Graphic User Interface </span> # <span style="font-size: 10pt; font-family: Arial;">The Game must support the standard Farkle Rules (see below) </span> # <span style="font-size: 10pt; font-family: Arial;">The Game must allow two or more players.<span style="mso-spacerun: yes;"> </span>One or more players must be human.<span style="mso-spacerun: yes;"> </span>A game AI may be implemented for the other players but is not required to win. </span> # <span style="font-size: 10pt; font-family: Arial;">The Game must be fully functional – do not include hooks to unimplemented “future” features.<span style="mso-spacerun: yes;"> </span>The Game must run without errors. </span> # <span style="font-size: 10pt; font-family: Arial;">The entries must be written entirely in native Liberty BASIC code. **<span style="font-family: Arial;">No API calls will be allowed.</span>** </span> # <span style="font-size: 10pt; font-family: Arial;">The following features might be included: </span> ** <span style="font-size: 10pt; font-family: Arial;">High score tracking </span> ** <span style="font-size: 10pt; font-family: Arial;">GUI color choices </span> ** <span style="font-size: 10pt; font-family: Arial;">Support for sounds </span> ** <span style="font-size: 10pt; font-family: Arial;">Computer players that can play against the human player </span> ** <span style="font-size: 10pt; font-family: Arial;">Select an set of rules you like – be creative </span> # <span style="font-size: 10pt; font-family: Arial;">Entries must be uploaded to the WikiSpaces Liberty BASIC Site </span> ** <span style="font-size: 10pt; font-family: Arial;">on that page you can link to your **<span style="font-family: Arial;">uploaded ZIP archive file</span>** </span> ** <span style="font-size: 10pt; font-family: Arial;">Entries must include the **<span style="font-family: Arial;">BAS file</span>** </span> ** <span style="font-size: 10pt; font-family: Arial;">Entries must not include the LB runtime files </span> ** <span style="font-size: 10pt; font-family: Arial;">Entries should contain any graphics and/or sounds required to run. </span> <span style="font-size: 10pt; color: black; font-family: Arial;"> </span> ==<span style="color: black; font-family: Arial;">The Prize </span>== * <span style="font-size: 10pt; font-family: Arial;">The winning entry will be added to the Liberty BASIC Programmer's Encyclopedia </span> * <span style="font-size: 10pt; font-family: Arial;">The winner will be mentioned on the **<span style="font-family: Arial;">Hall of Fame</span>** on the Wiki contest page </span> **<span style="font-size: 10pt; color: black; font-family: Arial;">The Judging</span>**<span style="font-size: 10pt; color: black; font-family: Arial;"> </span> * <span style="font-size: 10pt; font-family: Arial;">The submitted entries will be judged by the forum staff </span> * <span style="font-size: 10pt; font-family: Arial;">The code readability and commenting will be checked </span> * <span style="font-size: 10pt; font-family: Arial;">The user-friendliness and usability will be checked </span> * <span style="font-size: 10pt; font-family: Arial;">The documentation will be checked </span> ==<span style="font-size: 10pt; color: black; font-family: Arial;"> </span><span style="color: black; font-family: Arial;">How to Play Farkle </span>== <span style="font-size: 10pt; color: black; font-family: Arial;">Farkle is a simple dice game that is fairly similar to "Deal Or No Deal" or "Press Your Luck" in concept. Players take turns rolling dice for points. After every roll, you can either take the points you've earned so far on your turn, or you can re-roll to try to get more points. If you ever fail to score points on a roll, it's called a "farkle" and you lose all your points from that turn. The goal is to try to score 10,000 points total. </span> <span style="font-size: 10pt; color: black; font-family: Arial;"> </span> <span style="font-size: 10pt; color: black; font-family: Arial;">Dice are scored as follows: </span> <span style="font-size: 10pt; color: black; font-family: Arial;"> </span> <span style="display: block; text-align: center;"> </span> || <span style="display: block; text-align: center;">**<span style="font-family: Times New Roman;">Dice </span>**</span> || <span style="display: block; text-align: center;">**<span style="font-family: Times New Roman;">Points </span>**</span> || || <span style="font-family: Times New Roman;">6 of a kind </span> || <span style="font-family: Times New Roman;">Instant Win! </span> || || <span style="font-family: Times New Roman;">1-2-3-4-5-6 </span> || <span style="font-family: Times New Roman;">1000 secure </span> || || <span style="font-family: Times New Roman;">3 pairs </span> || <span style="font-family: Times New Roman;">750 </span> || || <span style="font-family: Times New Roman;">3 ones </span> || <span style="font-family: Times New Roman;">1000 </span> || || <span style="font-family: Times New Roman;">3 of a kind </span> || <span style="font-family: Times New Roman;">100 x face value </span> || || <span style="font-family: Times New Roman;">ones </span> || <span style="font-family: Times New Roman;">100 each </span> || || <span style="font-family: Times New Roman;">fives </span> || <span style="font-family: Times New Roman;">50 each </span> || <span style="font-size: 10pt; color: black; font-family: Arial;"> </span> <span style="font-size: 10pt; color: black; font-family: Arial;">After you score points on a roll, those dice are set aside if you decide to roll again. Dice you've rolled previously do not count on subsequent rolls, so if you roll 1-4-2-2-6-3, keep the 1, and then roll two more 1s, it does not count as three of a kind. If you end up scoring with all dice you've rolled, you can roll all six dice again. Note that the top three scoring combinations require six dice, so these combinations are rarely used. </span> <span style="font-size: 10pt; color: black; font-family: Arial;"> </span> <span style="font-size: 10pt; color: black; font-family: Arial;">When you score dice, you must score something, but you don't have to score all the dice that are possible to score (in case you want to roll more dice later). So, for example, if you roll 3-4-3-1-5-3, you can keep the 3 threes (for 300 points), the one (for 100 points), the five (for 50 points), or any combination of the three. </span> <span style="font-size: 10pt; color: black; font-family: Arial;"> </span> <span style="font-size: 10pt; color: black; font-family: Arial;">This covers the vast majority of the game. There are still a few quirks, though: </span> <span style="font-size: 10pt; color: black; font-family: Arial;"> </span> <span style="font-size: 10pt; color: black; font-family: Arial;">The combination 1-2-3-4-5-6 is unusual in that it scores 1000 "secure" points. These points are yours to keep, even if you farkle. The game enforces this by immediately adding it to your total score instead of the total so far for this roll. Needless to say, it's a very good roll to get. </span> <span style="font-size: 10pt; color: black; font-family: Arial;">You can't begin play (adding to your point total) until you've rolled 1000 points on a turn. After you've crossed the 1000 point threshold, you can stop rolling whenever you want, even if your score so far on that turn is less than 1000 points. </span> <span style="font-size: 10pt; color: black; font-family: Arial;">Once a player has crossed the 10,000 point mark, the other player gets one more turn to try to get a higher score. The game forces you to keep rolling until you either get a farkle or you've scored enough points to at least tie the other player. </span> <span style="font-size: 10pt; color: black; font-family: Arial;"> </span> <span style="font-size: 10pt; color: black; font-family: Arial;">If you've played this game before, you probably played by different rules. There's a lot of variations on how to score dice, what the winning point total is, and whether to require an initial scoring threshold. These are just the rules that I've always played by. </span> <span style="font-size: 10pt; color: black; font-family: Arial;"> </span> ==<span style="color: black; font-family: Arial;">Resources: </span>== * <span style="font-size: 10pt; font-family: Arial;">[[http://www.tadmas.com/games/farkle.html]] - Java based Farkle implementation with notes on how the computer AI was created.<span style="mso-spacerun: yes;"> </span>This is where the game rules were “borrowed” from. </span> * <span style="font-size: 10pt; font-family: Arial;">[[http://www.smartboxdesign.com/farklerules.html]] - Frakle rules from Smart Box Design for a palm based Farkle game. </span> * <span style="font-size: 10pt; font-family: Arial;">[[http://en.wikipedia.org/wiki/Farkle]] - Lots of information on Farkle courtesy the folks at Wikipedia. </span> * <span style="font-size: 10pt; font-family: Arial;">[[http://babek.info/libertybasicfiles/lbnews/nl117/bpsPart3.htm]] - How to roll dice in graphic windows using Liberty Basic – from the Beginning Programming Series. </span> <span style="font-size: 10pt; color: black; font-family: Arial;"> </span> ==<span style="color: black; font-family: Arial;">Entries </span>== * <span style="font-size: 10pt; font-family: Arial;">List your entry here. Use the wikispaces file upload feature to upload your zip file, or create a page to hold your code. Be sure to include you name on your code! </span> <span style="font-family: Times New Roman;"> </span>