TL/DR
Write little MiniScript programs to implement tasks on Rosetta Code. Whoever correctly implements the most tasks by October 15th wins a $25 gift card! Second and third place finishers win $15 and $10, respectively.
What's All This, Then?
MiniScript is a new high-level scripting language. It's especially designed to be easy for beginners to pick up and use, but is powerful enough to create complete games like this. MiniScript can be written and run right on the web, or on the command line, or even in the Mini Micro environment (a sort of virtual machine that adds sophisticated graphics & sound capabilities).
Rosetta Code is a user-driven site that collects implementations of various tasks in various languages. It allows people to see how different languages compare, and serves as useful sample code for anyone new to a particular language. So it's especially useful for a new language like MiniScript. There are about 50 tasks implemented in MiniScript already, but there are hundreds more not done yet.
How to Participate
You will need to create an account on RosettaCode.org, as well as on the MiniScript forums. The contest is essentially a race to see who can implement the most tasks by the end of the contest. To advance in this race, you simply:
- Select a task from the tasks not implemented in MiniScript.
- Implement that task in MiniScript.
- Edit the RosettaCode page (while logged in) to add your implementation. (More details here.)
- Add or edit a post to this forum thread, with a link to your task.
That's it! The top three finishers, in terms of number of tasks implemented at the end of the contest, win!
Why Participate?
Learning a new language is fun. Helping others learn a new language is double fun. And the stuff you can buy with a $25 gift card (Amazon, Visa, or Steam) makes this triple fun!
Rules
- The contest is open to individuals. No teams.
- At the end of the contest period, I (Joe Strout) will count the number of tasks implemented, based on the links in your forum post (checked against RosettaCode itself). The top three finishers win (see "Prizes").
- I will be participating at a very low level, implementing no more than a handful of tasks over the contest period, mostly to show how it's done. You should be able to beat me easily.
- Task implementations must follow the Style Guide below. I reserve the right to not count solutions that violate the guide (though I will first make every effort to notify you so you can correct the problem).
- Asking for and providing MiniScript help is always OK. (But please do it in a different thread so we keep this one focused on contest entries.)
- Play nice. No altering other people's entries, no name-calling or smack-talking, etc. Treat everyone with respect and kindness. It's a contest, but we're all here to have fun and learn together.
Contest Period
The contest begins Sunday, September 15, 2019 and runs through Tuesday, October 15, 2019. No entries submitted after midnight (Pacific time) on October 15th will be counted.
Style Guide
Try to follow the style of the existing tasks implemented. Specifically:
Function and variable names should begin with a lowercase letter, and use camelCase as needed. Class names should use CapitalizedCamelCase.
Parentheses should never be used on function calls with no arguments:
✗WRONG: randNumber = rnd()
✔RIGHT: randNumber = rnd
Parentheses should also never be used with a command statement (i.e., when the function call is the entire statement):
✗WRONG: print("The ultimate answer is: " + answer)
✔RIGHT: print "The ultimate answer is: " + answer
✗WRONG: SomeClass.someFunction(arg1, arg2)
✔RIGHT: SomeClass.someFunction arg1, arg2
Parentheses may be used (sparingly) for clarity in expressions, for example when assigning the result of a comparison to a variable:
✔OK: mathCheck = (2 + 2 == 4)
Try to write solutions that are clear and simple. Make good use of MiniScript's string, list, and map features (including slicing and replication). But always favor clarity over writing dense/obtuse code.
Prizes
- First prize: $25 Amazon gift card.
- Second prize: $15 Amazon gift card.
- Third prize: $10 Amazon gift card.
If you win but an Amazon gift card doesn't work for you, we can instead do a Visa or Steam gift card. If none of those options work for you, talk to me ahead of time; I'm sure we can work something out.
Where to Learn More
From the MiniScript home page you can find all sorts of helpful materials, including the 1-page Quick Reference that tells you everything you really need to know about the language. The Try-It page also has lots of handy reference material below, including a tutorial. So even if you've never used MiniScript before, you can totally dominate this contest! All it takes is some enthusiasm and drive. Get started today!