Joe
Hello geeks,
In this third round of the Lebgeeks Programming Competition we will be coding a nice simple little game.
Rules of the Game
The game consists simply of a series of 5 questions. If participant gives an incorrect anser, it's game over. If he gives five consecutive correct answers, he wins.
But where do the questions come from?
Questions will be selected randomly from a list of questions written by the admin. So you are also asked to develop an interface that allows admin to add/remove/modify questions. Of course this admin should be password protected so that not everyone could blindly modify it.
As usual, you are asked to spend some time working on the UI. You can do a web interface, a GUI or a command line one. You will get more time in order to focus on that.
And you also get the creativity points. That means you should come up with your own ideas. Here are some suggestions:
- Questions will have 4 answer suggestions (a la "who wants to be a millionaire"), admin will have to input 4 suggestions and define the correct one.
- Score based on the time taken to answer. You could even set up a high score system.
- Questions come in increasing difficulty. Admin has to give each question a difficutly rating (from 1 to 5). First question will be selected randomly from diccutly 1 list, etc.
- Statistics. Each question: how many times asked, how many times answered correctly, etc.
Unlike precedent rounds, you have to participate in teams of two person. Teams should be declared as soon as possible. If you're having troubles finding a teammate use this thread to request one.
Grading systems
- 2 points for giving a name to your project. (mandatory)
- 3 points for the core of the system.
- 10 points for the UI.
- 10 points for creativity.
- 5 points for extra exercise.
How to send your solutions
- Answers should be turned in before Sunday, December 5th 2010. That would give you 4 week ends to work on it. As usual, 3 points bonus for the first team to turn in their solution.
- Your solution should consist of a zip file containing only your source code. Do not export your projects from Visual Studio or other IDE. Do not send me an exe file. Just the source files you wrote (you can dispose them in folders) and a README explaining the content of each file.
- Languages permitted: C, C++, Java, C#, Python, PHP, Ruby.
- Feel free to use any kind of libraries, packages, API, frameworks, ... I will personally be using Django, a web framework coded in Python.
- You are free to use databases. However, if you do, you have to use SQLite. You will have to include the sqlite file in your zip file.
The extra exercise.
So far, the competition hasn't been very challenging, focusing mainly on polishing your products (this is why I put extra emphasis on UI development). However, starting this round, we will be tackling some advanced issues. And as a first advanced exercise, we will be doing some AI.
The goal is to have our program intelligently determining the difficulty of a question by analyzing their statistics. The more a question is answered wrong, the more difficult it will be considered.
You will be graded over 5 points on your resolution of this task. Note that if you find that too difficult, you can simply ignore it and focus on the easier tasks at hand.
Do not hesitate to ask questions if anything is unclear. You should also be starting to form your teams soon. If you have troubles finding one, I will hold a "Partner request" list on this thread.
mesa177
Okay, I still couldn't find time to complete the last competition (I'm having problems with file manipulation in C++, if this continues I'm posting a thread about it), but this is actually interesting...
Unfortunately, I'm not skillful enough to generate a nice GUI in C++ to match a theme I'm thinking of (evil genius/mad scientist lab where if you win you're declared an evil genius otherwise you're declared a pathetic minion; questions are a bunch of brain teasers). The AI thing can be done with neural networks, but is it possible to do in C++?
Mandatory partner? I'll ask my brother if he's interested; if not, I'll post a request for a partner.
Joe
The whole purpose of the team work is to have different people match up so that their skills would be complementary. You say you do not know how to do a GUI, look for someone who can. You work on the intelligence and he/she works on the UI. It'll be up to the team to decide how to interface the two. The easiest thing for you would be to find a Qt programmer. You implement the functions, he develops the event handlers.
mesa177
rahmu wroteYou say you do not know how to do a GUI
Not in C++, but in Matlab that's another story. Why do you hate Matlab? :( (I know, because it's not open source...)
incinerator
very very interesting rahmu.
the deadline is great we also have holidays coming up so I can easily find time. Already my head is turning.
I was thinking a simple ms access database could do the trick? but i found a little tutorial for csharp with SQLlite, i will read it.
<partner request>
Kassem
Hey incinerator, if you're going to be doing it in C# then maybe we could team up? I'm definitely in this round of the competition!
incinerator
windows forms? Sure Thing.
If it's ok with rahmu.
Joe
@incinerator & Kassem: Windows forms is ok. Access is not, try to learn SQLite. It's really easy and will allow me to test it. The advantage of SQLite is that I don't have to struggle setting up and administrating a database for each solution.
@mesa: I wish I could allow MATLAB. But we've been over this. It's not an open source matter (all C++ solutions I get are specifically developed on Visual Studio compiler that is not open source). It's a price matter. I cannot afford MATLAB to test your solutions. I also run Ubuntu at home, there is no Linux version of MATLAB.
MrClass
hey mesa177, lets do it php/mysql. should be easy and straight forward :P
MrClass
oops, we should use SQLite. Lets learn it!
incinerator
It's on.
<teamed up with Kassem>
Padre
there IS a linux version of Matlab ... want a copy ? :P
MrClass
wow sqlite pretty awesome and easy, time to begin programming!
Joe
Padre wrotethere IS a linux version of Matlab ... want a copy ? :P
I stand corrected. I still cannot afford the 1000$ license. Thanks for the offer anyway :)
arithma
There's octave. Its syntax is close to MATLAB's and is Open Source. Works for both windows and linux. Though I felt the windows version a little bit too short on the corners. Haven't tried the Linux one, but it should be better.
mesa177
arithma wroteThere's octave. Its syntax is close to MATLAB's and is Open Source. Works for both windows and linux. Though I felt the windows version a little bit too short on the corners. Haven't tried the Linux one, but it should be better.
After this comment, I googled Octave and started reading
Programming Differences between Octave and MATLAB, I've gotta say looks like Octave might be a more comforting programming langauge than Matlab. I'll download it and give it a test drive.
Joe
Octave looks interesting. I usually like GNU software (some examples include gcc, GIMP and emacs). I'll look into it. It may be accepted in later rounds of the competition.
@everyone:
So far we have one team Kassem + incinerator.
Can other teams declare themselves? And if you're looking for a team, could you post a partner request?
GN90
looks interesting, but i won't be able get into it with someone because my midterms are sometime between 29 nov and 4 dec so i don't want to cause any trouble for my partner (he will ask me to do something and i'll be "hey listen i can't today cause i have this exam, bla bla bla ....").
However today in the lab time, my friend saw me checking the site and saw the exercise so he asked me if we can do it. So we're not gonna enter the competition cause we are not sure if we can deliver in time , but we will post our version once finished (if he still wants to do it).
Kassem
Is it okey to use SQL Compact Edition as the Database Engine? It's free and file based, just like SQLite...
Ayman
This competition I wont be able to participate in it as I am very busy with lots of stuff and I am already lagging behind in some university projects. Hopefully next time I should be able to participate. Good luck everyone :)