Challenges

Welcome to the challenges page. Here you will find a wide range of challenges, which will put to use your TI-Basic programming abilities. There will always be several challenges out standing. Most challenges last about two weeks, but some may last longer or shorter than that. Should Judgement Day arrive with only one entrant in the challenge, s/he will not win by default. Instead, Judgement Day will be postponed; Judgement Day is inevitable… (excuse the Terminator cliché)

Challenges are ideas that multiple people make into programs, post the final program, and then a winner is decided.

You may post your solutions to a particular challenge on the TI|BD forums.

To see a list of all the winners, the Hall Of Fame is here.

Challenge 1 — Dice

The first challenge is to design a program that will roll dice. The program should support dice with the following intervals: 4-sided (d4), 6-sided (d6), 8-sided (d8), 10-sided (d10), 12-sided (d12), 20-sided (d20), and d% (100-sided). In other words, the DnD dice. It should also support multiple die rolls at a time, as in 3d6 being rolling a 6-sided die three times. The program should be graphical, and store the results to L1. How you present it is up to you. The winner will be the one whose program executes fastest and takes up the least space. Post your final programs on the forums for judging.

Entries judged on the 1/05/2008


Challenge 2 — Analogue Clock

The second challenge is to design an analogue clock. Display a circular face with minute and hour hands and a sweeping dot for the seconds. Also display AM/PM and the date. Use the calculator's MODE to set the clock. The program will be judged on size.

Entries judged on the 21/04/2008


Challenge 3 — Game Introduction

The intro can be as long as you want, but it must be at least 30 seconds. The intro can contain animation, text, graphics, or whatever else you want, just make it look as nice as possible. Also, the user should be able to stop the intro at any time.

Entries judged on the 30/07/2008


Challenge 4 — Roman Numerals

Have the user input a number, and then convert it to the appropriate Roman numerals. You should include support for the main Roman numerals: I (1), V (5), X (10), L (50), C (100), D (500), and M (1000). You don't have to worry about decimals or negative numbers, but your program should be able to handle numbers as large as 10,000.

Entries judged on the 20/09/2008


Challenge 5 — Number Words

Have the user input a number, and then convert it to the word equivalent. Display the number and its word equivalent on the screen. You should include support for both whole numbers and decimal numbers, but you don't have to worry about negative numbers. For example: 423 = Four hundred twenty-three (notice the hyphen). The ceiling of the challenge is 10,000.999

Entries judged on the 31/10/2008


Challenge 6 — GUI (Graphical User Interface)

Have the user be able to input some sort of input, like a list in ans, and be able to put an outline on the graphscreen. It should be able to do any configuration of a gui screen and should be able to do the same thing no matter what the graphscreen size is. Also, this is not required, but if you want to show how amazing you are at programming, and yes this will get you extra points just for trying, you can make GUI Tools. For example, a checkbox, scroll bar(s), and text input.

Entries judged on the 01/01/2009


Challenge 7 — SADMEP

Due to complications with the delay on Challenge 6, the criteria has been changed as to not let anyone have a head start accidentally.

As you should notice, the title of this challenge is SADMEP, or PEMDAS backwards. In this program, you must have the user input any expression (exclude trigonometry or logarithmic functions) and have the expression solved using a SADMEP method. This means to solve Addition and Subtraction left to right, then do multiplication and division left to right, then do exponents and roots left to right. Parentheses will still come first because the math cannot work if they are done last.

Example: Simplify 2+3*4/2^4-1
5*4/2^3
20/2^3
10^3
1000
(Real answer is normally 7/4)

