9
\$\begingroup\$

I'm a big fan of king-of-the-hill, and I'd like to see more of them. One of the problems is that they take a bit of work to set up and run. More than your average code-golf question, for instance.

Creating a controller isn't that hard, but it would be easier (and thus have a lower entry barrier) if there were generalized frameworks for a few popular languages. I think at least C/C++, Java, and Python are good candidates. Obviously any languages would be welcome, but with those three we can include a great majority of users. Included should be options for tournament type (round robin, free-for-all...), scoring methods, etc, but the basic structure and I/O would all be handled, leaving a few skeleton methods to implement.

I'm thinking of making one, since I already have most of the necessary parts in at least one language.

My question is: How do I go about posting it so that people can use it? Points to consider:

  • It's not a challenge. There's not much debating this.
  • It's also not even a question. I suppose I could make a pithy "Are there any KotH frameworks?" question to answer, but even then it's too broad, etc.
  • If posted to Meta, people just won't see it. Most users don't even seem to know about the sandbox, and it's been around for quite some time. This seems like the kind of thing that would get attention for a few days on meta, then disappear forever. If it won't ever be used or cared about, I just won't bother.
  • If posted to Main, is there precedent for something like this? I haven't seen any similar posts, and if people are just going to VTC it as off-topic or similar, I just won't bother.

So, I'm posting for feedback/guidance, and to get a general feel for if the community wants this kind of thing, and how it fits into the overall picture.

\$\endgroup\$
8
  • \$\begingroup\$ Also, I know there was some discussion about this a while back, but iirc it was mostly in chat and nobody came to any conclusions. \$\endgroup\$
    – Geobits
    Commented May 17, 2014 at 1:20
  • 4
    \$\begingroup\$ Wherever it goes, exposure could be slightly increased by linking it in the tag wiki. \$\endgroup\$ Commented May 17, 2014 at 1:24
  • \$\begingroup\$ Something that I've noticed is that the Process based controllers take a considerable amount of time to run. In some cases, it should be reasonable to use the style of the Wolf KotH (but with obvious restrictions on valid entries). Something like mouse run \$\endgroup\$
    – Justin
    Commented May 17, 2014 at 3:27
  • \$\begingroup\$ I agree, and I'm certainly not saying all koth questions should be using this-or-that framework. I'm just trying to offer something that could be useful for many types. A Wolf-style one probably doesn't need any help getting the I/O part right, for example (since it isn't anything but calling a method), but if someone isn't sure how to stream commands back and forth on stdin/out or handle multiple processes, it could come in handy. \$\endgroup\$
    – Geobits
    Commented May 17, 2014 at 3:31
  • 4
    \$\begingroup\$ Here's an idea: post a KotH and state that you are following this framework that you link to. Keep mentioning the framework. \$\endgroup\$
    – Justin
    Commented May 17, 2014 at 3:32
  • \$\begingroup\$ In my opinion (personal, not moderator) a controller should not be language specific. That is one of the reason I posted a very flexible controller for the very first [king-of-the-hill]. More-over at least one "easy" language specific framework achieved that ease by opening a security hole you could throw a dog through. Run the entrants in a separate context already. You don't have to run a process per entrant per round like I did the first time, but that means using more sophisticated IPC than popen which I used because it was suffcient. \$\endgroup\$ Commented May 17, 2014 at 4:49
  • 1
    \$\begingroup\$ Maybe I'll find the time to write a controller that uses persistent pipes to overcome the costs of running so many processes (I cringe to think how slowly that runs on a windows system). \$\endgroup\$ Commented May 17, 2014 at 4:57
  • \$\begingroup\$ @dmckee I did something similar with Hunger Gaming. It was one process per entry with persistent stdin/stdout streams. That would be an option in any framework I write, as well as one process per turn ( to easier limit tracking game history for some challenges). \$\endgroup\$
    – Geobits
    Commented May 17, 2014 at 5:00

1 Answer 1

2
\$\begingroup\$

There are a lot of existing sites that do automated scoring of programming challenge and contest submissions. Some are very general purpose, some very specific. Some have published their code, some might be willing to, and others certainly aren't but could be used as inspiration. This seems like a wheel that doesn't need to be completely re-invented.

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .