30

The Ultimate Tic-Tac-Toetm Tic-Tac-Toe is boring. Let's code The Ultimate Tic-Tac-Toe, a whole different story. Uh, what? Each turn, you mark one of the small squares. When you get three in a row on a small board, you’ve won that board. To win the game, you need to win three small boards in a row. You don’t get to pick which of the nine ...


30

Chutes (snakes1) & Ladders When I was a child, the board-game "Chutes & Ladders" really grew my hatred for anything random. The board is 10 x 10. The object of the game is to get your piece from the bottom left corner (1) to the top left corner (100). This means the numbers "snake" as they increase e.g. square 10 steps "up" a row to square 11 ...


30

Simulate a Multi-Way Intersection This was actually a project I had to do in college with PLC's. The idea is to simulate a four-way (or other intersection) stop-light, each light should be green for a duration, then yellow for a duration, then red for a duration. You may implement this with whichever country's traffic light system / regulations you prefer, ...


26

Re-Nominating this one, because I think it's a fun little challenge. https://codereview.meta.stackexchange.com/a/3786/41243 Implement a simple calculator Where the definition of "simple" is whatever you make it - only supports basic arithmetic operators? Fine. It supports scientific notation, exponents and trigonometry? Fine! Takes input from the ...


24

Simon André Forsberg Says Let's play a game of Simon Says! The older folks around here probably remember a game called Simon. The Challenge Create a UI with four colored buttons that light up in a random pattern. After displaying the pattern, the player must repeat the pattern by clicking the buttons in proper order. The pattern gets longer each ...


24

Monopoly A Monopoly question was posted recently, and was very well received by the entire Stack Exchange community. So my proposal is to create a Monopoly game. It seems like it'd be a challenge to implement this game well, but easy enough to get a lot of participants involved. And, as always, bonus points for AI players.


24

The Rainfall Challenge Problem description is copied verbatim from the linked Code Review question: Problem Statement A group of farmers has some elevation data, and we're going to help them understand how rainfall flows over their farmland. We'll represent the land as a two-dimensional array of altitudes and use the following model, based ...


24

