My Python program which plays solicross is available for download in wilma's anonymous FTP area, in the acka directory, with the filename pcross.tar.gz . This gzipped tar file contains some data files for the game and some of my solutions in addition to the game itself. Also I have a treasure. I may from time to time announce the highest score received, if there's enough competition to warrant it. I am burying the Golden Frinking Straw (value A$100) as a treasure, with the following map: The player who sends /dev/joe the highest-scoring valid Pythoncross score record for the game defined by the Pythoncross data file between the "---" lines below by February 1 at noon, CST shall find this treasure. If no valid score records are received by that date, the first player to send /dev/joe a valid Pythoncross score record shall find the treasure. Valid score records must follow all the rules of the game, include all the information requested (see below), and use only words from the second Official Ackanomic Dictionary (the Marldoom link on the main Ackanomic web page). --- /dev/joe's Treasure Map Special #1 hrmoetrtisentoplditeimelaezsipeoumkaqehyowbarenamotmestagrsp 2 2 4 3 7 4 6 9 --- This means that the string of 60 characters above is the letter list, that the starting space is in the 2nd column and 2nd row, that there are blocked squares at the intersections of the 4th column and 3rd row, the 7th column and 4th row, and the 6th column and 9th row (see (a) below), and that the traditional scoring grid is used (see (b) below). ......... 555555555 .*....... * = start 544444445 ...#..... 543333345 ......#.. # = block 543222345 ......... 543222345 ......... 543222345 ......... 543333345 ......... 544444445 .....#... 555555555 (a) (b) The data file is in a form ready to be used with the Python program pcross.py. To play Pythoncross by hand, draw out a 9x9 grid and mark the starting space, the blocked spaces, and the score for each space. This is your playing board. Also set up a list of 15 rows, each with a space for 7 letters (your rack), the score for that play, and the words formed in that play. Also copy the letter list so you can mark letters off of it. Pythoncross is a game played as follows: Begin the game by drawing the first seven letters from the letter list as your first rack, and scratch those off the letter list. Form a word of 2 or more letters, and place it in the board so that it reads from left to right or from top to bottom, with either the first or last letter on the indicated starting space. Score points equal to the sum of the values of the squares this word lies on. For each play after the first, scratch the letters just played from your rack, and copy the remaining letters down to the next row. Fill your rack up to 7 letters by taking the next unused letters from the letter list. Now place one or more of these letters on the board so that a new word is formed that connects in some way with the letters already on the board. All letters played in one turn must be part of a single word; however, additional words may be created or extended in the direction perpendicular to the main word. All adjacent groups of letters must spell words from left to right and from top to bottom. Diagonal, backward, and upward words and words within words do not count. Below are examples of the possible ways to connect words, with the letters just played in caps. v m i had tank carPET MEaL n men o n n y ZANY PILinG SLEET too (1) (2a) (2b) (3) (4) 1. Extending a word - adding letters before or after (or on both ends of) a word already on the board. 2. Playing perpendicular to an existing word - such a word may either cross through a word already on the board (not modifying it), or pass just by the end of a word, adding a letter to it. 3. Playing parallel to an existing word - such a play always forms or extends at least one additional word. 4. There may be combinations of the above. For each play, score the sum of the values all the squares in each new word you form and each previously existing word you extend, including those spaces covered by letters played in previous turns. Sometimes this will mean you score for the same square twice in a single play. Above, you would score for CARPET in (1), for MEAL in (2a), for VINYL and SLEET in (2b), for ZANY, MA, HEN, and ANY in (3), and for PILING, TOP, and GO in (4). The game ends after 15 plays have been made. When the game ends, there must not be any repeated words on the board (although it is otherwise fine to repeat words during the game). If at some point you are unable to form a word, you may dump all seven letters instead of playing a word. This counts as one of your 15 plays. If you do so, take the next seven letters from the letter list for your next rack, and lose 25 points. You may find that you run out of letters to draw from the letter list. If this happens, you may continue forming words (until you use all the letters or you run out of turns) but you will not draw any additional letters. If at some point you have placed all 60 letters onto the board, score 50 extra bonus points, and the game ends. (Note that dumping a rack, as in the previous rule, forfeits any chance at this bonus, since the letters dumped will never be placed on the board.) The minimum information required for a valid score record is the final board of letters, the total score, and for each play, the location and direction of the play (location given by the column and row that the first latter lies in), the word played, and all additional words formed or modified by that play. The pcross.py program reports this information (and more) in a convenient format, and can save it in a file for you at the end of the game. Below is a sample output from pcross.py (for a different game), illustrating the ways words are formed and the information expected in a game report (D and A stand for Down and Across): PYTHONCROSS -rack-- score +-1-2-3-4-5-6-7-8-9-+ 1 LUNAFIX 10 D 3 6 FIX 1 _ S A L T I N E S 1 2 LUNAFES 26 D 4 7 FUN (IF,XU) 2 P A T I O , # , O 2 3 LAESMIP 27 D 2 2 AMPLE (EF) 3 _ M E T E R . , _ 3 4 SIALTEN 60 A 2 1 SALTINE (SAMPLE) 4 _ P . " " Y . , B 4 5 CABUTEH 25 A 4 9 NATCH 5 _ L . " # E . K A 5 6 BUEPORC 27 D 1 6 RUB (REF) 6 R E F " " " N E T 6 7 EPOCETI 48 A 1 2 PATIO (AT,LI,TO) 7 U , I F . G U T _ 7 8 ECEYTEH 49 A 2 3 METE (ATE,LIT,TOE) 8 B , X U , O , C # 8 9 CYEHAUK 30 A 1 9 YA (RUBY) 9 Y A _ N A T C H _ 9 10 CEHUKTO 21 D 8 5 KETCH +-1-2-3-4-5-6-7-8-9-+ 11 HUOKTBN 20 D 7 6 NU (NE,UT) Key: "=2 .=3 ,=4 _=5 12 HOKTBTA 36 D 9 4 BAT (KA,NET) High Score: 409 13 HOKTSRO 50 D 9 1 SO (SALTINES) Letter List: 14 HKTROYG 22 D 6 7 GOT (GUT) LUNAFIXFESMIPALTENCA 15 HKTRYNE 23 D 6 3 RYE (METER) BUTEHPORCETIYTEHAUKT ------- ---- OKTBNTASROYGNELIS@MAT total: 474 ------------------------------------------------------------------------------- breadbox's entry, which features a spectacular parallel play forming 6 crossing words, is shown below. PYTHONCROSS -rack-- score +-1-2-3-4-5-6-7-8-9-+ 1 HRMOETR 20 A 2 2 OTHER 1 S L E A Z E _ A N 1 2 MRTISEN 45 D 1 2 MITE (MOTHER) 2 M O T H E R , M A 2 3 RSNTOPL 37 A 1 6 ROT (MITER) 3 I , . # D E L , M 3 4 SNPLDIT 59 A 1 7 SNIP (MITERS,ON,TI) 4 T O M E S " # R E 4 5 LDTEIME 23 A 5 3 DEL (ED,RE) 5 E , . " " " . U _ 5 6 TIMELAE 33 A 3 8 TIME (TIT,PI) 6 R O T " " " . B A 6 7 LAEZSIP 31 A 4 9 PI (PIP,MI) 7 S N I P . O K E H 7 8 LAEZSEO 116 A 1 1 SLEAZE (SMITERS,LO,ET,AH,ZED, 8 _ , T I M E , , O 8 9 OUMKAQE 17 A 6 7 OKE (OE) ERE) 9 _ _ _ P I # _ _ Y 9 10 UMAQHYO 30 D 9 7 HOY (OKEH) +-1-2-3-4-5-6-7-8-9-+ 11 UMAQWBA 37 A 8 6 BA (BE,AHOY) Key: "=2 .=3 ,=4 _=5 12 UMQWARE 16 D 8 4 RUBE High Score: N/A 13 MQWAENA 29 D 9 1 NAME (RE) Letter List: 14 QWAMOTM 28 D 8 1 AM (AN,MA) HRMOETRTISENTOPLDITE 15 QWOTMES 30 A 1 4 TOMES (ZEDS) IMELAEZSIPEOUMKAQEHY ------- ---- Repeated words: OWBARENAMOTMESTAGR@SP total: 551 None Even with the scores increasing so rapidly towards the end, nobody came close to the score I planted in the creation of the letter list for this game, which uses all 60 letters and scores 715 points (although I admit breadbox got closer than I thought anybody would): PYTHONCROSS -rack-- score +-1-2-3-4-5-6-7-8-9-+ 1 HRMOETR 24 A 2 2 MOTHER 1 _ _ L I O N I Z E 1 2 RTISENT 59 D 1 2 SITTER (SMOTHER) 2 S M O T H E R , _ 2 3 NOPLDIT 56 A 3 1 LION (LO,IT,OH,NE) 3 I M P # M E E T S 3 4 PDTEIME 44 A 5 3 MEET (OHM,NEE,RE) 4 T , . " " " # , Q 4 5 PDILAEZ 43 D 2 5 IDEA (TI,ED,RE) 5 T I G E R S . N U 5 6 PLZSIPE 47 A 3 1 LIONIZE (IRE) 6 E D . S A T . O E 6 7 PLSPOUM 41 A 1 9 PLOP (IDEAL) 7 R E . T R A M , A 7 8 SUMKAQE 48 D 9 3 SQUEAK (MEETS) 8 _ A M O E B A , K 8 9 MHYOWBA 50 A 7 9 WHY (SQUEAKY) 9 P L O P _ # W H Y 9 10 MOBAREN 51 A 2 8 AMOEBA (MO,OP,AW) +-1-2-3-4-5-6-7-8-9-+ 11 RNAMOTM 50 A 4 7 TRAM (TOP,RE,AB,MAW) Key: "=2 .=3 ,=4 _=5 12 NOMESTA 38 A 4 6 SAT (STOP,ARE,TAB) High Score: N/A 13 NOMEGRS 56 A 1 5 TIGERS (ESTOP,RARE,STAB) Letter List: 14 NOMP 32 A 1 3 IMP (MM,LOP) HRMOETRTISENTOPLDITE 15 NO 76 D 8 5 NO (NU,OE) IMELAEZSIPEOUMKAQEHY ------- ---- Repeated words: OWBARENAMOTMESTAGRSP@ total: 715 None It seems that I have to post the actual text of the map now, which is identical to what I originally posted, and this is all that is left in this message so if you don't care you can stop reading now. /dev/joe -----------Begin Pythoncross Map------------- I am burying the Golden Frinking Straw as a treasure, with the following map: The player who sends /dev/joe the highest-scoring valid Pythoncross score record for the game defined by the Pythoncross data file between the "---" lines below by February 1 at noon, CST shall find this treasure. If no valid score records are received by that date, the first player to send /dev/joe a valid Pythoncross score record shall find the treasure. Valid score records must follow all the rules of the game, include all the information requested (see below), and use only words from the second Official Ackanomic Dictionary (the Marldoom link on the main Ackanomic web page). --- /dev/joe's Treasure Map Special #1 hrmoetrtisentoplditeimelaezsipeoumkaqehyowbarenamotmestagrsp 2 2 4 3 7 4 6 9 --- This means that the string of 60 characters above is the letter list, that the starting space is in the 2nd column and 2nd row, that there are blocked squares at the intersections of the 4th column and 3rd row, the 7th column and 4th row, and the 6th column and 9th row (see (a) below), and that the traditional scoring grid is used (see (b) below). ......... 555555555 .*....... * = start 544444445 ...#..... 543333345 ......#.. # = block 543222345 ......... 543222345 ......... 543222345 ......... 543333345 ......... 544444445 .....#... 555555555 (a) (b) The data file is in a form ready to be used with the Python program pcross.py. To play Pythoncross by hand, draw out a 9x9 grid and mark the starting space, the blocked spaces, and the score for each space. This is your playing board. Also set up a list of 15 rows, each with a space for 7 letters (your rack), the score for that play, and the words formed in that play. Also copy the letter list so you can mark letters off of it. Pythoncross is a game played as follows: Begin the game by drawing the first seven letters from the letter list as your first rack, and scratch those off the letter list. Form a word of 2 or more letters, and place it in the board so that it reads from left to right or from top to bottom, with either the first or last letter on the indicated starting space. Score points equal to the sum of the values of the squares this word lies on. For each play after the first, scratch the letters just played from your rack, and copy the remaining letters down to the next row. Fill your rack up to 7 letters by taking the next unused letters from the letter list. Now place one or more of these letters on the board so that a new word is formed that connects in some way with the letters already on the board. All letters played in one turn must be part of a single word; however, additional words may be created or extended in the direction perpendicular to the main word. All adjacent groups of letters must spell words from left to right and from top to bottom. Diagonal, backward, and upward words and words within words do not count. Below are examples of the possible ways to connect words, with the letters just played in caps. v m i had tank carPET MEaL n men o n n y ZANY PILinG SLEET too (1) (2a) (2b) (3) (4) 1. Extending a word - adding letters before or after (or on both ends of) a word already on the board. 2. Playing perpendicular to an existing word - such a word may either cross through a word already on the board (not modifying it), or pass just by the end of a word, adding a letter to it. 3. Playing parallel to an existing word - such a play always forms or extends at least one additional word. 4. There may be combinations of the above. For each play, score the sum of the values all the squares in each new word you form and each previously existing word you extend, including those spaces covered by letters played in previous turns. Sometimes this will mean you score for the same square twice in a single play. Above, you would score for CARPET in (1), for MEAL in (2a), for VINYL and SLEET in (2b), for ZANY, MA, HEN, and ANY in (3), and for PILING, TOP, and GO in (4). The game ends after 15 plays have been made. When the game ends, there must not be any repeated words on the board (although it is otherwise fine to repeat words during the game). If at some point you are unable to form a word, you may dump all seven letters instead of playing a word. This counts as one of your 15 plays. If you do so, take the next seven letters from the letter list for your next rack, and lose 25 points. You may find that you run out of letters to draw from the letter list. If this happens, you may continue forming words (until you use all the letters or you run out of turns) but you will not draw any additional letters. If at some point you have placed all 60 letters onto the board, score 50 extra bonus points, and the game ends. (Note that dumping a rack, as in the previous rule, forfeits any chance at this bonus, since the letters dumped will never be placed on the board.) The minimum information required for a valid score record is the final board of letters, the total score, and for each play, the location and direction of the play (location given by the column and row that the first latter lies in), the word played, and all additional words formed or modified by that play. The pcross.py program reports this information (and more) in a convenient format, and can save it in a file for you at the end of the game. Below is a sample output from pcross.py (for a different game), illustrating the ways words are formed and the information expected in a game report (D and A stand for Down and Across): PYTHONCROSS -rack-- score +-1-2-3-4-5-6-7-8-9-+ 1 LUNAFIX 10 D 3 6 FIX 1 _ S A L T I N E S 1 2 LUNAFES 26 D 4 7 FUN (IF,XU) 2 P A T I O , # , O 2 3 LAESMIP 27 D 2 2 AMPLE (EF) 3 _ M E T E R . , _ 3 4 SIALTEN 60 A 2 1 SALTINE (SAMPLE) 4 _ P . " " Y . , B 4 5 CABUTEH 25 A 4 9 NATCH 5 _ L . " # E . K A 5 6 BUEPORC 27 D 1 6 RUB (REF) 6 R E F " " " N E T 6 7 EPOCETI 48 A 1 2 PATIO (AT,LI,TO) 7 U , I F . G U T _ 7 8 ECEYTEH 49 A 2 3 METE (ATE,LIT,TOE) 8 B , X U , O , C # 8 9 CYEHAUK 30 A 1 9 YA (RUBY) 9 Y A _ N A T C H _ 9 10 CEHUKTO 21 D 8 5 KETCH +-1-2-3-4-5-6-7-8-9-+ 11 HUOKTBN 20 D 7 6 NU (NE,UT) Key: "=2 .=3 ,=4 _=5 12 HOKTBTA 36 D 9 4 BAT (KA,NET) High Score: 409 13 HOKTSRO 50 D 9 1 SO (SALTINES) Letter List: 14 HKTROYG 22 D 6 7 GOT (GUT) LUNAFIXFESMIPALTENCA 15 HKTRYNE 23 D 6 3 RYE (METER) BUTEHPORCETIYTEHAUKT ------- ---- OKTBNTASROYGNELIS@MAT total: 474