Last month, we resurrected Cemetech programming contests with Cemetech Contest #14: TI-BASIC Connect 4 AI Challenge. In that short contest, designed by Cemetech members jonbush and earthnite, entrants were tasked with writing an AI to play Connect 4 in pure TI-BASIC. We congratulate JWinslow23 for winning that contest, and are happy to announce a longer, more elaborate contest. Cemetech Contest #15 is entitled Crypto Golfing, and is a multi-part contest. Starting today, and continuing every Tuesday until January 12th, we will release encrypted data with possible hints for a new challenge. Your mission, should you choose to accept it, is to create a program to decode each piece of encrypted data, be it a string, a number, an image, or something else, in as few bytes as possible. The top two overall winners will win a TI-84 Plus C Silver Edition and a TI-Nspire CX (with the first place winner getting first choice).

As in previous Cemetech contests, we'll have a number of categories; the sizes of entries from each category will be weighted at the discretion of the judging panel.
  • TI-83 Plus/TI-84 Plus TI-BASIC, ASM, C, or Axe: Programs in any of these languages for any calculator with "TI-83 Plus" or "TI-84 Plus" in its name will be accepted, including the TI-84 Plus C Silver Edition and TI-84 Plus CE. Hybrid TI-BASIC and z80 ASM programs must use only the libraries available in Doors CS or Doors CSE, to make grading easier.
  • TI-Nspire CX and HP Prime: Lua entries for the TI-Nspire CX and CX CAS as well as PPL programs for the HP Prime will be accepted.
  • Computers: Java, Javascript, C++, Rust, Haskell, and Python: For those who focus on computer programming these days, computer programming solutions will be accepted in the languages listed. Want to write in another language? Let us know what that language is in the attached Cemetech topic, and we'll consider it.

The usual rules apply:
  • Contestants may not release any code or binaries before the end of the contest, including asking for programming help publicly or privately. Violators will be disqualified. Projects that have already been released in any form (excluding a contest project topic) already are not eligible for the contest.
  • The contest will run until January 19th, 2016, at 11:59:59pm Eastern Time. No late entries will be accepted. Entries to any of the five challenges will be accepted up until this deadline. The earlier you submit each challenge's solution, the higher your score!
  • All contestants must maintain a topic in the Contests subforum on Cemetech, including a first post that mentions the programming language(s) you'll be using. You can also post the size of your entries and when you complete them. Do not post algorithmic solutions, code, or hints.
  • Submit entries by emailing them, in a zip file, to contest at this domain name. Be sure to provide your Cemetech username in the subject or body of the email so we know who you are! Each Cemetech member can submit a single entry in one or more of the accepted language + platform combinations.
  • Judging will be performed by a team picked from among the Cemetech administrators and members; all judges are disqualified from entering the contest. Results will be posted no later than ten days after the end of the contest.
  • Algorithmic grading will be performed, based on the size of each entry's source code (or for assembly, assembled binaries) and how early the entry was submitted. Speed will not be graded.
  • As with the Contests #12 and #13, we are very proud to offer two brand-new calculators as prizes. The grand prize winner will be awarded one TI-84 Plus C Silver Edition or one TI-Nspire CX, as chosen by the winner. The second-place winner will receive the remaining calculator. Additional Cemetech swag may be added to the prizes at the Cemetech staff's discretion. All participants will earn Cemetech flair in the form of signature bars and respect.


So what are you waiting for? Get coding, solve Challenge 1, push yourself to learn something new in the process, and win some calculators!

Challenge 1: GSVHVXIVGNVHHZTVRHLOWDRAZIW
Challenge 2: VPUOUGHUVYUOOSIUWOPSTTEPMRWNSEOBHMYGUYUVUGP
Challenge 3: OEEJCYKL WK AU LTMY L WXOJWN

More Information
Contest #15 Rules



Both of the two remaining of these six generously-donated calculators will be awarded as prizes. A special thanks to our anonymous donor for making this contest possible!
Here are the scoring details:

