May 2021 - The Limitation Game
Created on May 6, 2021
Step into the shoes of Alan Turing and use your coding skills to crack an encryption algorithm. The main focus of this challenge is to learn about type classes and type bounds. To facilitate this, you'll be working on the problem of cracking a caesar cipher.
In this challenge you will:
- Implement a caesar cipher (encryption and decryption)
- Implement an algorithm that can crack a caesar cipher without any human intervention
- Learn about how type classes work and explore their use with higher kinded types.
- Clone the starter code here. The starter code contains acceptance tests. Get the
ChallengeSpecto pass and you are done!
- Run the tests to ensure you are set up (using
sbt test, for example). All tests will be failing for now.
Note that the starter code contains two main elements: the challenge and the fundamentals. The challenge is the problem described above and the fundamentals are simpler, shorter problems you can solve to brush up on your knowledge prior to completing the full challenge. Feel free to skip the fundamentals if you don't feel like you want/need to do them.
Tip: It may be helpful as you are going through to run only the tests for either the fundamentals or the challenge. For example, if you only want to run the fundamental tests, you can do so with
sbt 'testOnly **.FundamentalsSpec'.
To Be Continued
The solutions for this challenge will be posted at the end of the month of May 2021.