Hacker News new | ask | show | jobs
Show HN: Color War (jointhecolorwar.com)
29 points by xentac 5206 days ago
10 comments

Try to make the screen all one color while your opponents do the same.
Written in Node.js, hosted on Amazon EC2, uses Socket.IO.
Is the code available somewhere? I'm working on a somewhat similar game concept on an identical stack.
I know it's a little belated, but here's the code. I haven't written the blog post yet.

https://github.com/xentac/colorwar

Not yet, but I plan on doing a little blog post about it and posting the code.
Addictive for about 40 seconds. I was like "GO GREEN! GREEN! GREEN! GREEEEEEEEEEEEEEEEEN!!!!" and then realized it was futile. Neat though!
I was entertained through a boring meeting. :)

    var x=0,y=0;
    
    function f() {
      if(y > 600) { y = 0; }
      if(x > 800) { x = 0; y += 10; }
    
      socket.emit('move', {x:x, y:y, id:myId});
    
      x += 10;
    
      setTimeout(f, 5);
    }
It was just a matter of time before someone stopped using a mouse and started some scripts.
Yeah, I limit the number of moves you can make per second, but mice/multi-touch move pretty fast...
Do you take into account mouse acceleration?
It just reads mouse move events, so there are only so many per second. If you send me more events than I allow, I drop the rest of them on the floor.
I'm red. I have no idea why I'm winning. Green has a really nice lissajous going on, but I don't think it's scoring them that much.
I did do some stuff to try and limit scripts. We'll see if they can figure it out.

Also, it's multi-touch enabled...

Ha, some bots are being written as we speak! Or, someone out there has some killer hand-eye coordination.
There is a bug. My dots would randomly change to a different color shortly after I placed them.
That's actually not a bug, someone wrote a bot that plays in every position that someone else plays.
Ha. That does not surprise me at all. At first I thought it was someone else but the dots matched exactly so I thought it was a bug instead.
for (var i = 0; i < 10000; i++) { socket.emit('move', {x:Math.floor(Math.random()* 750), y:Math.floor(Math.random()* 750), id:myId}); }