------ art_52813_27347919.1168174043682 Content-Type: multipart/alternative; boundary --- art_52814_7878178.1168174043682" ------ art_52814_7878178.1168174043682 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline It just so happened that I was learning ruby last summer and wrote a program to cheat for me at TextTwist. Needless to say the game got boring really fast, but it was neat writing the program. I've modified it a bit to instead play the game, but I'm a fairly new user and would appreciate any feedback, both ruby related and general programming. To run this you'll need a dictionary file of words, each on a new line, called wordlist.txt and you need to require 'dict' and run Dict.reduce(3,6) before you run the program. This will create a reduced dictionary file of only words of lengths between 3 and 6. I didn't make this part of my program's general execution as I figured doing this once was enough and I could do it manually. It's got a simple text interface that looks sort of like the TextTwist gui layout on Yahoo. Sort of. The dictionary I use, which I did not attach because its size (3 megs, I believe it was the full Scrabble dictionary) makes for a much harder game than the Yahoo TextTwist as some of the words are really obscure. Also, I have the problem that when running this on Windows it doesn't allow me to manipulate files with Ruby, giving me a Permission Denied error on File.open. Any idea why this might be? This is if I try to run Dict.reduce(3,6) for example. ------ art_52814_7878178.1168174043682 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline It just so happened that I was learning ruby last summer and wrote a program to cheat for me at TextTwist. Needless to say the game got boring really fast, but it was neat writing the program. I've modified it a bit to instead play the game, but I'm a fairly new user and would appreciate any feedback, both ruby related and general programming. <br><br>To run this you'll need a dictionary file of words, each on a new line, called wordlist.txt and you need to require 'dict' and run Dict.reduce(3,6) before you run the program. This will create a reduced dictionary file of only words of lengths between 3 and 6. I didn't make this part of my program's general execution as I figured doing this once was enough and I could do it manually. <br><br>It's got a simple text interface that looks sort of like the TextTwist gui layout on Yahoo. Sort of. The dictionary I use, which I did not attach because its size (3 megs, I believe it was the full Scrabble dictionary) makes for a much harder game than the Yahoo TextTwist as some of the words are really obscure. <br><br>Also, I have the problem that when running this on Windows it doesn't allow me to manipulate files with Ruby, giving me a Permission Denied error on File.open. Any idea why this might be? This is if I try to run Dict.reduce(3,6) for example.<br> ------ art_52814_7878178.1168174043682-- ------ art_52813_27347919.1168174043682 Content-Type: text/x-ruby-script; name=texttwistGame.rb; charset ¨ÂÉߨ³®´±¹¶Content-Transfer-Encoding: base64 X-Attachment-Id: f_ewngky34 Content-Disposition: attachment; filename="texttwistGame.rb" cmVxdWlyZSAnZGljdCcNCg0KZGVmIGdldF93b3JkcyhsZXR0ZXJzLCB1c2VkLCB3b3JkcywgZGlj dF9oYXNoLCBjdXJyZW50KSNGaW5kcyBtYXRjaGluZyB3b3Jkcw0KCWkgPSBEaWN0LmluX2RpY3Q/ KGN1cnJlbnQsIGRpY3RfaGFzaCkNCgl3b3JkcyA8PCBjdXJyZW50IGlmIGkgPT0gMQ0KCXJldHVy biBpZiBpID09IC0xDQoJKDAuLmxldHRlcnMubGVuZ3RoKS5lYWNoIGRvIHxhfA0KCQlpZiB1c2Vk W2FdID09IGZhbHNlDQoJCQl1c2VkW2FdPXRydWUNCgkJCWdldF93b3JkcyhsZXR0ZXJzLCB1c2Vk LCB3b3JkcywgZGljdF9oYXNoLCBjdXJyZW50ICsgbGV0dGVyc1thLDFdKQ0KCQkJdXNlZFthXT1m YWxzZQ0KCQllbmQNCgllbmQNCmVuZA0KDQpkZWYgcGlja193b3JkIGRpY3RfaGFzaCAjUGlja3Mg YSByYW5kb20gd29yZCBvZiBsZW5ndGggNg0KCWEgPSBkaWN0X2hhc2hbKCdhJy4uJ3onKS50b19h W3JhbmQoMjYpXVswXV0uZGVsZXRlX2lme3x3fHcuc2l6ZSE9Nn0NCglhW3JhbmQoYS5zaXplKV0N CmVuZA0KDQpkZWYgcHJpbnRfa25vd24gd29yZF9hciAjUHJpbnRzIHRoZSB3b3JkcyBvciBibGFu a3MNCgl3b3JkX2FyWzMuLjZdLmVhY2ggZG8gfHd8DQoJCXcuZWFjaCBkbyB8c3wNCgkJCWlmIHNb MV0NCgkJCQlwcmludCBzWzBdDQoJCQllbHNlDQoJCQkJc1swXS5sZW5ndGgudGltZXN7cHJpbnQg Jy0nfQ0KCQkJZW5kDQoJCQlwcmludCAiXHQiDQoJCWVuZCAmJiBwdXRzIHVubGVzcyB3Lm5pbD8N CgllbmQNCmVuZA0KDQpiZWdpbg0KCXdoaWxlKChpbnB1dHx8PW5pbCkgIT0gIi0xIikNCgkJd29y ZHMgPSBbXQ0KCQlkaWN0X2hhc2ggPSBEaWN0LmdldF9kaWN0KDMpDQoJCWxldHRlcnMgPSBwaWNr X3dvcmQgZGljdF9oYXNoDQoJCXVzZWQgPSBBcnJheS5uZXcobGV0dGVycy5zaXplLGZhbHNlKQ0K CQlnZXRfd29yZHMobGV0dGVycywgdXNlZCwgd29yZHMsIGRpY3RfaGFzaCwgIiIpDQoJCXdvcmRz ID0gd29yZHMudW5pcS5zb3J0DQoJCXdvcmRfYXIgPSBbXQ0KCQl3b3Jkcy5lYWNoe3x3fCAod29y ZF9hclt3Lmxlbmd0aF0gfHw9IFtdKTw8W3csZmFsc2VdfSAja2VlcCB0cmFjayBvZiB3b3JkcyBh bmQgaWYgdGhleSBoYXZlIGJlZW4gZm91bmQNCgkJcHV0cyAiRm9ybSB3b3JkcyBvdXQgb2YgdGhl IGxldHRlcnMgI3tsZXR0ZXJzPWxldHRlcnMuc3BsaXQoJycpLnNvcnRfYnl7cmFuZH0uam9pbign Jyl9Ig0KCQlwcmludF9rbm93biB3b3JkX2FyDQoJCXdoaWxlKChpbnB1dD1nZXRzLmNob21wLnN0 cmlwKSAhPSAiLTEiKQ0KCQkJbWF0Y2ggPSBmYWxzZQ0KCQkJd29yZF9hci5lYWNoe3x3fCB3LmVh Y2h7fHN8IHNbMV09dHJ1ZSBhbmQgbWF0Y2g9dHJ1ZSBpZiBzWzBdPT1pbnB1dH0gdW5sZXNzIHcu bmlsP30NCgkJCWlmIG1hdGNoDQoJCQkJcHV0cyAiRm91bmQgYSBtYXRjaCEiDQoJCQllbHNlDQoJ CQkJcHV0cyAiSW52YWxpZCBpbnB1dCINCgkJCWVuZA0KCQkJcHV0cw0KCQkJcHJpbnRfa25vd24g d29yZF9hcg0KCQkJYWR2YW5jZSA9IHRydWUNCgkJCXdvcmRfYXJbNl0uZWFjaHt8c3wgYWR2YW5j ZSA9IGZhbHNlIHVubGVzcyBzWzFdfQ0KCQkJaWYoYWR2YW5jZSkNCgkJCQlwdXRzICJDb25ncmF0 dWxhdGlvbiEgWW91IGFkdmFuY2UgdG8gdGhlIG5leHQgbGV2ZWwiDQoJCQkJYnJlYWsNCgkJCWVs c2UNCgkJCQlwdXRzICJUaGUgbGV0dGVycyBhcmUgI3tsZXR0ZXJzfSINCgkJCWVuZA0KCQllbmQN CgllbmQNCglwdXRzICJUaGUgc29sdXRpb24gd2FzIg0KCXdvcmRfYXJbMy4uNl0uZWFjaHt8d3wg dy5lYWNoe3xzfCBwcmludCBzWzBdICsgIlx0In0gJiYgcHV0cyB1bmxlc3Mgdy5uaWw/fQ0KcmVz Y3VlIFN5c3RlbUV4aXQNCglwdXRzICJSZXNjdWVkIGEgU3lzdGVtRXhpdCBleGNlcHRpb24iDQoJ cmFpc2UNCmVuZA ------ art_52813_27347919.1168174043682 Content-Type: text/x-ruby-script; name=dict.rb; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_ewngkz67 Content-Disposition: attachment; filename="dict.rb" Y2xhc3MgRGljdA0KICAjUmVkdWNlcyB0aGUgZmlsZSAnd29yZGxpc3QudHh0JyB3aGljaCBpcyB0 aGUgbGlzdCBvZiBkaWN0aW9uYXJ5IHdvcmRzDQogICNpbnRvIGEgZmlsZSBvZiB0aGUgc2FtZSB3 b3JkcyBidXQgb2YgbGVuZ3RoIG5vIGxlc3MgdGhhbiBpDQogICNhbmQgbm8gYmlnZ2VyIHRoYW4g ag0KICBkZWYgRGljdC5yZWR1Y2UoaSwgaikNCiAgICBGaWxlLm9wZW4oJ3dvcmRsaXN0LnR4dCcp IGRvIHxmaW58DQogICAgICBGaWxlLm9wZW4oInJlZHVjZWR3b3JkbGlzdCN7aX0udHh0IiwgInci LCBGaWxlOjpDUkVBVCkgZG8gfGZvdXR8DQoJCWZpbi5lYWNoIGRvIHxpbnB1dHwNCgkJICBwdXRz ID0gIkluIg0KCQkgIGlucHV0ID0gaW5wdXQuc3RyaXANCgkJICBmb3V0LnB1dHMgaW5wdXQgaWYg aW5wdXQubGVuZ3RoPj1pICYmIGlucHV0Lmxlbmd0aDw9ag0KCQllbmQNCiAgICAgIGVuZA0KICAg IGVuZA0KICBlbmQNCg0KICAjQ3JlYXRlcyBhIGhhc2ggb2YgYXJyYXlzLCBlYWNoIGFycmF5IGNv cnJlc3BvbmRzIHRvIHdvcmRzIHN0YXJ0aW5nIHdpdGggYSBjZXJ0YWluIGxldHRlcg0KICBkZWYg RGljdC5nZXRfZGljdChtaW5fbGVuZ3RoKQ0KICAgIGRpY3RfaGFzaCA9IEhhc2gubmV3DQogICAg RmlsZS5vcGVuKCJyZWR1Y2Vkd29yZGxpc3Qje21pbl9sZW5ndGh9LnR4dCIsICJyIikgZG8gfGZ8 DQogICAgICBmLmVhY2ggZG8gfGxpbmV8DQoJbGluZSAgPSBsaW5lLnN0cmlwDQoJZGljdF9oYXNo W2xpbmVbMF1dIHx8PSBbXQ0KCWRpY3RfaGFzaFtsaW5lWzBdXS5wdXNoKGxpbmUpDQogICAgICBl bmQNCiAgICBlbmQNCiAgICByZXR1cm4gZGljdF9oYXNoDQogIGVuZA0KDQogICNQZXJmb3JtcyBh IGJpbmFyeSBzZWFyY2ggYW5kIHJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmb3VuZCBzdHJpbmcN CiAgI0ZvciBleGFtcGxlLCBsb29raW5nIGZvciAiYWMiIGluIFsiYWIiLCAiYWNkIiwgImFlIl0g d2UgZ2V0IDENCiAgI2FuZCBsb29raW5nIGZvciAiYWMiIGluIFsiYWIiLCAiYWMiLCAiYWNkIl0g d2UgYWxzbyBnZXQgMQ0KICAjU2VhcmNoaW5nIGZvciAiYWMiIGluIFsiYWIiLCAiYWJjIiwgImFi Y2QiXSByZXR1cm5zIDINCiAgZGVmIERpY3QuYmluYXJ5X3NlYXJjaChhLCBiLCBzdHIsIGFycmF5 KQ0KICAgIHJldHVybiBhLTEgaWYgYSA9PSBhcnJheS5sZW5ndGgNCiAgICBtaWRkbGUgPSAoYSti KS8yDQogICAgcmFpc2UgUnVudGltZUVycm9yIGlmIGI8YQkgICNUaGlzIHNob3VsZCBuZXZlciBo YXBwZW4sIHdlIHNob3VsZCBhbHdheXMgc3RvcCBhdCBiPT1hDQogICAgcmV0dXJuIGEgaWYgYj09 YQ0KICAgIGNhc2Ugc3RyPD0+YXJyYXlbbWlkZGxlXQ0KICAgIHdoZW4gMQ0KICAgICAgYmluYXJ5 X3NlYXJjaChtaWRkbGUrMSwgYiwgc3RyLCBhcnJheSkNCiAgICB3aGVuIC0xDQogICAgICBiaW5h cnlfc2VhcmNoKGEsIG1pZGRsZSwgc3RyLCBhcnJheSkNCiAgICBlbHNlDQogICAgICBtaWRkbGUN CiAgICBlbmQNCiAgZW5kDQogICAgDQoNCiAgI1JldHVybnMgMSBpZiB0aGUgc3RyIGlzIGluIHRo ZSBkaWN0aW9uYXJ5LCAwIGlmIGl0J3MgYSBzdWJzdHJpbmcNCiAgI29mIHNvbWV0aGluZyBpbiB0 aGUgZGljdGlvbmFyeSwgYW5kIC0xIGlmIGl0J3MgbmVpdGhlcg0KICBkZWYgRGljdC5pbl9kaWN0 PyhzdHIsIGRpY3RfaGFzaCkNCiAgICBiZWdpbg0KICAgICAgcmV0dXJuIDAgaWYgc3RyID09ICIi DQogICAgICByZXR1cm4gLTEgaWYgc3RyLm5pbD8NCiAgICAgIGkgPSBiaW5hcnlfc2VhcmNoKDAs IGRpY3RfaGFzaFtzdHJbMF1dLmxlbmd0aCwgc3RyLCBkaWN0X2hhc2hbc3RyWzBdXSkNCiAgICAg IHJhaXNlIFJ1bnRpbWVFcnJvciBpZiBpID49IGRpY3RfaGFzaFtzdHJbMF1dLmxlbmd0aA0KICAg ICAgcmV0dXJuIDEgaWYgZGljdF9oYXNoW3N0clswXV1baV0gPT0gc3RyDQogICAgICByZXR1cm4g MCBpZiBkaWN0X2hhc2hbc3RyWzBdXVtpXVswLi4uc3RyLmxlbmd0aF0gPT0gc3RyDQogICAgICBy ZXR1cm4gLTENCiAgICByZXNjdWUgUnVudGltZUVycm9yDQogICAgICBwdXRzICJiaW5hcnlfc2Vh cmNoIG1lc3NlZCB1cCBhbmQgZ290IGI8YSBvciByZXR1cm5lZCBpbnZhbGlkIGluZGV4Ig0KICAg ICAgZXhpdA0KICAgIGVuZA0KICBlbmQNCmVuZA0K ------ art_52813_27347919.1168174043682--