Fortnightly Challenge ideas

Note: The Fortnightly Challenges™ are currently on hiatus. Please continue adding and voting on theme proposals. The challenges will be picked up again at some point in the summer once enough new ideas have been gathered (and the fatigue from the previous challenges has faded a bit :)).

This is a collection of ideas for the theme of the fortnightly challenges. Here's how it works:

• Every other week on Friday, we choose the top voted answer here to be the theme for next two weeks' Fortnightly Challenge. (The winning answer is also deleted. Themes can be used more than once, although having duplicate themes in a short period of time would get quite boring.)

• At the same time, all answers scored -3 or below are deleted, and all answers that have been posted for 8 weeks or more are also deleted, to reduce clutter.

• After picking the theme, the actual challenge is written on the following week (while the next theme is picked) and posted at the end of the week.

So, the schedule will look like this:

• ...
• Jan 9: Pick theme for challenge #3
• Jan 9 - Jan 23: Write challenge #3, pick theme for challenge #4
• Jan 23 - Feb 6: Write challenge #4, pick theme for challenge #5
• Feb 6 - Feb 20: Write challenge #5, pick theme for challenge #6
• ...

Here's a history of all the weekly challenges we've done so far:

 Date        | Theme and link
-------------+----------------
Dec 19 2014 | Audio Processing (chatroom)
Jan  2 2014 | Translation (chatroom)
Jan  9 2015 | Genetic Algorithms (chatroom)
Jan 23 2015 | Data Structures (chatroom)
Feb  6 2015 | Wireworld (chatroom)
Feb 20 2015 | Language Design (chatroom)
Mar  6 2015 | Lego (chatroom)
Mar 20 2015 | Asynchronous KotH (chatroom)
TBD         | TBD

• You might find inspiration here. – Rainbolt Dec 23 '14 at 15:12
• So I'm clear, is this just a place to post topics or can we post the beginnings of challenges as well? Who writes the challenges, just everyone in chat? Who gets to post them? – Calvin's Hobbies Jan 4 '15 at 15:17
• @Calvin'sHobbies You can post a theme or a vague idea for a challenge. If you're already clear about what the challenge is going to be, there's no point in posting it here - you can post it yourself. This is rather meant for challenges which are a bit trickier to work out, which is why they're a community effort. So yes, the challenge is written "by everyone in chat". Who posts it in the end will probably determined case-by-case, depending on who had the final idea for the challenge or did the lion's share of the work. I'm sure we can usually come to a consensus on that. – Martin Ender Jan 5 '15 at 9:14

Program a golf-programmer

A question to write a program which produces the shortest program in a simple language. The winner may be decided by the total length of the output of the program against some existing tasks. There might be some upper limit on the length of the program.

We only consider output-only tasks ( plus some printing challenges with ), since it is too complex to consider problems which takes input.

Input to the program is the expected output of the tasks, and the set of allowed character in the task.

Some candidates for the target language: Brainfuck, Insomnia, oOo CODE, ...

