Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Programming IT Technology

ICFP Contest Underway 43

iseff writes "The ICFP Contest (reported first here) is now underway. There's probably still some time for us slackers to code up something for the first round. This year's problem is similar to the board game Cops and Robbers. What I find cool about this year is the split into two parts -- code the original spec, then wait, get a new spec, and modify. Plus, any language is accepted, even though it's a 'functional programming' contest."
This discussion has been archived. No new comments can be posted.

ICFP Contest Underway

Comments Filter:
  • by DerekJ212 ( 867265 ) on Saturday June 25, 2005 @08:26PM (#12911401)
    Just log onto another computer in todays work environment and you have successfully become involved in a game of "Cops and Robbers"! See the wonderful article about the high school kids if you dont know what i mean! Derek
  • by ZombieChiefExecutive ( 892832 ) on Saturday June 25, 2005 @08:29PM (#12911410) Journal
    I would probably enter a contest or two if the project was a bit "deeper" than cops and robbers. I'm sure it takes skill to do this, but I mean, how about something that keeps the interest a bit more?
    • by Anonymous Coward on Saturday June 25, 2005 @08:32PM (#12911415)
      I would probably enter if they said what ICFP meant.
    • by ciroknight ( 601098 ) on Saturday June 25, 2005 @08:39PM (#12911438)
      Artifical Intellengence.

      It's often best practices to make a contest be a game programming contest; people like games. People like to code interesting projects. Luckily this puts them together.

      Before you pass it off as "too simplistic" or not "deeper", that game probably has well over 10^30 different possible configurations, easily defeating similar games like Chess, and on par with games like Go.

      These are the kinds of things that really bring out the talented coders.. people who can design the algorithms, people who can figure out the internals of the game, and not just the coders who write code for a living. I can't wait to see the results; I'd work on it myself if I could.
      • by ZombieChiefExecutive ( 892832 ) on Saturday June 25, 2005 @08:50PM (#12911481) Journal
        Before you pass it off as "too simplistic" or not "deeper", that game probably has well over 10^30 different possible configurations, easily defeating similar games like Chess, and on par with games like Go.

        I hear you. But there is so much more to life than games. I think... ;-)

      • by Ambush Commander ( 871525 ) on Saturday June 25, 2005 @09:12PM (#12911560)
        and on par with games like Go.

        Then we must worry about the game being too hard [wikipedia.org]. Fortunantely, it'll be hard for everyone, but perhaps that's why we won't be seeing animated game transcripts (although that'd be really cool).

        • by ciroknight ( 601098 ) on Saturday June 25, 2005 @09:26PM (#12911607)
          Actually, I would expect them to have an animated game transcript. Last time I programmed in a challenge like this (GNU Robots in PHP basically), I built an ASCII library for all of the graphics processing.. of course this was pre-AJAX, so it wasn't nearly as good as it could have been..

          And yes, the game is actually too hard. That's the whole point; it's a fair game. Nobody's going to have any chance better than anyone else unless they design their algorithms correctly. That takes all of the guesswork out of the game, and ensures the playing field is fair. It also adds a lot of variability to the game, allowing for a huge amount of possible attacks at the game.
      • by Anonymous Coward on Sunday June 26, 2005 @01:12AM (#12912456)
        It's often best practices to make a contest be a game programming contest;

        Actually it's not. The problem with multiplayer game simulations is that the best strategy will depend on what other bots are doing. Even if you write a very complicated program that detects what strategies the other bots are following and has a large number of strategies coded as possible responses (which is far more effort than most entrants will make), there will still sometimes be no winning strategy against certain groups of bots, so all your extra effort goes to waste and someone with a trivial strategy wins.

        If you absolutely must run a contest on a game, use these rules:

        1) two players at a time only.

        2) run many iterations.

        3) consult a game theorist about your ideas.

        • by ciroknight ( 601098 ) on Sunday June 26, 2005 @12:40PM (#12914585)
          The thing about a Game competition is, that it allows for so many different strategies, that anyone can come up with one, code it, bring it to life, and have a chance to win. Therefore, games make really good contests.

          Of course any game competiton will run many different iterations due to the fact that so many things either have to be randomly generated, and the bots my behave differently in different environments.

          The thing is, if this was a program to do database sorting, nobody would care (or anything else randomly that can pop off your head; let's face facts that most programming tasks suck. That's why we're writing the damned program in the first place, so that someone doesn't have to do it by hand!!!). So really, it is best practices to make a competition a gaming competition.

          These particular rule sets, I'm not very happy with, but that's personal reasoning. And any game theorist will tell you that anyone's got a fair shot at this; the search space is so great that nobody will have any marvolous breakthroughs, and it's more of a game of chance. And everyone knows contests of chance are more fun (Texas Holdem anyone?) :-D
          • by Anonymous Coward on Friday July 08, 2005 @12:34PM (#13014344)
            The thing about a Game competition is, that it allows for so many different strategies, that anyone can come up with one, code it, bring it to life, and have a chance to win. Therefore, games make really good contests.

            I'd prefer the person who successfully implemented the best strategy to win, not "anyone." That's the problem here, there's no guarantee that the best program or programmer will win.

            The thing is, if this was a program to do database sorting, nobody would care (or anything else randomly that can pop off your head; let's face facts that most programming tasks suck. That's why we're writing the damned program in the first place, so that someone doesn't have to do it by hand!!!). So really, it is best practices to make a competition a gaming competition.

            A programming competition can be fun without the problem being to implement a game. Plenty of previous ICFPs were not games and they were fun.

            Seriously, it's cute and all to have a programming competition where you write code to play a game, but it's not the best way to do it.

    • by Anonymous Coward on Saturday June 25, 2005 @08:45PM (#12911463)
      you are such a fucking liar. you wouldn't enter this contest ever, you just like to jerk off while reading slashdot. mental masturbation is not the same thing as being skilled
  • by Anonymous Coward on Saturday June 25, 2005 @08:34PM (#12911421)
    but this textarea is insufficiently large to post the details of that flaw. I will provide a PDF later.
  • ANY language? (Score:-1, Redundant)

    by RyuuzakiTetsuya ( 195424 ) <taikiNO@SPAMcox.net> on Saturday June 25, 2005 @08:48PM (#12911471)
    So I guess this means QuakeC is a go?
  • Sounds fun (Score:0, Offtopic)

    by lvleat ( 894899 ) on Saturday June 25, 2005 @08:49PM (#12911479)
    If I didn't suck balls and programming, and had a bigger attention span bigger than a goldfish, I'd give this a shot. But..I won't. The game actually sounds hella neat ^_^. G'Luck to everyone who's participating.
    • by headkase ( 533448 ) on Saturday June 25, 2005 @09:12PM (#12911561)
      Check out Arimaa [arimaa.com]. It's a game based on positional intelligence in stark contrast to brute force adaptive space searching that a chess engine uses. What is positional intelligence? Don't know, you gotta play it to learn it. But one thing that has been demonstrated so far is that a beginner human player has a good chance of beating the best computer player yet devised. And Arimaa has the same depth that is intrinsic within chess as well - your rating as a player ranges from novice to grandmaster. Positional intelligence has yet to pan out but one thing is proven by Arimaa, a new approach is needed to when dealing with the evaluation of the rules of it's game.
      • by blogan ( 84463 ) on Saturday June 25, 2005 @10:00PM (#12911693)
        Looking at the game it's only been out for less than three years. If the game was as popular as chess, than stating that there's no good computer program would hold a better argument that the game strategy is unique.
    • by rbarreira ( 836272 ) on Sunday June 26, 2005 @01:10PM (#12914701) Homepage
      Offtopic? Please...
  • by Anonymous Coward on Saturday June 25, 2005 @08:56PM (#12911516)
    Whoever enters a BrainFuck entry will be my personal hero.
    [+++>>><<<---]
  • More on the task (Score:5, Informative)

    by spockvariant ( 881611 ) on Saturday June 25, 2005 @09:08PM (#12911553)
    Participants need to write programs that control bots - cop bots and robber bots on a pre-defined map. The goal of the robber bots (of which there's only one in the first round) is to rob as many banks as possible (to rob a bank, a robber needs to simply arrive at its location), and that of the cop bots is to minimize the amount of money stolen - and if possible, catch the robber. The map can be seen as a directed graph with various edge attributes that decide how fast and in what direction a particular bot can move.

    What is really interesting though, is the format in which the tournament is going to be played. Every game will consist of 5 cop bots going against 1 robber bot. The cop bots will be written by individual participants - and will have the capability to communicate with each other, suggesting 'plans', and voting on them to elect the best one. The whole team gets rewarded if the robber is caught, but you also get individual bonuses for individual achievements. This adds a byzantine-generals like dimension to the problem, since the strategy is always a mix between cooperative effort and individual greed.

    The last and most important twist is the fact that the second round is worth 'significantly' more than the first, and involves adapting your bots to a modified version of the problem. What this modified version will be is a closely guarded secret... but it means that it's probably a good idea to spend as much time thinking about the design as thinking about the strategy.
  • ICFP (Score:-1, Offtopic)

    by Anonymous Coward on Saturday June 25, 2005 @09:23PM (#12911600)
    I see frost pist?
  • Oh, great (Score:3, Interesting)

    by Rick and Roll ( 672077 ) on Saturday June 25, 2005 @10:53PM (#12911904)
    Now people have a place to meet to break all the contest rules.

    I am working on this as a solo programmer. I'm more into math and algorithms than the average state university C. S. graduate, but still not very good at math. So I don't expect to have a very great entry, but will enter anyway. It would be really nice to make it into the playoffs (you compete against mediocre judge's robots in the regular season, and have to beat them to get into the playoffs). I think I'll be lucky if any AI I add doesn't break the protocol code (disqualifying my robot).

    I'm going to work into the wee hours of the morning both tonight and tomorrow night (I am in Arizona, so the contest started at 7:00 AM Friday and ends at 7:00AM Monday). I'll see what I get. If nothing else it will be a good learning experience - in fact it already has been good.

    I've been following the mailing list. The most interesting devlopment was that someone discovered that the five cops could camp the six banks, because two banks were only separated by one intersection. The organizers released a new map to fix this.

    It's an exciting contest.

  • by Mr. Bad Example ( 31092 ) on Sunday June 26, 2005 @12:14AM (#12912212) Homepage
    I kept reading this as "Insane Clown FORTRAN Posse".

  • by billbaggins ( 156118 ) on Sunday June 26, 2005 @12:20AM (#12912234)
    Well, ok, I lived in the Hyde Park area (the setting of the game) for a good solid 8 months. Odd, though... they've got the police station located at 55th & Woodlawn... Unless my memory is decieving me, that's actually a *fire* station...

    (Hrmm. No, now that I think of it, that corner has a Starbucks [what corner doesn't?], a church, a school, and some nasty-looking apartments. The fire station is one block west. Ohwell, this is supposed to be the fictional future hyper-advanced year 2000 Chicago, maybe there'll be some changes by then...)

  • mod do3n (Score:-1, Troll)

    by Anonymous Coward on Sunday June 26, 2005 @12:50AM (#12912363)
    the same operation that should be SUFFERING *BSD stagnan7. As Linux of various BSD Population as well ass until I hit my to make sure the with the work, or
  • Tubgi8L (Score:-1, Redundant)

    by Anonymous Coward on Sunday June 26, 2005 @02:05AM (#12912632)
  • by dbcad7 ( 771464 ) on Sunday June 26, 2005 @02:36AM (#12912725)
    I like the "create this" part.. but the time pressure too much for my basic (literaly) skills.

    I learned basic many moons ago (apple IIC if you want to calculate that), and other than a little python recently, I haven't done much coding. I find as an individual not doing it for a living, programming gets to the point where you say.. ok I can do this, but now what do I do ?

    A few years back, I had a freind who wanted a program to mactch up roosters for fighting, It had the following requirements...

    must randomly match

    must match within 2 ozs

    each participant had 2 entries, must not match into same "owner"

    avoid matching 2 owners against each other twice if possible

    Altough probably simple for most of you hard core coders, it was a challange for me, and I did it in qbasic.. my reason for bringing this up is that if I had other challenges like this, I probably would have kept at it more. I like the idea behind contests like these.. perhaps I will try to do this challenge just for my own fun and not part of the competition.

  • Evolved algorithms (Score:3, Interesting)

    by -Harlequin- ( 169395 ) on Sunday June 26, 2005 @08:32AM (#12913520)
    This seems like a suitable challenge to grow your program using mutation & selection and/or crossbreeding methods to create an evolved solution instead of a designed one. Set it up now, and leave some simulations running on a dedicated box or six, 24/7 until the competition. Then take your killer software to the competition.

    The coolest bit would be when anyone asks "So, how does your program work?", to which you would answer "I haven't the faintest idea. It just does." :-)
    • by rbarreira ( 836272 ) on Sunday June 26, 2005 @09:12AM (#12913643) Homepage
      This reminds of that somewhat-well-known story which Skiena tells in one of his books.

      The story's about neural networks, it tells about a military system which had a neural network program which was supposed to be able to distinguish between images of tanks and images of regular cars. They trained the network with their trainining input sets, and after some training, it was working for those.

      When they started using the system in real life, it was a complete disaster... After some investigation, they concluded that the pictures they used to train the network were the guilty party - the car pictures were all taken on a rainy day, and the tank pictures were all taken on a sunny day. Conclusion - the network was distinguishing between cars and tanks based on the light present in the scene :)
    • by swiftstream ( 782211 ) on Saturday July 02, 2005 @08:48AM (#12968396)
      My brother in law worked with a professor at Stanford Unviersity (Koza or something...) who worked with mutating computer programs and the like. At one point his computers designed a circuit which always returned the cube of the number inputted, but he couldnt figure out why.

      So, not so far-fetched, after all.
  • by epine ( 68316 ) on Sunday June 26, 2005 @09:27AM (#12913709)

    In the original thread there were posts about the advantages of LISP and related languages citing garbage collection as one of the pillars of post-C language design.

    Now, I find this amazing. Apparently, functional languages can solve every real world problem with ease except keeping track of what resources have been allocated and their necessary life scope. Why do such potent language frameworks punt this problem to a simplifying heuristic? Are problems that arise in the implementation domain of a fundamentally greater complexity than problems that arise anywhere else?

    • by Anonymous Coward on Sunday June 26, 2005 @10:26AM (#12913971)
      Apparently, functional languages can solve every real world problem with ease

      This is a straw man. Nobody claims this apart from the zealots, and they can be ignored like all other fanatics.

      What serious FP users claim is that FP can solve many classes of real-world problem with greater ease than existing imperative languages.

      There is some truth to this claim. Many OO design patterns have far simpler equivalents in FP languages. The visitor pattern, for example, is nothing more than an extremely complicated, tedious, and inefficient substitute for pattern matching on algebraic datatypes. FP languages are highly optimised for tree processing, making them ideal for any application that uses XML.

      There are also problems which FP does not make any easier; for example, simple text processing applications are typically much more complicated to write in FP languages than in specialised scripting languages like Perl or Ruby, while event-driven GUIs are a problem ideally suited to an OO approach, which is another weak point of FP languages (though there are FP/OO hybrids like OCaml and Lisp's CLOS which go some way to dealing with this problem).

      If you're interested in seeing what FP has to offer imperative/OO developers, just look at the Boost libraries for C++. Many of the ideas there, like closures and lazy lists, have been drawn from FP research. Sounds like someone thinks FP is interesting enough to be worth serious effort bending a non-FP language to support it.

      ...except keeping track of what resources have been allocated and their necessary life scope.

      The garbage collector is a solution to that problem. In the presence of dynamic scoping, it is the only general solution that has been discovered so far. The only method of memory management that provides superior speed and efficiency is static allocation on the stack, and that is a great restriction that makes programming considerably more difficult.

      What exactly is your problem with GC? It removes a major source of bugs and decreases the complexity of a program considerably, without introducing any major disadvantages. So why are you so hostile to it?
      • by Anonymous Coward on Sunday June 26, 2005 @11:54AM (#12914385)
        [GC] removes a major source of bugs and decreases the complexity of a program considerably, without introducing any major disadvantages.
        Not true. GC leads to excessive disk swapping when running a CPU-intentensive application even when memory requirements for the algorithm are not particularly high.
        • by Anonymous Coward on Sunday June 26, 2005 @12:07PM (#12914437)
          That depends highly on the particular program and garbage collector, and probably isn't true in the general case. But in any event, there was a really good paper [umass.edu] at this year's PLDI about how to make garbage collectors avoid paging that's well worth reading.
    • by Reverend528 ( 585549 ) on Sunday June 26, 2005 @11:03PM (#12917635) Homepage
      ...the advantages of LISP and related languages citing garbage collection as one of the pillars of post-C language design

      LISP really can't be categorized as a post-C language, as it was created roughly 15 years before C.

Anyone can make an omelet with eggs. The trick is to make one with none.

Working...