From: "Brian Schröder" Date: 2004-12-12T09:47:26+09:00 Subject: Re: [QUIZ] Learning Tic-Tac-Toe (#11) --Multipart=_Sun__12_Dec_2004_01_47_22_+0100_B3F+6KKIY4RPIIJR Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable On Sun, 12 Dec 2004 04:12:28 +0900 Hans Fugal wrote: > It would be good to be able to play against eachother when this is all=20 > over, so I propose the following 'protocol'. It's not complicated and=20 > probably not ready for tournament tic-tac-toe ;-), but it should do nicel= y. >=20 > [Snip] I encountered some inconsistencies with x,y addressing of your board. So I= =20 wipped up an improved version of the server. If you'd like to set it up on = your address, it would be fun to test our programs against each other. Regards, Brian PS: As it are two files, I'll append them. I hope this is also readably via Newsgroup. I'll put up the server tomorrow also on my website. But now some sleep. Regards, Brian --=20 Brian Schr=F6der http://ruby.brian-schroeder.de/ --Multipart=_Sun__12_Dec_2004_01_47_22_+0100_B3F+6KKIY4RPIIJR Content-Type: application/octet-stream; name="tictactoe.rb" Content-Disposition: attachment; filename="tictactoe.rb" Content-Transfer-Encoding: base64 Y2xhc3MgTW92ZQogIGF0dHJfYWNjZXNzb3IgOngsIDp5LCA6cGxheWVyCiAgCiAgZGVmIGluaXRp YWxpemUoeCwgeSwgcGxheWVyKQogICAgQHgsIEB5LCBAcGxheWVyID0geCwgeSwgcGxheWVyCiAg ZW5kCiAgCiAgZGVmIHRvX3MKICAgICJQbGF5ZXIgI3twbGF5ZXJ9IHNldCB0byAoI3t4fSwje3l9 KSIKICBlbmQKICAKICBkZWYgaW5zcGVjdAogICAgc3VwZXIoKVswLi4tMl0gKyAiIElEOiAje21v dmVfaWR9PiIKICBlbmQKICAKICBkZWYgbW92ZV9pZAogICAgKHNlbGYueCkgKyAoc2VsZi55IDw8 IDQpICsgKHNlbGYucGxheWVyIDw8IDQpCiAgZW5kCmVuZAoKY2xhc3MgQm9hcmQKICBhdHRyX3Jl YWRlciA6cGxheWVyCgogIGRlZiBjZWxscwogICAgQGZpZWxkCiAgZW5kCiAgICAgIAogIGRlZiBp bml0aWFsaXplKHBsYXllciA9IDAsIGZpZWxkID0gQXJyYXkubmV3KDMpIHsgQXJyYXkubmV3KDMp IHsgbmlsIH0gfSkKICAgIEBwbGF5ZXIgPSBwbGF5ZXIKICAgIEBmaWVsZCA9IGZpZWxkCiAgZW5k CiAgCiAgIyBSZXR1cm4gYWxsb3dlZCBtb3ZlcwogIGRlZiBtb3ZlcwogICAgbW92ZXMgPSBbXQog ICAgQGZpZWxkLmVhY2hfd2l0aF9pbmRleCBkbyB8IHJvdywgeSB8CiAgICAgIHJvdy5lYWNoX3dp dGhfaW5kZXggZG8gfCBmaWVsZCwgeCB8CiAgICAgICAgbW92ZXMgPDwgTW92ZS5uZXcoeCwgeSwg c2VsZi5wbGF5ZXIpIHVubGVzcyBmaWVsZAogICAgICBlbmQKICAgIGVuZAogICAgbW92ZXMKICBl bmQKICAKICAjIE1ha2UgbW92ZQogIGRlZiBtYWtlKG1vdmUpCiAgICBzZWxmLmR1cC5tYWtlISht b3ZlKQogIGVuZAoKICAjIE1ha2UgbW92ZQogIGRlZiBtYWtlIShtb3ZlKQogICAgcmFpc2UgJ0ls bGVnYWwgbW92ZScgaWYgQGZpZWxkW21vdmUueV1bbW92ZS54XSBvciBtb3ZlLnBsYXllciAhPSBz ZWxmLnBsYXllciBvciBtb3ZlLnggPCAwIG9yIDMgPD0gbW92ZS54IG9yIG1vdmUueSA8IDAgb3Ig MyA8PSBtb3ZlLnkKICAgIEBmaWVsZFttb3ZlLnldW21vdmUueF0gPSBtb3ZlLnBsYXllcgogICAg QHBsYXllciA9IDEgLSBAcGxheWVyCiAgICBzZWxmCiAgZW5kCgogIGRlZiBkdXAKICAgIHNlbGYu Y2xhc3MubmV3KHBsYXllciwgQGZpZWxkLm1hcHt8cm93fCByb3cuZHVwfSkKICBlbmQKICAKICAj IElzIHRoZSBnYW1lIGZpbmlzaGVkIGFuZCB3aG8gaGFzIHdvbgogIHByaXZhdGUKICBkZWYgd2lu bmVyX3Rlc3QoY2VsbHMpCiAgICBjZWxscy5pbmplY3QoY2VsbHNbMF0pIHsgfCBwbGF5ZXIsIGNl bGwgfCBjZWxsID09IHBsYXllciA/IHBsYXllciA6IGZhbHNlIH0KICBlbmQKICAKICBwdWJsaWMK ICBkZWYgd2lubmVyCiAgICByZXN1bHQgPSBuaWwKICAgIEBmaWVsZC5lYWNoICAgICAgICAgICBk byB8IHJvdyB8IHJlc3VsdCB8fD0gd2lubmVyX3Rlc3Qocm93KSBlbmQgIyBIb3Jpem9udGFsCiAg ICBAZmllbGQudHJhbnNwb3NlLmVhY2ggZG8gfCByb3cgfCByZXN1bHQgfHw9IHdpbm5lcl90ZXN0 KHJvdykgZW5kICMgVmVydGljYWwKICAgIHJlc3VsdCB8fCB3aW5uZXJfdGVzdCgoMC4uMikubWFw e3xpfCBAZmllbGRbaV1baV19KSB8fCB3aW5uZXJfdGVzdCgoMC4uMikubWFwe3xpfCBAZmllbGRb Mi1pXVtpXX0pICMgRGlhZ29uYWwKICBlbmQKICAKICBkZWYgdG9fcwogICAgKCcrLS0nICogMykg KyAiK1xuIiArIAogICAgICBAZmllbGQubWFwe3xyb3d8ICd8JyArIHJvdy5tYXB7fGNlbGx8IGNl bGwgPyAiJTJkIiAlIGNlbGwgOiAnICAnIH0uam9pbignfCcpICsgInxcbiIgfS5qb2luKCcrLS0n ICogMyArICIrXG4iKSArIAogICAgICAoJystLScgKiAzKSArICIrXG4iCiAgZW5kCiAgCiAgZGVm IHN0YXRlX2lkCiAgICByZXN1bHQgPSBAcGxheWVyCiAgICBAZmllbGQuZWFjaCBkbyB8IHJvdyB8 IHJvdy5lYWNoIGRvIHwgY2VsbCB8IHJlc3VsdCA9IChyZXN1bHQgPDwgMikgKyAoY2VsbCA/IGNl bGwgOiAyKSBlbmQgZW5kCiAgICByZXN1bHQKICBlbmQKCiAgZGVmIGZpbmFsPwogICAgc2VsZi53 aW5uZXIgfHwgc2VsZi5tb3Zlcy5lbXB0eT8KICBlbmQKZW5kCg== --Multipart=_Sun__12_Dec_2004_01_47_22_+0100_B3F+6KKIY4RPIIJR Content-Type: application/octet-stream; name="tictactoe-server.rb" Content-Disposition: attachment; filename="tictactoe-server.rb" Content-Transfer-Encoding: base64 IyEvdXNyL2Jpbi9ydWJ5CiMKIyBCeTogQnJpYW4gU2NocvZkZXIKIyBCYXNlIG9uIHRoZSBzZXJ2 ZXIgYnkgSGFucyBGdWdhbAoKVGhyZWFkLmFib3J0X29uX2V4Y2VwdGlvbiA9IHRydWUKCnJlcXVp cmUgJ3NvY2tldCcKcmVxdWlyZSAndGljdGFjdG9lJwoKY2xhc3MgVGljVGFjVG9lR2FtZQogIGF0 dHJfYWNjZXNzb3IgOmFjdGl2ZQogIAogIGRlZiBpbml0aWFsaXplKHBsYXllcjEsIHBsYXllcjIp CiAgICBzdXBlcigpCiAgICBAYWN0aXZlID0gdHJ1ZQogICAgQHBsYXllciA9IFtwbGF5ZXIxLCBw bGF5ZXIyXQogICAgQGJvYXJkID0gQm9hcmQubmV3CiAgICBAdGhyZWFkID0gVGhyZWFkLm5ldyAm bWV0aG9kKDpwbGF5X2dhbWUpCiAgZW5kCgogIGRlZiBqb2luCiAgICBAcGxheWVyLm1hcCEge3xw fCBwLmNsb3NlIGlmIHA7IG5pbH0KICAgIEB0aHJlYWQuam9pbgogIGVuZAogIAogIHByb3RlY3Rl ZAogIGRlZiBzdGF0ZQogICAgQGJvYXJkLmNlbGxzLm1hcHt8cm93fCByb3cubWFwe3xjZWxsfCBj ZWxsID8gWydYJywgJ08nXVtjZWxsXSA6ICdfJ30uam9pbignJyl9LmpvaW4oJyAnKQogIGVuZAog ICAgCiAgZGVmIHBsYXlfZ2FtZQogICAgdW50aWwgQGJvYXJkLmZpbmFsPwogICAgICAkc3Rkb3V0 LnB1dHMgIlBsYXllciAje0Bib2FyZC5wbGF5ZXJ9IiwgQGJvYXJkLCAnJwogICAgICBAcGxheWVy LmVhY2gge3xwfCBwLnB1dHMoc3RhdGUpIH0KICAgICAgYmVnaW4gICAgICAgIAogICAgICAgIEBw bGF5ZXJbQGJvYXJkLnBsYXllcl0ucHV0cygnbW92ZScpCiAgICAgICAgeCwgeSA9ICpAcGxheWVy W0Bib2FyZC5wbGF5ZXJdLmdldHMuc3BsaXQoJywnKS5tYXB7fGl8SW50ZWdlcihpKX0KICAgICAg ICBAYm9hcmQubWFrZSEoTW92ZS5uZXcoeCwgeSwgQGJvYXJkLnBsYXllcikpCiAgICAgIHJlc2N1 ZSAjIFRPRE86IENhdGNoIGEgc3BlY2lmaWMgZXhjZXB0aW9uLCBvdGhlcndpc2UgaGVyZSdzIGEg cG90ZW50aWFsbHkgaW5maW5pdGUgbG9vcAogICAgICAgIEBwbGF5ZXJbQGJvYXJkLnBsYXllcl0u cHV0cygnbW92ZScpCiAgICAgICAgcmV0cnkKICAgICAgZW5kCiAgICBlbmQKICAgICRzdGRvdXQu cHV0cyAiUmVzdWx0OiIsIEBib2FyZCwgJycKICAgIAogICAgQHBsYXllci5lYWNoIHt8cHwgcC5w dXRzKHN0YXRlKX0KICAgIHdpbm5lciA9IEBib2FyZC53aW5uZXIKICAgIGlmIHdpbm5lcgogICAg ICBAcGxheWVyW3dpbm5lcl0ucHV0cygnd2luJykKICAgICAgQHBsYXllclsxLXdpbm5lcl0ucHV0 cygnbG9zZScpCiAgICBlbHNlCiAgICAgIEBwbGF5ZXIuZWFjaCB7IHxwfCBwLnB1dHMoJ2RyYXcn KSB9CiAgICBlbmQKICByZXNjdWUgPT4gZQogICAgJHN0ZG91dC5wdXRzICdFeGNlcHRpb24gb2Nj dXJlZCBpbiBhY3RpdmUgZ2FtZScsIGUKICBlbnN1cmUKICAgIEBwbGF5ZXIuZWFjaCB7fHB8IHAu Y2xvc2UgaWYgcH0KICAgIEBhY3RpdmUgPSBmYWxzZQogIGVuZAogIAplbmQKCmNsYXNzIFRpY1Rh Y1RvZVNlcnZlciA8IFRDUFNlcnZlcgogIGF0dHJfYWNjZXNzb3IgOmhlbGxvCiAgCiAgZGVmIGlu aXRpYWxpemUocG9ydCkKICAgIHN1cGVyKHBvcnQpCiAgZW5kCiAgCiAgZGVmIHNlcnZlX2dhbWVz CiAgICBAaGVsbG8gPSAiQnJpYW4ncyBUaWMtVGFjLVRvZSBzZXJ2ZXIiCgogICAgQHRocmVhZHMg PSBbXQogICAgJHN0ZG91dC5zeW5jID0gdHJ1ZQogICAgbG9vcCBkbwogICAgICBwbGF5ZXIwID0g c2VsZi5hY2NlcHQKICAgICAgcGxheWVyMC5wdXRzIGhlbGxvCiAgICAgIHBsYXllcjAucHV0cyAi WCAzeDMiCiAgICAgICRzdGRvdXQucHV0cyAiRmlyc3QgcGxheWVyIGNvbm5lY3RlZDogI3twbGF5 ZXIwLmdldHN9IgoKICAgICAgcGxheWVyMSA9IHNlbGYuYWNjZXB0CiAgICAgIHBsYXllcjEucHV0 cyBoZWxsbwogICAgICBwbGF5ZXIxLnB1dHMgIk8gM3gzIgogICAgICAkc3Rkb3V0LnB1dHMgIlNl Y29uZCBwbGF5ZXIgY29ubmVjdGVkOiAje3BsYXllcjEuZ2V0c30iCgogICAgICBAdGhyZWFkcyA8 PCBUaWNUYWNUb2VHYW1lLm5ldyhwbGF5ZXIwLCBwbGF5ZXIxKQogICAgZW5kCgogIGVuc3VyZQog ICAgQHRocmVhZHMuZWFjaCBkbyB8IHRocmVhZCB8IHRocmVhZC5qb2luIGVuZAogIGVuZAplbmQK CmlmICQwID09IF9fRklMRV9fCiAgcG9ydCA9IChBUkdWWzBdIHx8IDEyNzYpLnRvX2kKICBwdXRz ICJMaXN0ZW5pbmcgb24gcG9ydCAje3BvcnR9IgogIHNlcnZlciA9IFRpY1RhY1RvZVNlcnZlci5u ZXcocG9ydCkKICBzZXJ2ZXIuc2VydmVfZ2FtZXMKZW5kCgo= --Multipart=_Sun__12_Dec_2004_01_47_22_+0100_B3F+6KKIY4RPIIJR--