Here are the official rules:

  1. Only the operators +, -, *, /, (, ), ^, 2√(, x√, 2, -1,‾, and implied multiplication will be used
  2. Anything in parentheses are done first (therefore, rather than SADMEP, it's more like PSADME)
  3. Addition and subtraction are done first left to right
  4. Multiplication and division are done second left to right
  5. Exponentiation is done last left to right
  6. Negation will make a number negative. So ‾5+5 is still 0. ‾(5+5)+5 is ‾5.
  7. 2 and -1 are considered the same level as ^
  8. I will always test with completed parenthetical pairs. In other words, I won't leave parentheses off.
  9. 2√( and x√ are considered their own function, and they will be done before anything.
  10. x√ will operate before anything. So, 1+3x√27*3 will simplify to 1+3*3, which simplifies to 12. If parentheses are used, respect them. (1+3)x√(27*3) simplifies to 4x√81, which is 3.
  11. I will not use any variables. Only numbers.
  12. Your program must successfully pass 15 different expressions.
  13. The goal is for this to end May 10. If I do not have at least three contestants by then, this challenge will shut down.

If you have any questions, please post in the forums. Thank you.

Entries judged on the 10/05/2009


Challenge 8 — One K

The 8Th challenge will be to create the best possible game that is under 1 kilobyte (defined to be 1024 bytes and excluding the name). The programs will be graded on:
Use of memory The program must use all memory wisely, not spending too much for frivolous features, but not spending too little as to be unappealing
Playability and Enjoyment The program must actually be fun to play. This category will be lax; if its a game, it will qualify

Games must be made in PURE Ti Basic. No libs of any kind, and no writing in other created languages, (Such as BBCBasic)

All games must reside in one program, no subprograms of any kind

Entries judged on the 20/06/2009


Challenge 9 — Complete OS

This is a very special challenge. It does not focus on a particular task, like some of the other challenges, but rather it is a test of what you can do, where almost anything goes. As the title says, this will be a challenge to make an OS. What is interesting is what I will allow for this. You must use TI BASIC is you primary language. However, you may use any libraries from celtic2 to xLib, to libraries that you write yourself. There are a few requirements for the assembly programs though.

1) It must be able to handle any errors that are thrown, like how celtic2 throws errors, and must be able to adjust what it does based on that.
2) Make sure that the assembly program can never receive any bad input. This means that when you are programming this os, you might want to back it up often, in case of ram clears.
3) Any assembly program that you use, must be included inside the folder containing your program, as a separate folder, listing the original readme and program file. You must also have all programs that need to be downloaded to the calc, in an easy way to download it.
4) You must have some basic code. 5 lines of basic code, and the rest being assembly programs will be disqualified. The assembly programs are for libraries that you can use to see things like what programs are able to be run, or drawing graphics on the screen.
5) You may not make your own assembly programs. Your basic code must be fitted around your assembly libraries, not the other way around. However, if you make an asm program, you must release it at least a week in advance, and announce it for the other competitors.

This was challenge was designed to take everything available to you, and use it to the best of your abilities. Because this is a test of what you can do, I will make no rules. Anything goes, as long as it looks somewhat like an operating system, even if it is a terminal type application

Entries judged on the 31/11/2009


Challenge 10 — AI Battle

In this challenge, you must make a Connect 4 game with an AI that plays against a human. To make sure that all of the rules of Connect 4 are established:

  • Two plays play against each other with two different color tiles: white and black.
  • The playing field is 6 rows X 7 columns, rows being horizontal and columns being vertical.
  • Players alternate dropping their markers into the playing field with gravity effective. Practically, the player selects which of the seven columns to drop the talent, and it falls to the bottom or on top of the highest coin.
  • The first player to get 4 in a row, either horizontally, vertically, or diagonally, wins.

In the program, these rules are non negotiable:

  • The program must work and be free of all bugs that inhibit gameplay
  • There must be an option for allowing the AI to go first
  • The AI must not cheat
  • A win must be made obvious (if a four in a row occurs, it must pronounce the winner)
  • The program must be in PURE BASIC.
  • The program should be less than 20000 bytes in size

The overall point of this challenge is to create a fully functional AI that is competent. To determine the best AI, AI's will be played against each other via two calculators, and the champion AI will be declared as the winner program. Thus, as the overall focus of the challenge is to build a competent AI, size or graphics will not be factored into the challenge, just as long as the program is down-loadable and it is obvious which talents belong to one player and which belong to the other.

Entries judged on the sometime/in the/future


.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Noncommercial 2.5 License.