This thread is specifically for making suggestions for future contest topics.
Please try to keep this thread focused.
Thanks!
Printable View
This thread is specifically for making suggestions for future contest topics.
Please try to keep this thread focused.
Thanks!
I suggest a contest that has the following objectives:
Create a program that detects graphic collisions. Stated another way, create a program that includes animation or movement of an object. When that object runs into another object, cause something to happen.
For example, a pong game. A dot in the pong game moves around. When it hits a line or edge, it deflects away.
Second example, Light bikes a dot moves on the screen leaving
a line behind it. the longer the program goes, the faster the dot moves. If the dot hits the edge of the screen the program stops. If the line hits itself, the program stops. Use the keyboard keys to let the user turn the line.
These are two very, very simple suggestions for the objective. Winner could be based on cleanliness of code and 'sexiness' of submission. Code must be orginal. Submitted code will be made public to anyone that wants to use it.
The fun of this suggestion is in the fact that people can take it as far as they want -- they can do some very creative things.
Just a thought.
I copied/moved my post since we now have this one.
I got a good suggestion for another contest - GUI Design.
Give a list of required controls and basic functions for a form and
have the contestants come up with the control layout and
program the functionality? Totally creative, now one can copy,
winner can be judged on functionality and design. How about
that?
Make a working simple voxel engine.
Voxel = 3D pixel. Basically a pixel that has a x, y and z -coordinates. How to come up with voxels is up to the creator of the program :) Voxels are rather heavy to process, so they'd be of a challenge.
I also suggest a contest to create a Web Service.
This one could be left pretty open so people could get real creative.
Remember - the idea is to have fun, but to also learn new stuff!
Hi,
Personally, I'd prefer to see contests of what I'd call "semi-production" stuff, by that I mean projects that may turn out to be useful in the real world and be fun to code at the same time.
General ideas:
* Winform-related controls. Why winform ? Because the whole issue about ASP.NET although revolutionary is a bit overrated IMHO - plus everyone is putting out ASP controls but I feel that there is a shortage of simple and useful Winform controls.
* Web services, but not of the boring "A web service that returns the time" type. Something challenging and interesting would be nice here.
* VS Add-ins.
* .Net framework low-level stuff.
* DNN modules.
I won't go into specifics because everyone has a different perception about "neat" and "boring", I'm sure the ppl coming up with new contests will think of something.
Come to think of it, every single one of my general ideas is, more or less, related to .Net. OK, you can make a web service using the SOAP toolkit but there's no fun doing it. So I guess I'm a bit biased towards VB.Net...but then again, that's the future of VB whether we like it or not.
Cheers,
NTG
Anything involving the submitted programs interacting (competing) in real time.
What about a MineSweeper solving program? I can write a .Net wrapper project if you want.
Sorry to keep too similar to the current contest already running but how about a cops & robber kinda thing. Using maps liek we've seen in the pathfinding we could have a load of "Cops" on a map and one "Robber", the score could be based on how long it takes the cops to catch the robber.
So each person would submit a Cop Code & a Robber Code. Then we would play people code against others. (This way the Cop code would manage all the cops so they could work as a team)
Or
We could do like i just said but each cop on the map is a different persons code and we see who catches the Robber first. This would have to be split into different matches because we couldn't put a cop in for every entry cos that could be too many depending on the amount of entries :).
P.S. The view wouldn't be as restricted as it has been in the Pathfinder one though :).
If we did some kind of GUI design contest, could we have part of
the points come from Poll results? This would allow members to
be a part of the judging and it wouldn't be subjective to just a
few opinions?
:)
I guess people here would be too likely to vote easily on people they like... :P
No, I don't trust you! Any of you!
True, thats why it would only count for part of the overall points.
I thought it would eliminate some of the reactions like we had
from the Prime Number contest.
:D
Here's an idea: Find some 500 Pythagorean triples. (500 with none being a multiple of another e.g., 3,4,5 works, 2(3),2(4),2(5) wouldn't).
Disiance
A dance screen that dances to the music. There is some code in the API that allows you to get the sound buffer so you can read it in. I had problems early on because it didnt work with all soundcards. I wonder if its fixed now? :confused:
Two Things:
I propose Challanges to be part of this forum.
And to kick it off, the first challange would be to create the next Largest Magical Hexagon than what was last achieved.
By Largest, there would be 2 considerations:
1) If the Last Largest Magical Hexagon had n rings, the next greatest would be one that has n+1 rings.
or
2) If the Last Largest Magical Hexagon had a magic number of k, whose ringcount was n, if someone submitted one with an identical ringcount, but whose mNum was Larger, then That would then be known as the Most Current Largest Magical Hexagon.
All Successful Achievements would remain posted.
Now, to get everybody's head warmed up, a contest could be a speed test, whereby entrents must return all 3 ring magical hexagons in the shortest amount of time.
Only 1 representative of each magical hexagon must be returned, ie... For each valid magical hexagon, there are 6 equivalent rotations, and for each rotation, there is a reflection. So, only 1 of those 12 variations must be returned.
Also, in the case of "Adds to 0", there exists several Magical Hexagons that aren't rotations or reflections, but are multiplicatively identical, *-1.
These, too, must be filtered out.
So, For the challange, I submit My 6 Ring as the initial "World's Largest Magical Hexagon".
And, for all who want, I've attached some reading material, 3 attachments, starting from this post:
http://www.vbforums.com/showthread.p...16#post1810216
:wave:
-How about it?
-Lou
Ehh what the heck is a magical hexagon?
But anyway the point of my reply and my suggestion that relates to what NotLKH just posted. I think we should try to stay away from contests where people already have something for it and dont even have to do anything. One thing that makes it a contest is the time limit. Although so far its been more than enough it could proove to be a factor some time another. I dont think we should say well I have this project that does that so lets have a contest on it.
The Prime Numbers sort of showed this, it was already well known to some people and they had already nearly perfected methods of doing it. But that was just a trial contest so all was well :). The PathFinder was great because people actually had to work with something given so it was impossible for them to already have a working solution that just had to be trimmed and prepped.
Just my opinion :)
Ummmh
I wouldn't be entering the contest aspect.
I guess I should have pointed that out.
I'm not interested in 3 rings, I'm working on code to optimize multi variable linear equations which have many more variables than equations.
And, as for the challange, It has to start somewhere, and being the first submission, its only to have something to beat.
AND, if you read my attachments, you'd know what a Magical Hexagon is.
:wave:
Can I submit a form for a contest IDEA? (IE: the form for the contest)
I got this weird idea: how about having some contest so that you must pair up with someone, code together? Personally, I've never been good in teamwork, but a contest might be something that could make me considering teamworking. It would also cause some more competivity between the team members, because for sure the other one doesn't want to win because of the other's skills: it wouldn't feel like a victory if your team wins and you didn't do all that much for it.
Though, I have no idea whom I would pair with in such a contest. Probably the contest thing should be slightly too big for one person to handle in the given time.
How the teaming would work depends on how the team wants: like, other one could code a lot, but leave the bug testing for the other member. Or both could do their part on coding and bugtest the code. There are many ways to go.
Wonder what I eat to get such weird ideas...
Write an Addin that does something useful that MZTools doesn't already do. Some things might be the ability to examine all your variables and make sure that their names conform to a set of rules that you can define, or a "lines of code" counter (what a "line" is would need to be defined), or a dead Sub/Function finder, or all of the above.
:lol: My thougts exactly. :DQuote:
Originally posted by MartinLiss
Write an Admin that does something useful...
heh heh heh
Something like what Electroman posted sounds like fun, where all the contestants programs compete with each other.
Like we all program a robot. Then all robots fight each other. Last one standing is the winner.
We should be given functions to work with, like in the Maze-AI contest.
We should be given a pre-defined Interface to implement, that way everyone's robot would be standardised. Then it would be down to pure code quality as to who wins.Quote:
Originally posted by McCain
Something like what Electroman posted sounds like fun, where all the contestants programs compete with each other.
Like we all program a robot. Then all robots fight each other. Last one standing is the winner.
We should be given functions to work with, like in the Maze-AI contest.
What do you mean with "Interface"?
What I ment was that we were given functions, like walk(), run(), look(), aim(), shoot(), listen() etc. Those functions should be the ONLY functions we were allowed to use to interact with the robot.
The functins could take some specified time to run, so that one would have to decide if it's worth the extra time to aim or if the robot should just shoot at once.
If we got a say() function we could code a whole team of robots that interacted with each other and worked as a team against the other robots.
Man I would enjoy taking part in a contest like that!!!
That exactly would be the interface.
I kind of guessed that, but wasen't 100% sure. Sometimes my English skills are lacking a bit...
BTW, what is the date for the next competition?
This sounds really interesting. This is a good idea.Quote:
Originally posted by wossname
We should be given a pre-defined Interface to implement, that way everyone's robot would be standardised. Then it would be down to pure code quality as to who wins.
I like the GUI suggestion. Just a way to see how many different ways we can come up with a form design that fufills a specific function in the most elegant way.
It'd let those without a lot of VB experience compete with the experts, and the most creative entry might just win!
I'm starting not to care what it is. As long as it's something I'm happy. I really would enjoy a contest right now.
Anything besides another game contest. The contest topics should
change from contest to contest. This would allow those who dont
like games that much to participate once in a while too.
Ok, then I have another competition suggestion:
Make a program that can decrypt messages with a very basic encryption. Examples of the kind of encryptions I'm talking about would be where you substitute the letter 'a' with 1, 'b' with 2 and so on, or when you "move" the alphabeth (i.e. 'a' becomes 'c', 'b' becomes 'd' and 'm' becomes 'o').
Given a pice of text the program should be able to understand what kind of encryption it is and to decrypt the text.
That is unbelievably hard. The program would literally need a dictionary and the ability to recognize basic grammar! :sick:Quote:
Originally posted by McCain
Ok, then I have another competition suggestion:
Make a program that can decrypt messages with a very basic encryption. Examples of the kind of encryptions I'm talking about would be where you substitute the letter 'a' with 1, 'b' with 2 and so on, or when you "move" the alphabeth (i.e. 'a' becomes 'c', 'b' becomes 'd' and 'm' becomes 'o').
Given a pice of text the program should be able to understand what kind of encryption it is and to decrypt the text.
Yeah, I know. But the idea is that it should be hard, right?
I think it could be fun as long as you keep to realy simple encodings.
IP Scanner coding competition.
Fastest number of servers a second.
Has to connect to each IP and log the output given from the IP aswell :)
NOOOOOOOOOOOOO
Half the VBforums members would be arrested for port scanning :lol:
No it wouldn't. It is actualy very easy to do this and you don't need a dictionary (which are freely available anyway).Quote:
Originally posted by alkatran
That is unbelievably hard. The program would literally need a dictionary and the ability to recognize basic grammar! :sick:
This would be an interesting contest I think, and that's why I'm not going to tell you how to do it :D in case it comes up in the future. There are plenty of websites devoted to simple code breaking. Interesting subject.
Another thought springs to mind: Dictionary attack coupled to a Genetic Algorithm, would provide almost perfect accuracy as long as the cypher uses not too many jargon words (no more than 20% of total words) i reckon.
I didn't say port, I said IP.Quote:
Originally posted by Enjoi
IP Scanner coding competition.
Fastest number of servers a second.
Has to connect to each IP and log the output given from the IP aswell :)
Plus, IP scanning is legal in the UK. I'm not sure about america. Probibly the same though.
its gotta be legal here too, I get far to many scans on my SMTP server....bloody *#*E$*#@
An Minimum Spanning Tree (MST) generation algorithm would be a great challenge and its easily defined too...
Given N number of dots (randomly distributed on a 2d plane) work out an algorithm to draw lines to connect the dots together (see picture). The total length of all the lines must be as short as possible. N can vary from 3 to 500.
That's it. There are several methods and speed of the code is an issue when N --> 500.
easily achieveable in VB6 or .Net
A simple solution would look a bit like:
http://www.vbforums.com/attachment.p...postid=1834191
***EDIT***
You mean all dots must be connected as together not each dot connecting to every other dot :)
Could be quite cool but easily creates a situation where many people get the same score :)
^^^^^ Above post EDITED ^^^^^ :)
All programs that get the tree wrong will no count, the ones that do get it right will be judged on speed. There will be a fairly good range of speeds too.
Woss,Quote:
Originally posted by wossname
^^^^^ Above post EDITED ^^^^^ :)
All programs that get the tree wrong will no count, the ones that do get it right will be judged on speed. There will be a fairly good range of speeds too.
This sounds like a great idea for the contest, but I disagree. I think judgements and allowances should be made in 2 areas:
1) Speed
2) Accuracy.
And by accuracy, I mean not making it manditory that everyone get the exact right answer or be disqualified. You could weight the 2 in different ways, not necessarily 50-50.
Oftentimes in real life when we supply an answer to a problem that is not exactly accurate, it can be very helpful if it is received extremely quickly, and it is very close to being accurate.
If it were to be a weighted score, it should probably be weighted very, very heavily in favor of an accurate solution - perhaps in the range of 80..95%.
In any event, I think an MST is a good contest suggestion.
I think it could be cool with a MST contest, but I think wossname might have a bit of a head-start on the rest of us... He seems to know this stuff...
I'm sure wossy wouldn't mind helping out with the contest set-up rather than taking part himself. He's a smart guy you know. :)Quote:
Originally posted by McCain
I think it could be cool with a MST contest, but I think wossname might have a bit of a head-start on the rest of us... He seems to know this stuff...
When he said disqualify wrong solutions, he mean only discount them from that particular data set, not the enire contest. An MST program that doesn't produce the MST is useless. There is always a MST length for any 2d data set (there may be many solutions with the same value but they are all legal too).
I'll ask him to start setting it up right away, for VB.NET that is. It should be an excellent opportunity to demonstrate OOP.
If the mods like the base project (that you can all download and build upon to form your entries) they can have it to use as a future contest if they like. Sounds a bit more popular than this ants nonsense.
Yes I do see it as a good idea that we should plan to do but if you don't like any current contest you may aswell keep it to your self unless your gonna be constructive about it. I've recieved PMs off other members who are taking part in this contest but don't want to give good ideas away so even though your posting this stuff how this contest is no good others are doing it so not everyone shares your opinion.Quote:
Posted by WonkoTheSane/Wossname
If the mods like the base project (that you can all download and build upon to form your entries) they can have it to use as a future contest if they like. Sounds a bit more popular than this ants nonsense.
yes i feel you should you are are putting other members off the contest, if you dont like it ait untill he next one!
Can we keep this thread to contest ideas :) its getting a bit chit chatty :)
I know that this is a Visual Basic Forum but could some of the contests be open to C#?
Or any other language!Quote:
Originally posted by john tindell
I know that this is a Visual Basic Forum but could some of the contests be open to C#?
Dont base the judging on the code, base it on efficiency, or Design, whatever the type of the contest is!
Speaking of trees... What about making an ID3 (Identification Tree)? We could also ask for the TSP (Traveling SalesMan Problem) to be solved... The most creative approach could win, you know...
Just a couple of suggestions... I haven't had time to even check the contests, you know... :rolleyes:
How about creating a control that draws a gauge, e.g. like a gas gauge, volt meter etc on a form?
The size, placement, colors, border and maybe even shape (round vs rect.) could all be programmable,
along with range, e.g. 0-100, -15 to +15, Empty to Full etc.
Number of "ticks", label(s),
idiot light warning if a specified min or max level is reached, e.g. "Overheating!"
Orientation, e.g. horizontal vs vertical.
Needle direction from min to max, e.g. left to right, down to up, CW/CCW etc.
And, of course, drawing the needle/indicator itself at a specified value.
I wouldn't participate since I've already done much of this while playing with VB.NET, but I'd love to see what other can do.
A much simpler project might be a thermometer style indicator. Just thinking.
DaveBo
There's only a few guidelines for a good contest:
1: It has to be competitive! I know that's the nature of the contest, but I mean much more 'direct' competition, like the pathfinder (in other words, no judging, just a contest that is self explanatory in who won).
2: It has to require some constructive thinking. I don't mean creative thinking, like for the GUI project, I mean trying to come up with some crazy pathfinding (did I mention I liked contest #2?).
3: ... no that's pretty much it. More competition and the right amount of difficulty = gold!
Somewhat similar to the traveling salesman I think... Elevator program.
Given
2 elevators,
number of floors,
movement rate,
wait time per floor,
and traffic info (similar to maps provided for pathfinder) per person
timestamp
floor in
floor out (destination) for each load
Make an algorithm that makes efficient use of the elevators. Services all traffic in the least amount of time; in terms of processing speed (algorithm speed) and also the duration of the result set (movement rate * floors spanned + wait time).
Other considerations
- as in real life, once it goes down/up keeps going down/up until there is no inputted destination
- on max load, max number of person count, skip next destination unless someone has to go off the elevator.
- traffic info is queued per floor, to facilitate processing of max load consideration
- if the person is not going the same way as elevator he does not get on elevator.
Thats it for now. :)
I like this a lot. We should do this. It would be a good candidate for having an interface (or a base class) that everyone should implement (derive from). I could do a .net IElevator interface if needed.Quote:
Originally Posted by leinad31
Thanks.
Although the constraints still need some ironing out. I think the weight aware feature (in addition to max load which is required) should be an algo option instead (up to the programmer if he'll implement it) rather than required.
The metrics for evaluating algo performance also needs to be itemized.
Since its a real-world problem, why not just use time as a measure of quality.
A lift has a terminal vertical speed (can be expressed in Floors Per Second) and a time required to accelerae to that speed. Then you have the time taken to open/close the doors and allow passengers to embark/disembark.
Let each floor of the building be a Stack of people that have all pressed the "summon elevator" button. The simulation wouldn't need to run in real time, just as long as it adds up the times to an imaginary clock.
You could then test the algorithm with a test set of say a 20 storey building and 25 people placed on random floors.
The algorithm should use the least time possible to move each person to their desired destination (which is not known until the person enters the lift naturally). The lift knows how many people are waiting at each floor by the number of times that floors "summon elevator" button has been pressed.
Once a person has reached his destination he is removed from the simulation and (maybe) points are scored.
A person gets bored after X seconds of waiting for the elevator and takes the stairs instead. Points are lost for every time someone uses the stairs.
System variables: (will change to allow varying levels of dificulty that the algorithm must be able to cope with)
- Number of floors
- lift capacity (number of people on board maximum)
- initial number of people in simulation
- Boredom / Stairs threshold (in seconds)
This sounds really interesting to me, what do you others think?
All of this logic can be taken care of in the Interface or Base Class that everyone would be given. All the competitor would have to do is write the movement rules for the lift.
This could be brilliant.
I think it should be a console app too, keep things focused on the job in hand rather than fancy GUI. Console apps are dead easy. Makes it easy to do an ascii art representation of the building and the number of people per floor...
Quote:
Originally Posted by wossname
Very interesting idea,
I'll speak to electroman and manvo and see what they think, its not too much the lack of ideas at the moment this thread contains a lot Its more the fact there hasnt been enough interest, I'm(along with Manvo And Electroman) willing to put this together bu its the interest that is the issue :)
Good points made though, keep them comming :)
I'll throw together a .net base class called Elevator and put all the timing stuff and housekeeping in there so everyone's on a level playing field.
All that is required from the competitors is a single class that derives from Elevator.
I think the Elevator Simulation is a great idea.
Wouldn't it be more realistic if the elevator didn't know how many people are waiting until after it stopped? When I get to an elevator that has already been summoned I'm just as likely to not push as I am to push several more times! (depending on my patients ;) )Quote:
Originally Posted by wossname
Perhaps I missed it in the specs, but there should be two "summon elevator" buttons - Up and Down.
To throw a realistic twist to it, the "Down" button could be pushed, but the person really wants to go UP! There's no algorithmic puzzle here, it's just that the elevator has just wasted some time in stopping; and the person is now going in the wrong direction whilst taking-up valuable space.
Personally, I think that the driver program that would test the contest entries might, in itself, make a good contest. :)