▪ 5 points for decoding the message
▪ 27.18e^(-x/s) points for size, where s is the size of the smallest program in that category and x is the size of the entry being evaluated
▪ 5*.7^t points for submission time, where t is days after the challenge was posted
whelp, Ill be getting a pretty good score on a time of 0. (:
Is the size of the entry based on the size of source code or binary? Binary would be difficult for some languages. Source code, well, IOCCC comes to mind for some languages, but that is measurable and not dependent on environment or compilation flags/etc..
AHelper wrote:
Is the size of the entry based on the size of source code or binary? Binary would be difficult for some languages. Source code, well, IOCCC comes to mind for some languages, but that is measurable and not dependent on environment or compilation flags/etc..
KermMartian wrote:
Algorithmic grading will be performed, based on the size of each entry's source code (or for assembly, assembled binaries) and how early the entry was submitted. Speed will not be graded.
KermMartian wrote:
AHelper wrote:
Is the size of the entry based on the size of source code or binary? Binary would be difficult for some languages. Source code, well, IOCCC comes to mind for some languages, but that is measurable and not dependent on environment or compilation flags/etc..
KermMartian wrote:
Algorithmic grading will be performed, based on the size of each entry's source code (or for assembly, assembled binaries) and how early the entry was submitted. Speed will not be graded.
Gah, whoops, I reread and got distracted and missed that Sad
How complex is the encryption? In my limited knowledge of encryption it seems that when you know the key the decoder should be fairly simple.

Cool contest! (challenge accepted)
"Submit entries by emailing them, in a zip file, to contest at this domain name. Be sure to provide your Cemetech username in the subject or body of the email so we know who you are! Each Cemetech member can submit a single entry in one or more of the accepted language + platform combinations. "
I unfortunately have a physical problem with this rule. Becouse of issues at home, i cant realy be able to transfer and upload files every week. Also, for axe, should i send (well, i cant really send, as i have stated) the source or the compiled program? (And which one will be graded?)
c4ooo wrote:
"Submit entries by emailing them, in a zip file, to contest at this domain name. Be sure to provide your Cemetech username in the subject or body of the email so we know who you are! Each Cemetech member can submit a single entry in one or more of the accepted language + platform combinations. "
I unfortunately have a physical problem with this rule. Becouse of issues at home, i cant realy be able to transfer and upload files every week. Also, for axe, should i send (well, i cant really send, as i have stated) the source or the compiled program? (And which one will be graded?)
You can submit them all together as late as the last second of the contest, if that's when you're able to upload them. The only pro of submitting a challenge solution before the next one is announced is getting extra points. For Axe, I believe that we will be grading source code, as it is much more terse than human-readable Assembly language.

E37 wrote:
How complex is the encryption? In my limited knowledge of encryption it seems that when you know the key the decoder should be fairly simple.

Cool contest! (challenge accepted)
Haha, HIMYM fan? This particular challenge is the easiest. They will get progressively harder as the weeks go on.
KermMartian wrote:
Computers: Java, Javascript, C++, Rust, Haskell, and Python
For compiled languages, you should specify the compiler in use (including version) and what options will be used (or if custom options passed to the compiler are acceptable).

This is a more general aspect of the question in Mateo's topic.

Additionally, specify how input should be provided to programs. You state here that TI-BASIC input should be entered at runtime, but AFAICT the rules never specify the format in which input should be provided to programs. This is another aspect that may vary according to platform. For that matter, if the output format is important specify that too.
jonbush wrote:
▪ 27.18e^(-x/s) points for size, where s is the size of the smallest program in that category and x is the size of the entry being evaluated
10e*e^(-x/s) would probably be more accurate here. But we're talking about a small difference in the order of up to 0.001 so the results will probably be the same anyway with rounding. Anyway, nice scoring system. Do you count only one entry per challenge per person (probably the best one), no matter the category?
Should the program decode any input or does it only have to decode the specified input? In the latter case what prevents just outputting the correct answer?
Several questions on the rules:

Quote:
TI-83 Plus/TI-84 Plus TI-BASIC, ASM, C, or Axe: Programs in any of these languages for any calculator with "TI-83 Plus" or "TI-84 Plus" in its name will be accepted, including the TI-84 Plus C Silver Edition and TI-84 Plus CE. Hybrid TI-BASIC and z80 ASM programs must use only the libraries available in Doors CS or Doors CSE, to make grading easier.

* what about the TI-82A, which is a slightly fancy 84+, as we all know, but has neither "TI-83 Plus", nor "TI-84 Plus" in its name ? Smile
* what about libraries on the TI-eZ80 series ? Cesium has provided library loading to native code programs for weeks. What's more, while from the point of view of end users wishing to participate in the contest, DCE9 does not currently exist, what if it gets to exist before the end of Cemetech contest #15 ?
jacobly wrote:
Should the program decode any input or does it only have to decode the specified input? In the latter case what prevents just outputting the correct answer?

I am wondering this, too. Does it have to accept any input?
Any chance of allowing Scala?
elfprince13 wrote:
Any chance of allowing Scala?
Anything that can run Java can run Scala, and since we accept Java, I see no reason not to accept Scala.

Xeda112358 wrote:
jacobly wrote:
Should the program decode any input or does it only have to decode the specified input? In the latter case what prevents just outputting the correct answer?

I am wondering this, too. Does it have to accept any input?
It definitely needs to accept arbitrary input that is the same type as the challenge text. Entries I've received so far have made assumptions about the length of the input, from 99 to 255 characters. I think, say, a maximum of 99 characters is a reasonable assumption to make for this particular challenge, because of the properties of the cipher that lend themselves well to simply re-running the program for additional ciphertext.

Lionel Debroux wrote:
* what about the TI-82A, which is a slightly fancy 84+, as we all know, but has neither "TI-83 Plus", nor "TI-84 Plus" in its name ? Smile
Since TI-82A programs are .8xp files (I hope), they would be counted in the appropriate TI-83+/TI-84+ category.

Quote:
* what about libraries on the TI-eZ80 series ? Cesium has provided library loading to native code programs for weeks. What's more, while from the point of view of end users wishing to participate in the contest, DCE9 does not currently exist, what if it gets to exist before the end of Cemetech contest #15 ?
You'll note that the rules specifically state Doors CS[E] libraries for z80 calculators. The omission of ez80 there is not accidental. C and ez80 ASM programs for the TI-84 Plus CE that utilize Doors CE libraries or use Mateo's upcoming C library loader will be accepted.
KermMartian wrote:
elfprince13 wrote:
Any chance of allowing Scala?
Anything that can run Java can run Scala, and since we accept Java, I see no reason not to accept Scala.


Excellent! Smile
Quote:
You'll note that the rules specifically state Doors CS[E] libraries for z80 calculators.

Yup, I noticed, but...
Quote:
The omission of ez80 there is not accidental. C and ez80 ASM programs for the TI-84 Plus CE that utilize Doors CE libraries or use Mateo's upcoming C library loader will be accepted.

Alright, good.

I thought the omission of rules about native code for the TI-eZ80 series could have proved to be a problem later on. Say, if DCE9 with hybrid basic libraries is released before the end of the contest, some people might want to switch to it.
Well, I do want to participate in this contest...

But darn, I don't know a thing about decoding phrases like this. Maybe I should do some reading on this.

Unless its like where one letter corresponds to another. I don't know Very Happy
Unicorn wrote:
Well, I do want to participate in this contest...

But darn, I don't know a thing about decoding phrases like this. Maybe I should do some reading on this.

Unless its like where one letter corresponds to another. I don't know Very Happy
Sounds like something you could research by learning how those work and how people figure out how to decode them! It would be a perfect learning experience if you haven't run across this problem before.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 4
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement