# September 2015 Community Challenge

It's time to choose a for September 2015.

• Post your challenge as an answer to this question. Feel free to resubmit non-winning ideas from previous months.
• Vote for those answers which interest you.
• At the end-of-day on Monday, August 31st, the top-voted post will become the next challenge.

Once the challenge topic is decided, post your solution as a question on the main site and tag it with . The challenge runs throughout September (but nothing stops you from posting an entry later on).

• I'm way behind on the community challenges already... are there enough contributors recently that warrants more challenges, or might it be time to take a little break from them again? – Simon Forsberg Aug 18 '15 at 10:31
• Maybe they could be quarterly challenges? – Edward Aug 31 '15 at 22:23
• If we move to quarterly challenges, there's more room to apply the actual improvements and for 'bigger' challenges. Perhaps this topic needs it's own meta. Never feel obligated to complete all challenges by the way. – Mast Sep 2 '15 at 16:50

## 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 complexity.

We could also have a standard input for requests, for example the string 1 3 would mean that there is an up request, to floor three (the system doesn't know the destination at the time of the up request, only when it gets to the floor of the request). Then, you could have a file of such strings.

Elevators also have a capacity, although I'm not sure we need to create such scope for ourselves.

Edit: I suppose we will also need to think about time a little, maybe this is too complex?

• I think there's some Stack Overflow related questions about this, for example stackoverflow.com/q/493276/1310566 . Making efficient elevators can be a quite interesting task. – Simon Forsberg Aug 18 '15 at 10:33
• This is a relatively common interview question, and there are quite a few frills that such a system can have. I'm not sure the time that people can devote to this, but I feel like just having, say, two elevators that go where they are supposed to is probably enough for this challenge. – Carl Aug 25 '15 at 14:58
• Speaking of this, I do see that this is getting to be a popular idea. Should I refine the rules as I see fit? Maybe create the base input file and expected output? How much responsibility do I have to make sure this runs smoothly? :) – Carl Aug 25 '15 at 15:02
• Typically we leave the specs as open-ended as possible, so as to not limit languages, creativity and required skills - basically these "challenges" are merely an inspiration for something to implement and put up for review, nothing with hard specs or anything. – Mathieu Guindon Aug 25 '15 at 15:10
• I've not been excited about a community challenge for a while. ++ I can't wait to implement something. – RubberDuck Sep 18 '15 at 11:32

# 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.

• I've never written LOLCODE before. Are you sure? – Mast Aug 3 '15 at 18:18
• @Mast Brainfuck seems nice as well. – Der Kommissar Aug 3 '15 at 18:42
• @Mast I think he meant swift ;-) – Mathieu Guindon Aug 3 '15 at 18:43
• Learning a new language isn't really a challenge of its own. It wouldn't make sense to tag a question with you using a new language as "community-challenge". – Simon Forsberg Aug 18 '15 at 10:34
• That's an interesting definition of "challenge", @SimonAndréForsberg. I challenge everyone to learn Objective-C or Swift every day. – nhgrif Aug 18 '15 at 11:55
• Perhaps you should combine this with another problem. Like Chess in a new language? (I haven't even implemented Chess in a language I'm familiar with...) – Justin Aug 21 '15 at 6:36
• @nhgrif I mean "challenge" as in "community-challenge". You can implement any of the already existing community-challenges in a new language. As some of us did already. As Justin said, this would benefit from being combined with another challenge. What should I make in this "new language"? Chess? Project Euler #42? Minesweeper? Tic-Tac-Toe? A Random Name Generator? – Simon Forsberg Aug 21 '15 at 13:34

# 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.

• Can output be FEN? – SirPython Aug 8 '15 at 15:06
• I guess it could, although I would prefer an ASCII board. – user34073 Aug 8 '15 at 15:17
• I'm gonna do this because it sounds awesome. – Fund Monica's Lawsuit Aug 10 '15 at 17:59

# ASCII Art Bicycle Chain

Create an app which draws a bicycle chain vertically and resting on a flat surface in ASCII art by taking the following inputs:

1. The pitch of a link. (distance between the two pivots)
2. The number of links in the chain.
3. The maximum rotation/angle allowed for the links

With certain inputs the chain would form a strict shape, like a circle or rectangle. With others, you'd get a saggy chain.

## PS

I have no idea if this would even work.

• Why would it not work? – SirPython Aug 28 '15 at 20:26
• The idea popped into my head and I haven't validated the whole thing. I think it can be done with some trig and basic physics. But I'm not certain. – Emmanuel Rosa Aug 28 '15 at 20:33