• Brainfuck seems to have been used here Brainf*** Golfer, though I don't know if it would be more interesting when we limit the set of programs to those which only outputs.
• Insomnia, from my own experience, is quite fun, since it resets the bit pointer when you move the group pointer.
• (Don't know about other languages... Suggestions?)

Some candidates for the goals of the challenges:

(I have implemented a program which performs searches to write program in Insomnia, so I think it might be interesting to make this a challenge).

Hypercomplex Numbers

Hypercomplex numbers are generalizations of the real number system into higher dimensions.

The simplest example is the complex number plane with i^2 = -1. There are, however, many other versions of hypercomplex numbers. There are the quaternions with i^2 = j^2 = k^2 = -1. More interestingly, there are the two-dimensional split-complex numbers with j^2 = +1, or the dual numbers with ε^2 = 0. One system has -i^2 = j^2 = k^2 = +1. Each of these number systems have different algebraic properties, determined by their respective multiplication tables.

Ideas:

• Given the relevant multiplication table, evaluate an expression with hypercomplex numbers. Potential operations include addition/subtraction, multiplication, conjunction, (maybe division, which may not be clearly defined).
• Given a list of mathematical properties, determine whether or not a hypercomplex number system with those properties exists (or list out the possibilities).
• Given a multiplication table, determine what algebraic properties the system has. (Commutative, associative, alternative). Maybe determine whether or not is is a composition algebra.

We might want to strictly define the requirements to be a hypercomplex number system. E.G. they have addition and multiplication, where the addition is commutative/associative and multiplication distributes over addition.

King Of The Tycoon

It occurred to me that PPCG users might be the type of person that enjoys playing tycoon games - think of Rollercoaster Tycoon, Zoo Tycoon, Sim City, Sid Meiers Railroad Tycoon, Airport Tycoon, etc etc. (admit it, at least a few of you has one of these installed). Perhaps even Monopoly and Catan could be counted in.

I think this could make some nice programming challenges, because

• It involves some kind of simulator/controller, which could actually be made with a popularity-contest or some other interesting challenge. Alternatively, anybody with too much free time on their hands could make a controller.
• Beating your fellow players can be done with various strategies, and a good designed management game (with some kind of economics involved) usually does not have a 'best' strategy, allowing for interesting programs, and of course a lovely king-of-the-hill challenge.

Sounds like a nice theme?

Robot game player

We often have challenges that involve bots playing games. Usually they are KOTHs pitting programs from different users against one another. What I have in mind is a bit different. I envision a program playing a game designed for humans, awkwardly interacting through the input/output interfaces designed for humans. Sort of like robots playing chess with physical pieces.

So for example, the program would take as input not a list of coordinates of objects in its surrounding, but the pixels rendered by the game. For the output, it could send keystrokes or mouse clicks that it wants to make (if that is actually interesting for the particular game).

A challenge like this which I found quite funny was to create a QWOP-playing script. But this challenge was not very well done, as no suggestion for how to communicate with the game was provided.

This does not necessarily have to be a fortnightly challenge, but it seemed like the place to post a vague challenge idea. If anyone has an idea for a good game to use, feel free to share it.

• Great idea! I will love it if it ever gets implemented by the community! – Arjun Apr 21 '17 at 9:18

Four player Raspberry Pi KotH

I'm imagining the challenge being a KotH question, and collectively working on the controller that will be required to make it possible to post that question. Then anyone who wants to run a different raspberry pi KotH in future can start from the same controller.

• Four Raspberry Pi computers are available at the home of the question poster*.
• Let's call an answer to the KotH question a bot.
• Four bots compete in each round of the competition.
• Each bot plays from a different raspberry pi, sending moves to the host computer.

This means each bot can continue running in between turns without having to share resources with the other bots. A bot that wants to use up all of the available memory and CPU time during another bot's move won't crash other bots or the controller. A bot that doesn't provide a move in time simply doesn't move (or repeatedly non-responsive bots can be killed off as in other KotHs, depending on the game).

The specific game that we choose for the first RP-KotH doesn't really matter. I have a simple board game/pixel war concept that I'm working on in the sandbox which might be suitable.

Automation

Ideally the controller would be able to reset the raspberry pis to an initial state, and then select the next four bots to compete and send one to each raspberry pi and start the round. This way each round does not need to be manually set up and a whole tournament can be run by the controller. This may involve preloading each raspberry pi with a mini-controller and a copy of all the bots, so a signal from the main controller tells the mini controller which of the saved bots to run.

Since a raspberry pi runs from an SD card, a memory image with all the required bots and mini controller could be generated and simply written to as many SD cards as necessary.

*The question can be posted and hosted by someone who happens to have four raspberry pis, or I can buy them and post the question myself. I currently have one pi which can be used for testing, and if this suggestion is selected I am happy to buy more.

I am a Java developer, and it hard to convert java to golf code, there for I would like to make a tool that will do this for me.

Or better make it a challenge.

The only thing I am not sure about is what would be the wining credential? Because this task is not easy at all.