(re-submit of an idea from the last round) Chain (or belt) drive system I propose a variation on this challenge by Ell over on PCG - minus the golfing requirement, of course. (Disclosure: I've already done this challenge in JavaScript) To quote the original: Your program will be given a list of sprockets, specified as (x, y, radius) triplets. The ...


23

StackSTV Stack Exchange uses an STV-based system for holding elections. They use the software OpenSTV to host it. That software is no longer being maintained, and the system is being rebranded as OpaVote, and will no longer be free. This month's challenge: Build an implementation of the same STV algorithm used for Stack Exchange moderator elections, ...


22

BattleShip! Resubmission from weekend-challenge #3; simple and fun :-) Everyone has played Battleship. Let's implement the logic that sinks one. Ship has multiple "hit points" located at contiguous (x,y) coordinates, horizontally or vertically. Ship is sunken when all "hit points" are hit. Challenge entries Battleship Challenge: Naval ...


21

Virtual machine The task here is to create a simulated computer of some kind. The virtual machine should have a CPU, an instruction set and anything else needed (e.g. simulated ROM, RAM, registers, ALU, I/O) to execute the instructions on the virtual machine. The machine could be an actual processor such as the 6502 or a well-known specification for a ...


20

In the game of Racetrack, cars race around a track bounded by two concentric closed loops drawn on a square grid: Each player has a car at an integer position \$(x, y)\$ on the grid with a velocity vector \$(v_x, v_y)\$ that starts at \$(0, 0)\$. Players take turns to move their cars. A move consists of: updating the velocity vector by adding \$-1\$, \$0\$,...


20

An Elevator Management System A building has \$x\$ number of floors and \$y\$ number of elevators. People create up/down requests to your system, and when they are inside an elevator, command it to go to a floor. Your job is to get them to the floor they want. If this interests people, we can make a set number of floors/elevators, as these numbers change ...


19

Chain (or belt) drive system I propose a variation on this challenge by Ell over on PCG - minus the golfing requirement, of course. (Disclosure: I've already done this challenge in JavaScript) To quote the original: Your program will be given a list of sprockets, specified as (x, y, radius) triplets. The resulting chain drive system is comprised of ...


17

Resubmit May's runner-up Resubmit June's runner-up StackSTV Stack Exchange uses an STV-based system for holding elections. They use the software OpenSTV to host it. That software is no longer being maintained, and the system is being rebranded as OpaVote, and will no longer be free. This month's challenge: Build an implementation of the same STV ...


17

I resubmit Legato's submission for August 2016: CRitter Collaboration Choose a previous community challenge and work with someone(s) to complete it. Though interest in challenges may be high time can be scarce so this is a way to get more participation! It doesn't even have to be a community challenge as long is it's something you and others agree to ...


17

Write your own programming language I think for this challenge we should make the barrier to entry low, the barrier to win high, but most of all it should be fun! Since we're writing a language, it's always good to know that it works. And so to score each point that adds additional features requires a unit test. All unit test must be provided for you to ...


16

Resistor mania In electronics, two resistors in series have a combined resistance \$R_1+R_2\$, and two resistors in parallel have combined resistance of \$\displaystyle \frac{R_1 R_2}{R_1 + R_2}\$. Given an infinite supply of \$270\Omega\$ resistors with \$5\%\$ tolerance, write a program to describe how to combine them into any arbitrary resistance value. ...


16

Write an automated code reviewer Long time reviewers of code here often see the same problems and make the same comments on code in various different languages. Write a program to create a review for code in and for the language of your choice. For example, you might want to write a Python script that looks at C# code for common problems and creates a ...


14

Mandelbrot Set Fractals So it seems we started something here with Mandelbrot sets, so the proposal I want to make for October 2015 is to write a programme in your favourite language (or a new one if you're feeling adventurous) that will generate a Mandelbrot set fractal. At the bare minimum it should be able to generate the entire Mandelbrot region from x:...


14

Chess! Last year ended with a board-game spree. Let's continue this year with one. I think you all know the game of Chess, which is exactly why I just linked to the wikipedia page. Even though everyone knows it, you might not know all the details about it. What I like about a Chess challenge is that it can be both a small and a large challenge, depending ...


13

Write any kind of server. Examples are: Chat Server Ultimate Tic Tac Toe Game Server Battleship Server Web Server Media Server Implementing servers and network communication is a very important programming skill. You are likely to sooner or later be faced with concurrency issues, compatibility issues (old clients connecting to a new server after a ...


12

In image processing, a contour is a closed curve forming the boundary of a region of the image (or a union of closed curves, if the region has holes). For example, given this image: The contour of the black region is the pair of orange curves shown here: Implement an algorithm that finds the contour of a region in an image. You may assume, if you wish, ...


12

Implement Jeopardy I'd love to see implementations on this classic. For those who don't know this is the game flow: A board is created with several questions. Each column is a different category. The rows increase question value & difficulty. User selects a question & category. Correct answers increase their score by the value of the question,...


12

CRitter Collaboration Choose a previous community challenge and work with someone(s) to complete it. Though interest in challenges may be high time can be scarce so this is a way to get more participation! It doesn't even have to be a community challenge as long is it's something you and others agree to work towards for the challenge period. Definite ...


12

Reposting Simon's answer from April: Chess! Last year ended with a board-game spree. Let's continue this year with one. I think you all know the game of Chess, which is exactly why I just linked to the Wikipedia page. Even though everyone knows it, you might not know all the details about it. What I like about a Chess challenge is that it can be both a ...


11

Implement a simple calculator Where the definition of "simple" is whatever you make it - only supports basic arithmetic operators? Fine. It supports scientific notation, exponents and trigonometry? Fine! Takes input from the console? Fine! Toggle between binary, hex, octal and decimal notations? Fine! The common denominator here, is that you need: A way ...


11

Learn a new language! Write anything1 in a language you're completely unfamiliar with. 1. Ideally, something more complicated than "Hello World" and something more interesting than FizzBuzz.


11

Challenges should happen with the frequency and timing that is suitable for the community as a whole. There are some seasonal aspects to things too - winterbash (with hats) is a whole month of distraction, and perhaps it's a bad time for a challenge. On the other hand, perhaps a hat requires questions of a certain type, and having a community challenge may ...


10

Chess! Your program must support two human players and enforce all the rules, including En Passant, Castling, move legality, pawn promotion, and everything else. You must provide at least an ASCII output display for a given command. Anything above and beyond the basic requirement is welcome.


Only top voted, non community-wiki answers of a minimum length are eligible