󰛩󱨦~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Xtreme Xmas Code

Have you ever been savoring your Advent Of Code calendar, keyboard dusted with sugar cookie crumbles, reindeer curled at your feet, and found yourself wishing the puzzles were wilder? More challenging? MORE XTREME??

Well ho-ho-hold that thought because this is the mod for you!

Xtreme Xmas Code is a mod/companion app for °Advent of Code°, a delightful °Advent calendar° of small programming puzzles created by °Eric Wastl°. With it you can record your Advent of Code progress and each day get an additional modifier to that day's AoC puzzle. For example, you may be challenged to complete that day's puzzle using a language you've never used before, or without reassigning any variables.

Additionally, the mod scores each game based on how you use your reroll tokens and provides a leaderboard for ranking games based on this score. I hope this will provide a brain-stretching and °accessible° leaderboard experience°that isn't tied to a strict time schedule°.


----------------------------------------------------------------------------

About Me

----------------------------------------------------------------------------

I'm °Kyle Beechly° - web developer, language lover, and maker of Xtreme Xmas Code. I hope you like it! You can find me on °GitHub°, °LinkedIn°, °Bluesky°, and °Mastodon°.

I'm also #OpenToWork, so if you're looking to work with a fun nerd you may contact me via one of the above options or °Email°!

If you'd like to support Xtreme Xmas Code, you can do so by sharing it with a friend, supporting XXC's °sponsors°, or supporting °Eric Wastl°, creator of the original Advent of Code. You can find more information on °my support page°.


----------------------------------------------------------------------------

Rules

----------------------------------------------------------------------------

Each day you may roll a new Challenge Modifier. Our example Challenge Modifier will be "...using a random language from the Functional Programming Box."

Some Challenge Modifiers have additional Modifier Options. Our example Challenge Modifier has Modifier Options from the Functional Programming Language Box. If you roll a Challenge Modifier that has Modifier Options, a Modifier Option will be automatically rolled as well. Our example Modifier Option will be "Haskell."

Therefore the full text of our example Challenge Modifier including its Modifier Option will be "Your challenge is to write a program to complete today's puzzle using a random selection from the Functional Programming Box: Haskell."

At the start of a new game you will be given 24 Reroll Tokens. You may spent 2 Reroll Tokens to reroll your Challenge Modifier. If your Challenge Modifier has a Modifier Option, you may spend 1 Token to reroll the Modifier Option.

You will earn 1 Reroll Token whenever you complete Part 1 or Part 2 of a puzzle (i.e whenever you earn a Gold Star in Advent of Code).

In our example, say we are in Day 1 and are dissatisfied with our Challenge Modifier. We decide to reroll our Modifier Option for one Reroll Token, giving us "Your challenge is to write a program to complete today's puzzle using a random selection from the Functional Programming Box: Erlang."

We don't want to use Erlang either, so we choose to reroll the whole Challenge Modifier for 2 Reroll Tokens. This gives us "Your challenge is to write a program to complete today's puzzle while making declarations in a natural language not yet used in this codebase (e.g. Spanish)." ¡Vamos!

After completing Part 2 of Day 1 we have spent 3 Tokens and earned 2, which combined with the 24 we started with gives us 23 Reroll Tokens at the start of Day 2.

If your Challenge Modifier for a specific day proves too challenging and you don't have enough tokens to reroll, you may remove the Challenge Modifier altogether and complete the puzzle vanilla style. You will not earn tokens for Parts 1 or 2 completed without a Challenge Modifier, but your game will still show on the leaderboard if applicable.


----------------------------------------------------------------------------

Scoring

----------------------------------------------------------------------------

The Scoring Formula is {10 * T + 20 * P2} where:

Each day's individual score is an estimation of that day's effect on the overall game score. The Day Score Formula is {10 * E + 20 * P2 - 10 * S}, where:



----------------------------------------------------------------------------

Titles

----------------------------------------------------------------------------

Upon completing Day 25 of a game you will be awarded a Title based on your score. The titles are:



----------------------------------------------------------------------------
----------------------------------------------------------------------------

You can generate a Public Link to share your work with the world by marking your game as Public. These links can be found on the Calendar pages.


----------------------------------------------------------------------------

Frequently Asked Questions

----------------------------------------------------------------------------

Are you affiliated with Advent of Code?

Nope!

I'm a big fan of °Advent of Code° and I encourage you to support its creator °Eric Wastl°, but I'm not affiliated with him or Advent of Code in any way.

I'm not enjoying the Christmas lights. Can I turn them off?

Sure! Just click the light switch at the end of the string of lights (at the upper right of the page).

Why make a mod for Advent of Code?

Because it's fun! Using randomized challenges to push our boundaries and encourage us to think outside the box is a great way to help keep our brains in shape!

Additionally, XXC adds to AoC leaderboard options. Being a worldwide speed-based competition, the race to get on °Advent of Code's° global leaderboard °encourages° °some° °particular° °techniques° and °isn't convenient for all players' schedules°. I'm hoping that the score-based Xtreme Xmas Code leaderboard will provide an accessible alternative that rewards new learning, courage, and lateral thinking.

How does the leaderboard work?

The leaderboard are opt-in; you must post your game manually for it to show up. Games on the boards are ranked by score. There will be two boards for each year: In-Season and All-Time. To qualify for the In-Season board, your game must be completed and posted during the specified year. For example, to qualify for the 2023 In-Season board your game must be completed and posted before January 1, 2024.

How can I post to the leaderboard?

To post a game to the leaderboard, you must first mark your game as Public and add a Repository Link.

You can do this when starting a new game or anytime thereafter from the Edit Game page. The Edit Game page can be accessed from the Edit Game link on the Calendar page.

If you mark your game as Private or remove its Repository Link, it will automatically be removed from the leaderboard.

Can I use AI to get on the leaderboard?

Please don't post games that use AI to do most or all of your puzzle solving to the leaderboard. The leaderboard is built on a principle of good faith and I would like them to remain useful as a way for humans to interact and compete with each other. That being said, mild use of AI tools is permitted and some challenge modifiers may even require the use of AI. Just use your best judgement and be a good sport =)

How do you deter cheating?

We focus on showing our work as players. Each game posted to the leaderboard must include a link to a public repository showing the code used to solve each puzzle. If it becomes necessary, I will implement a community-based reputation system (similar to Reddit's approach) to filter out dishonest games.

How does authentication work?

Xtreme Xmas Code uses °OAuth° to verify and remember your identity. You choose a service like °GitHub° or Reddit to log in with and Xtreme Xmas Code receives information to remember who you are. This is generally public information; here are examples from °GitHub° and °Reddit°. Xtreme Xmas Code will remember your unique ID, names, URL, and image from the service you use to authenticate.


----------------------------------------------------------------------------

Credits

----------------------------------------------------------------------------

Xtreme Xmas Code: °Kyle Beechly°

Advent of Code: °Eric Wastl°

XXC Beta Testing: Nolan Braman

Playing: You!