UBC Theses and Dissertations

UBC Theses Logo

UBC Theses and Dissertations

The game of pentominoes 1972

You don't seem to have a PDF reader installed, try download the pdf

Item Metadata

Download

Media
UBC_1973_A6_7 K88.pdf [ 8.96MB ]
Metadata
JSON: 1.0052021.json
JSON-LD: 1.0052021+ld.json
RDF/XML (Pretty): 1.0052021.xml
RDF/JSON: 1.0052021+rdf.json
Turtle: 1.0052021+rdf-turtle.txt
N-Triples: 1.0052021+rdf-ntriples.txt
Citation
1.0052021.ris

Full Text

THE GAME OF PENTOMINOES by MICHAEL KUTTNER B.Sc, University College London, 1966 A thesis submitted in partial fulfilment the requirements for the degree of MASTER OF SCIENCE in the Department of COMPUTER SCIENCE We accept this thesis as conforming to the required standard. THE UNIVERSITY OF BRITISH COLUMBIA December, 1972 In presenting t h i s t h e s i s in p a r t i a l f u l f i l m e n t o f the requirements f o r an advanced degree at the U n i v e r s i t y of B r i t i s h Columbia, I agree that the L i b r a r y s h a l l make i t f r e e l y a v a i l a b l e f o r reference and study. I f u r t h e r agree that permission f o r extensive copying o f t h i s t h e s i s f o r s c h o l a r l y purposes may be granted by the Head of my Department or by h i s r e p r e s e n t a t i v e s . I t i s understood that copying or p u b l i c a t i o n of t h i s t h e s i s f o r f i n a n c i a l gain s h a l l not be allowed without my w r i t t e n permission. Department of G ( 5 M f b M SCf&\Gz The U n i v e r s i t y of B r i t i s h Columbia Vancouver 8, Canada i ABSTRACT A study i n game-playing programming i s made using the game of pentominoes which has a very large branching f a c t o r and where there e x i s t s almost no precise, f a c t u a l information to guide the conduct of the play. The d i f f i c u l t i e s encountered imply that some apparent advantages of h e u r i s t i c techniques are more heavily problem-dependent than i s usually conceded. A guiding device capable of learning i s incorporated which s i g n i f i c a n t l y improves the program's play i n competition with versions lacking i t and shows subjective improvement with human competition. i i TABLE OF CONTENTS contents page INTRODUCTION . 1 THE GAME PLAYING MILIEU 5 1.1 General Considerations . . . . . . . . . . . . . . . 5 1.2 Polyominoes 7 1.3 The Game of Pentominoes 9 THE PENTOMINO PROGRAM 15 2.1 Basic Representations 15 2.2 Necessary Improvements 18 THE 'INTELLIGENT' ADDITIONS AND THEIR EFFECTS; . . . . . . 26 3.1 Aids to Move Selection 26 3.2 Experimental Results 32 CONCLUSIONS 39 REFERENCES 43 APPENDICES 45 1 Operation of the Programs 45 2 L i s t i n g s 48 i i i ACKNOWLEDGMENT I wish:to express my thanks to Dr. Richard Rosenberg f or h i s patient supervision during the preparation of th i s t h e s i s , to the National Research Council of Canada part of t h i s work being c a r r i e d out under grant A-5552 and to Sheila Taylor f o r enduring typing from my handwriting. 1. INTRODUCTION The t r a d i t i o n a l reason, employed by people working i n h e u r i s t i c problem solving, f o r choosing game playing as a ve h i c l e f o r t h e i r experimental research i s that s i t u a t i o n s of great d i f f i c u l t y a r i s e but there are very few formal parameters involved. I t i s known that there are no psychological or s o c i a l factors i n f l u e n c i n g t h e i r models, merely a few simply defined r u l e s . However, i t turns out with most games much played by humans that there i s a body of knowledge that provides guidance f o r players f a r beyond the given rules and the complete search space. The knowledge, s p e c i f i c to some games, that guides players also guides programmers and may make general h e u r i s t i c techniques l e s s l i k e l y to evolve. A game has been chosen - pentominoes - where very l i t t l e i s known, indeed. Furthermore, since i t involves s p a t i a l judgment and combinatorial considerations, i t i s by no means completely straightforward to write a program f o r i t . I n i t i a l l y , thought centred on f i n d i n g an i n t e r n a l representation which might be useful for manipulation i n a manner analogous to a human approach to t h i s game. As w i l l be seen there had been one program described before but the representation had to be much modified; l i k e most early polyomino programs i t was concerned only with counting or di s s e c t i o n of rectangles i n t o sets of pentominoes. The chosen representation had e f f e c t s on how the program would " v i s u a l i s e " the state of the board. I t seemed poin t l e s s to r e d i r e c t i t , place i t under the same constraints as a human, since i t s model of board 2. state produced i t s own advantages. We might waste time dealing with an area of the board which seemed to be open and yet accommodated no pieces. The program however would dismiss t h i s area immediately. Fortunately or unfortunately, these differences would lead the program development towards a s i t u a t i o n where d i f f e r e n t strategies should be deployed against a human or a machine opponent. This h i g h l i g h t s the curious s i t u a t i o n ( f o r e t o l d by Good [11] f o r a d i f f e r e n t reason) i n which machines play chess only against other machines; v i z . the annual ACM tournament. The f i r s t step i n b u i l d i n g and t e s t i n g this game-playing program was to develop the basic code for manipulating the board and pieces and to include a random move generator to enable moves to be made, games to be played and s t a t i s t i c s and other information to be gathered. These routines revealed f o r the f i r s t time the t o t a l s i z e of the move tree and the number of choices at each p l y . Since a p o s i t i o n with 100 choices f o r a move i s quite close to the end of the game one should hope to determine the consequences of a l l moves f a i r l y thoroughly, but having to cal c u l a t e them anew f o r every square on the board made th i s computationally too time consuming. So i t became apparent that some extra b a s i c f a c i l i t i e s are needed. These are described i n Section 2.2. F i r s t l y , a large table was constructed to provide a l i s t of possible moves for any given neighbourhood. A program was written to construct l i s t s to r e s t r i c t them to manageable proportions, an i n t e r e s t i n g problem i n i t s e l f . Then to sustain, minimally, the analogy with a human player, an exhaustive search i s required f o r the very l a t e stages of the game when i t i s clear that a complete analysis i s necessary. 3. H e u r i s t i c s are f u t i l e with only two pieces remaining to be played. Because i t takes place at the end of the game a s i m p l i f i e d alpha-beta search can be used. I t w i l l be c l e a r that even here the environment constrains the search to be depth f i r s t and nothing e l s e . With these routines present the program can play at a reasonable rate and becomes foolproof near the end. There remains to consider how to make the program play b e t t e r i n the early stages and more importantly i n the c r u c i a l part of the game before an exhaustive search i s f e a s i b l e . Chapter 3 describes what has been done to convert the d e t a i l e d numerical information gathered by the updating and move-making routines of the program into something l i k e the ' gestalt' concepts of a human player. In one view t h i s simply condenses to a mapping of p o s i t i o n i n t o a smallish set of numerical values. In another, i t represents an evaluation function that can be applied to p o s i t i o n s i n the l a t t e r parts of a game, once the idea i s established of the importance of the moves preceding the search. Supporting routines were written that create and maintain a table of values that give a judgment on whether p a r t i c u l a r kinds of positions are good or bad. The goodness i s measured by the only means that have turned up; pragmatically - did one win when that kind of p o s i t i o n occurred i n previous games? Cl e a r l y there are too many posit i o n s to give each a d i s t i n c t value so they are grouped by a numerical computation, a form of mapping that i s described i n Section 3.1. Also i t i s seen that, since the evaluation i s based on past performance, therefore the a b i l i t y i s inherent to improve future r e s u l t s . The r e s u l t s i n t h i s chapter show the s i g n i f i c a n t 4. improvement i n playing strength over the e a r l i e r version. Results with human opponents were more d i f f i c u l t to evaluate since the machine that moved randomly u n t i l near the end obtained a remarkably good record, better than 25%, we estimate, against a l l kinds of opponents from programmers a l l the way up to beginners. I t i s c l e a r that pentominoes i s an odd game. 5. CHAPTER 1 THE GAME-PLAYING MILIEU 1.1 General Considerations Interest i n mechanisms behind the playing of games i s probably almost as o l d as games themselves. Work on mathematical solutions to puzzles of a l l kinds i s always taking place. The fraud of Maelzl's chess automaton l a s t century i l l u s t r a t e d , i f nothing e l s e , a demand for and f a s c i n a t i o n with machines of that kind. In 1914 the Spanish inventor L. Torres y Quevedo produced a machine that wins the chess endgame of king and rook against king. He commented, "the l i m i t s within which thought i s r e a l l y necessary need to be better defined...the auto- maton can do many things that are popularly classed as thought." The advent of computers revolutionised the p o s s i b i l i t i e s . The o r i g i n a l paper of Shannon [22] sparked much work i n chess although there were already some hand-simulations around at the time. In f a c t nothing i n h i s general suggestions need be confined to chess; there i s equal a p p l i c a b i l i t y to checkers, t i c - t a c - t o e , the eight-puzzle and many other popular pastimes. However there have been many more reasons f o r computerised game- playing than the entertainment of games. Samuel's work with checkers [20] and [21] has stood as one of the most successful e f f o r t s i n the f i e l d . His i n t e n t i o n was to have the program play j u s t as w e l l as possible and to t h i s end he incorporated as much information about valuable checker board positions as he could provide himself and from expert players. Ih addition, he used polynomial evaluation functions, e f f i c i e n t l y coded representations and was one of the f i r s t to use the 6. alpha-beta search algorithm, before i t had even been christened. Samuel's i n t e r e s t was not i n simulation of human thought processes but i n demonstrating i n t e l l i g e n t r e s u l t s using some techniques p e c u l i a r to d i g i t a l computing. On the other hand, many people have been employing games f o r j u s t such simulations. Newell, Shaw and Simon's chess player [16] i s one of the e a r l i e s t examples. They were not so much concerned with r e s u l t s from the most e f f i c i e n t programming but with the underlying problem so l v i n g processes. Games have always been useful i n th i s area because of t h e i r formal s i m p l i c i t y that yet leads to very complex behaviour. - Chess has always had a s p e c i a l place i n the programming of games and i n a r t i f i c i a l i n t e l l i g e n c e because i t has been considered the game of thought, par excellence, the mastery of which would be considered to require i n t e l l i g e n c e by a l l but the d e f i n i t i o n a l r e c i d i v i s t s who hold that thinking i s what machines don't do. Many groups of people have b u i l t chess playing programs without any s p e c i f i c research goal but to make a machine play better than other machines or other people. A landmark here was Greenblatt's program [12] which included very e f f i c i e n t code, extensive routines f o r the generation of p l a u s i b l e moves and time saving tree pruning methods. This program beat Dreyfus who had written that such things were impossible [ 5 ] , I t has been e n r o l l e d i n the U.S. Chess Federation, has played i n tournaments and i t seems that further e f f o r t s along the same l i n e s have l i t t l e to contribute to the state of knowledge i n the f i e l d . 7. H e u r i s t i c searching i n problem s o l v i n g has often used games as the environment for experiments. The Graph Traverser (Doran and Michie [6]) worked with the eight and f i f t e e n - p u z z l e s , Slagle [23] developed an almost unbeatable program that plays Kalah while producing refinements i n tree searching and pruning techniques. Most work i n computing with games i s aimed at uncovering some things unrelated to the games themselves (with the exception of chess mentioned above); e i t h e r methods of human thought i n problem so l v i n g or general h e u r i s t i c methods. However i n almost a l l cases there i s a considerable body of knowledge beyond the rules that r e l a t e s to the playing of the game. Each game has i t s own s p e c i a l approach that may make generalisable r e s u l t s harder to come by. There i s one further class of games that have been used as research t o o l s ; those where l i t t l e i s known or what i s known i s supposed to be ignored. Zobrist's work with Go, [24], using numerical values to represent v i s u a l organisation of the stones on a Go board, i s a good example and i t i s into this area that this work f a l l s . 1.2 Polybmiribes Golomb [10] describes the n-ominoes as generalisations of the domino. See, f o r example, Figure 1. They are groups of simply connected u n i t squares i n two dimensions. We s h a l l be considering only pentominoes during the course of t h i s study. From Figure 1, there are 12 basic 5-celled animals and they have been ordered and nicknamed F, I, L, N, P, T, U, V, W, X, Y, Z f o r convenience and due to the mild resemblance i n t h e i r shapes. Monomino • Domino Trominoes Tetrominoes (a) (b) (c) Pentominoes U w X I Y Figure 1 THE N-OMINOES FOR N < 5 9. When one allows rotations and r e f l e c t i o n s there are then 63 d i f f e r e n t orientations to be accommodated; cons i s t i n g of one f o r the 'X' piece to as many as eight f o r such as the 'F' piece (Figure 2). Pentominoes have been mentioned i n several places i n the puzzle l i t e r a t u r e ; perhaps one of the e a r l i e s t was i n the 7 4 ^ problem of Dudeney [7] i n 1908 who described how a chess board was broken over the head of the Dauphin by Prince Henry. While the Prince was busy escaping i t was discovered that the board had been broken into 13 pieces - 12 pentominoes and the square tetromino, the problem i n c i d e n t a l l y was merely to reconstruct the board. 1.3 The Game of Pentbmiribes Martin Gardner has written several a r t i c l e s on pentominoes i n the S c i e n t i f i c American [ 9 ] , based on communications with Golomb and he has included descriptions of possible games and some examples. The rules adhered to while programming are quite a r b i t r a r y and merely represent some choices among many v a r i a n t s . A few things have been borne i n mind of course; f o r example, i t must not be possible to employ a simple algorithm i n order to win and i t should preferably be a reasonable game to play. The rules that we s h a l l use throughout are the following:- ( i ) A rectangular checkerboard i s a v a i l a b l e f o r play which need not n e c e s s a r i l y have a l l i t s squares free, ( i i ) A subset of the 12 pieces are ava i l a b l e ( i n p r a c t i c e usually a l l of them). A move i s made by s e l e c t i n g one of these pieces and p l a c i n g i t uniformly i n some vacant space on the board. j 9 I 1 110 2 11 L 1 12 2 13 3 14 4 15 5 116 6 I17 7 118 8 19 N 1 20 2 21 3 22 4 23 5 24 6 25 7 26 8 }27 P 1 J28 2 !29 3 30 4 31 5 32 6 33 7 34 8 35 T 1 36 2 151 X J52Y 53 54 55 56 57 58 59 1 2 3 4 5 6 7 8 160 !61 162 Ifi3 1 2 3 4 n i l L_ l 21- D 21 n n 1 1 2 n i2 16! 17 a 2! n !3i 18! ! L 4! rs5i 7! • 4! 15! n T71 ! i 4 | I r Figure 2 THE 63 PENTOMINO ORIENTATIONS • r i 13 74 J5_ 17 3 4i 1 11. This piece i s then no longer a v a i l a b l e to be chosen again and may not be moved, ( i i i ) A game i s between two players who must move a l t e r n a t e l y . The player who i s unable to move loses. Certain rectangles recommend themselves f o r use. The 8 x 8 i s na t u r a l , the 6 x 10 i s the 'squarest' rectangle i n t o which the 12 pieces can be made to f i t exactly, the 6 x 6 board for the s p e c i a l reason that i t i s the smallest rectangle whose game outcome i s unknown. Most of our work i s confined to the 6 x 10 board, concerning which i t has been s a i d that there are, "at l e a s t 5 moves, at most 12, no draw, more openings than, chess." Indeed the program calculated that there are 2056 pos s i b l e choices for an opening move (not a l l of them e s s e n t i a l l y d i f f e r e n t ) . In Polyominoes [10], Golomb writes concerning strategy, "1. Try to move i n such a way that there w i l l be room f o r an even number of pieces. 2. I f a player cannot analyse the s i t u a t i o n , he should do some- thing to complicate the placement so that the next player w i l l have even more d i f f i c u l t y analysing i t than he d i d . " Also i n the S c i e n t i f i c American [ 9 ] , October 1965, "The most us e f u l strategy i s to try to s p l i t the board into separate and equal areas. Then there w i l l be an excel l e n t chance that the opponent's move can be matched by your next move and so on." Thus, i t i s clear how w e l l this game f u l f i l s our requirement that nothing be w e l l known i n advance. SAMPLE GAME SHOWING SQUARE NUMBERING SCHEME 12. i 4. (a) 2 8 3 9 4 5 : 6 10 11 12 13 14 15 16 17 18 19 20 21 2 2 25 26 27 28 23. 24 29 m. / ///A 30 36 42 48 54 60 (b) NXV- V \ 1 x v x ^ iz21._. .(c) 13. A sample game Is i l l u s t r a t e d i n Figure 3. The second player's moves i n (b) and (d) are attempts to maintain symmetry, but one can see that the concept lacks p r e c i s i o n since no two pieces are a l i k e . In (f) he abandons t h i s plan and loses. In this case i t i s quite l i k e l y that he would have l o s t also by playing 'symmetrically'. In (g) the f i r s t player's fourth move ensures a win by placing the 'W' so as to divide the remaining area neatly enough into two areas into both of which one piece w i l l f i t . The second player cannot circumvent the loss by playing the piece that f i t s i n the second area into the f i r s t since both the 'N' and the 'T' f i t into e i t h e r area. Note also that there are ten free squares i n the upper area and one could f i t the !W' and 'Y' pieces i n there together but not here since both have already been played. The eighth and ninth moves need not even be played since the outcome i s f u l l y determined by now. As an aside, a not too sophisticated version of the program discovered the winning move when confronted with the p o s i t i o n a f t e r move 6, though i t was d i f f e r e n t from the move shown. Referring to the 6 x 10 game, Golomb i s quoted i n [9] October 1965, "...complete analysis i s j u s t at the l i m i t of what might be performed by the best high speed e l e c t r o n i c computer given a generous allotment of computer time and a painstakingly sophisticated program." We have noted that there are 2056 opening moves, one quarter of which are e s s e n t i a l l y d i f f e r e n t . Selecting a t y p i c a l 9 move game we f i n d i n th i s instance over 1100 choices a f t e r 2 moves have been made (a f t e r one move the average i s over 1400). A f t e r 4 moves, 504 choices remained; and a f t e r 6, 104; and so on. A survey of many sample games reveals at l e a s t two things c l e a r l y . F i r s t l y , the t o t a l number of nodes i n the move tree seems to be of the 21 order of 10 . A generous allowance f o r d u p l i c a t i o n of p o s i t i o n s would leave ~3 x 10^^ positions to be examined. An increase i n e f f i c i e n c y of 5 6 t h i s program of 10 or 10 would reduce the time required to search the tree exhaustively to 30 years. In other words, combinatorial considera- tions eliminate the above mentioned p o s s i b i l i t y of a brute force approach. Secondly, what must be noticed i s the inexorable narrowing of the tree width from i t s overwhelmingly large s t a r t to the i n e v i t a b l e conclusion of the game at most 12 moves l a t e r (an average of j u s t under 9, i n f a c t ) . Just before the conclusion the game i s t r i v i a l , j u s t before that the p o s i t i o n may be analysed, (meaning here that the outcome w i l l be deter- mined by inspection at length) but before that the s i t u a t i o n i s probably impossible. Considerable advantage must be taken of t h i s structure, as w i l l be seen l a t e r . I t i s possible to construe t h i s as a major part of our knowledge of the game. 15. CHAPTER 2 THE PENTOMINO PROGRAM 2.1 Basic Representations The f i r s t attempts to manipulate polyominoes computationally stemmed from attempts simply to count them, an open problem. Read [18] was one of the e a r l i e s t and at that time i t was not f u l l y agreed how many 10-ominoes there are. This l e d to programs designed to do the same thing, the greatest attempt so f a r being by Lunnon [13] who has enumerated n-ominoes f o r n ^ 20 using about 150 hours of background computer time on an A t l a s . Counting l i k e t h i s and d i s s e c t i o n of rectangles requires a machine representation f o r the pentominoes. In determining that there are 2339 ways of f i l l i n g the 6 x 10 rectangle with a l l 12 pieces, Fletcher [8] used a representation based on the leading square of some pentomino as centre, the o r i e n t a t i o n being determined by the displacements of the remaining c e l l s from the f i r s t w ithin a 512 square g r i d which also contained the board. Using t h i s leading square approach he was obliged to execute a couple of s p e c i a l tests to r e j e c t impossible board s i t u a t i o n s . Because of t h i s , the lack of symmetry properties, and the f a c t that the influence of a s i n g l e piece from i t s leading square could extend over most of the board, that representation was rejected f o * t h i s p r o j e c t . The program employs the 'centre' of each pentomino, always a unique c e l l ; the one that minimises the sum of the rook-wise distances to a l l the other c e l l s . In Figure 1 the centre i s the square that contains the l e t t e r of the alphabet. C l e a r l y the 'distance' to any other c e l l i s 16. never more than 2 un i t s . The 12-neighbourhood shown i n Figure 4, i s used extensively, as w e l l as i t s associated c e l l - o r d e r i n g scheme. Any of the 63 orien t a t i o n s w i l l f i t i n the 12-neighbourhood when the centres coincide. This device i s used to represent a piece and also parts of the board, i n t e r n a l l y , by t r a n s l a t i n g to s t r i n g s of b i t s . F i r s t l y a piece. For example o r i e n t a t i o n 50, which i s W 4 i s shown i n Figure 5. This i s uniquely represented by c e l l s 1, 2, 5 and 7 i n the 12-neighbourhood; a l t e r n a t i v e l y by the b i t - s t r i n g (from 1 to 12) 0011 0101 1111 with zeros i n d i c a t i n g the c e l l s of the piece. In complementary fashion the state of the board with respect to any p a r t i c u l a r square that we choose can be represented. In Figures 6 and 7 the neighbourhood of square 26 has c e l l s 2, 4, 6 and 8 free so we can represent i t as 0101 0101 0000 at this time. Now t h i s square 26 can be i s o l a t e d , and i n order to see which pieces can be moved here (a move meaning that the centre of the piece w i l l be placed on th i s square) one needs merely to 'OR' i t s neighbourhood b i t s t r i n g with the b i t s t r i n g s f o r the o r i e n t a t i o n s , and i f the r e s u l t i s a l l ones then there i s a ' h i t ' . For example, square 24 would have 0101 0001 1010 and o r i e n t a t i o n 42 which i s U 4 has 1010 1100 1111. Now (0101 0001 1010) 'OR' (1010 1100 1111) i s (1111 1101 1111) thus U 4 w i l l not f i t i n square 24. However for square 26 and o r i e n t a - t i o n 60 or Z 1 (0101 0101 0000) 'OR' (1010 1010 1111) = (1111 1111 1111) and i t c l e a r l y f i t s . In the program the board i s kept as a simple array, but each square 9 8 4 5 12 3 •tm ^ * * ^ 1 7 2 6 l i l l ! F igure 4 |5 I p a i 7 12! Figure 5 THE 12-NEIGHBOURHOOD SQUARES OCCUPIED BY ORIENTATION W 4 i ! : ! • . 8 4 - ' / 24 SI 26 i . r - / •"/> yj-' 2 6 l i f e - t i ; VS" y . 1 1 ' / V . ' : / •'>;. '/(/-\ •/// ! 26 yy/s 0101 0101 000 Figure 6 Figure 7 APPLICATION OF 12-NEIGHBOURHOOD TO MOVE DETERMINATION m y>%/^ m 0101 0111 0000 Figure 8 mm 0101 0111 1000 Figure 9 BIT STRINGS FOR CERTAIN NEIGHBOURHOODS " 7 7 7 " M wA VV/t \s//// 0101 0111 1100 Figure 9a 1101 0111 1100 Figure 10 18. i s kept informed of the status of i t s 12-neighbourhood by having i t s b i t s t r i n g updated when moves are made nearby. When executing, the program i s informed of the board dimension and the piece a v a i l a b i l i t y , and then c a l l s the routine that i n i t i a l i s e s the neighbourhoods c o r r e c t l y . I f a move i s made another routine i s c a l l e d that updates the s i t u a t i o n , eliminates the piece and so on. 2.2 Some Necessary Improvements The bit-matching tests j u s t described are quite e f f i c i e n t but there are usually 60 squares to consider and 63 orientations to watch and to do every t e s t every time would consume too much time even before we s t a r t thinking of doing some analysis of p o s i t i o n s . 12 There are 2 or 4096 d i f f e r e n t possible neighbourhoods. I t would be useful i f we could decide which neighbourhood was applicable, d i a l i t up somewhere and receive a short l i s t of candidate o r i e n t a t i o n s , a l l of which are known to f i t . However t h i s would e n t a i l , instead of c a l - c u l a t i o n , maintenance of 4096 tables each of up to 63 items, an u n l i k e l y trade-off unless we were desperate. S t i l l , there are some things to n o t i c e . The l i s t f o r Figure 7 would be 60 only, and would be a subset of the l i s t f o r Figure 8 which i s 42, 60; which i n turn i s a subset of that f o r Figure 9; i . e . , 11, 18, 42, 60. Figure 9a and Figure 9 are equivalent f o r th i s purpose. We can also see from the b i t s t r i n g s involved that 0000 0000 0000 requires a n u l l l i s t , while 1111 1111 1111 returns the f u l l 63 o r i e n t a t i o n s , and to go from the one to the other changing one b i t at a time i s equivalent to f i n d i n g paths on a 12-cube. 19. Perhaps one could produce the smallest possible l i s t of orientations which would have the property that i t could be indexed f o r any neigh- bourhood and return the correct subset. A method of constructing t h i s shortest l i s t could not be discovered during the course of t h i s work. So, what has been written instead i s a program that b u i l d s as few l i s t s as possible to s a t i s f y the requirement and concatenate them i n t o a s u p e r - l i s t . This turned out to comprise 4974 items, a considerable 12 6 savings over the threatened 2 ( 2 - 1 ) or about 250,000. With this s u p e r - l i s t must be associated merely the 4096 indexes and lengths of s u b - l i s t s . Thus what i s done i s t h i s : f o r any neighbourhood, the b i g l i s t i s indexed to return the l i s t of orientations that f i t and these need only be checked for piece a v a i l a b i l i t y . Two examples w i l l i l l u s t r a t e t h i s . F i r s t l y , r e f e r r i n g to Figure 9a, the binary number 010101111100 i s converted to decimal 1404. A couple i s sought which w i l l give the l o c a t i o n and s i z e of the move l i s t . To t h i s end one looks i n t o the b i g l i s t at l o c a t i o n (2 x 1404) + a constant o f f s e t of 4975 = 7783. Consulting the chart at t h i s l o c a t i o n , (these parts of the l i s t s are exhibited i n Appendix 2B) one finds the couple (2185 4). So, the four possible moves are at 2185 i n the b i g l i s t . These are seen to be o r i e n t a - ti o n 11, 18, 42 and 60. The moves are L 1, L 8, U 4, and Z 1 as was v e r i f i e d by inspection. The second example, Figure 10, provides binary 110101111100 or decimal 3452. 4975 + 3452 + 3452 = 11879. At t h i s l o c a t i o n one finds 20. (3274 14). The 14 orientations at 3274 are 3, 8, 11, 18, 21, 22, 25, 32, 38, 42, 43, 49, 54, and 60. These moves are F 3, F 8, L 1, L 8, N 3, N 4, N 7, P 6, T 4, V 1, W 3, Y 3, and Z 1. The second problem to be faced says that even i f we had some h e u r i s t i c s to guide move s e l e c t i o n on some more or les s r e l i a b l e b a s i s , when we are s u f f i c i e n t l y close to the end of the game, and the search tree i s narrowing f a s t , then i t i s e s s e n t i a l to stop and analyse the p o s i t i o n thoroughly, or r i s k overlooking the r i g h t move. That i s , to any player of t h i s game, brute force analysis takes over eventually. Of course, deciding when t h i s i s possible during the course of a game i s as challenging as the analysis i t s e l f . Because of the sudden termi- nation feature, there has to be a complete search implemented somewhere. This i s t r i v i a l to do at the very end, and incr e a s i n g l y arduous e a r l i e r on u n t i l the time required to do i t i s c l e a r l y not a v a i l a b l e . Much judgment i n playing the game i s concerned with choosing the point when one must be exhaustive instead of making estimations. I t i s possi b l e that one part of a successful strategy w i l l be to arrange that i t i s you and not your opponent that w i l l be l e f t with a p o s i t i o n of that s o r t . Carrying the analogy to the machine i t i s equally c l e a r that regard- less of what else i t i s doing, when the game i s detectably close enough to i t s f i n i s h , the program also must make an exhaustive search. A reasonable estimate of proximity to the end i s a count of the number of orientations remaining f o r a player to choose from i n the current p o s i t i o n , perhaps modified by the degree to which they are con- 21. centrated on a few squares on the board. The more widely they are scattered, the harder i t i s to decide the r e s u l t , as a r u l e . T h e o r e t i c a l l y , the 6 x 10 pentomino board and i t s state can be represented by a s t r i n g of 60 b i t s , on or o f f for occupancy. Unfortu- nately the game i s unlike checkers i n that there i s much more to a move than changing a couple of b i t s . In f a c t , given only t h i s b i t s t r i n g i t i s d i f f i c u l t to c a l c u l a t e what i s possible, l e t alone do i t . I f one wants to carry along 12-neighbourhoods and other useful information then the storage requirements i n core (hundreds of bytes per position) mean that only very few nodes could be expanded at once i n core, and even then much time would be used maintaining these neighbourhood statuses. The method was selected whereby the board i s not stored at a l l at each node but only the move made to reach the node. An abbreviated board (without d e t a i l s of move counts etc.) i s maintained and movement up and down the game tree i s made by playing and unplaying moves on t h i s ' f a s t ' board. By t h i s means, large numbers of v a r i a t i o n s can be saved and a l l of the remaining moves i n the game can be played merely by moving down the tree. In f a c t , there i s l e s s value than might appear i n saving the tree. The search can only be made quite close to the end of the game. Two moves l a t e r , when next the opportunity a r i s e s , the search w i l l by now have become t r i v i a l . Since the p o s i t i o n s are not stored at nodes, the search i s depth f i r s t by necessity. I f t h i s were not so the tree width, even at t h i s Figure 11 22. FORMAT FOR THE TREE SEARCH LEVEL 0 LEVEL 1 Unex- j paneled — Node j t=i. > o LEVEL 2 l a t e stage, i s too wide for a breadth f i r s t search. The lowest depth reached i s a terminal p o s i t i o n which 'evaluates' simply to win or lose, which makes minimaxing and a p p l i c a t i o n of the alpha-beta procedure very straightforward. There are two kinds of nodes i n the tree, 'expanded' and 'unexpanded' Nodes representing moves on the board are the expanded nodes. From one of these i s developed an unexpanded node, i n e f f e c t h a l f a l e v e l lower down, which indicates upon which square of the board attention i s being focused. In general several orientations may be placed with this square as centre, and these become the expanded nodes. From the i n i t i a l node, the f u l l set of unexpanded nodes are developed one f o r each square a v a i l a b l e as a move centre. From one of these at a time the moves are played by developing the expanded nodes, then the f u l l set of unexpanded from the current expanded node, and so on (see Figure 11). Most nodes contain pointers to father, brothers, son etc., locations fo r ply l e v e l , whom to move, backed up values, etc. The unexpanded nodes record the board square and the status of the 12-neighbourhood, the expanded nodes the piece and i t s o r i e n t a t i o n as the move played. The search routine i s written i n PL/I without using pointer variables The search space i s an array of f i x e d s i z e whose garbage c o l l e c t i o n i s simply c o n t r o l l e d i n a manner j u s t as easy to implement i n Fortran, say. Each node points to the next a v a i l a b l e l o c a t i o n ; the f i n a l item points to 0 (see Figure 12). When a node i s freed, the node that was pointing to 0 now points to i t and i t now points to 0. On the IBM 360/67, i f the 24. No. of Location of Next No. of Location of Next Item- Item Item Item 1 2 1 1 2 2 3 2. | ' 3 3 4 3 ! 4 4 5 4 1 0 5 6 5 6 • • • 3000 0 3000 4 I n i t i a l l y A f t e r Freeing Item 4 Figure 12 GARBAGE COLLECTION FOR THE TREE SEARCHING ARRAY 25. chainings were r e s t r i c t e d to with i n dis c r e t e pages then there would be r e l a t i v e l y few occasions for pointing across page boundaries. However i n PL/I one doesn't control page alignments. Consequently there i s some de t e r i o r a t i o n i f the search continues expanding nodes long beyond the array s i z e l i m i t . In p r a c t i c e , the search develops i n excess of 200 nodes per CPU second (somewhat less when the paging demands r i s e e x c e s s i v e l y ) . A dozen integers are needed f o r a node plus a few b i t s . Each integer uses 2 bytes at l e a s t i n this system. Thus each node uses 26 bytes and the array of 3000 items occupies 78,000 bytes, not too heavy a p r i c e . Using this array the search has been able to develop over 9000 nodes. A l i m i t of 60 move choices was set as the point when the program must make the f u l l search; and 100 when playing human opponents. I have encountered no case where i t f a i l e d with t h i s search space. There i s a very noticeable contrast i n node development between those cases where a winning move i s found (i n v a r i a b l y j u s t a few CPU seconds at most) and those where a loss must be established (frequently more than 4000 nodes or 20 seconds) i . e . i f a win w i l l be found, i t w i l l be found quickly. My tests revealed that wins could be established i n posit i o n s o f f e r i n g w e l l i n excess of 100 choices, but that i f the win was absent, the search would overflow any reasonable search space. (In other words, i t i s very useful to know whether one can win before t r y i n g to f i n d out). As i t i s , there i s evidence f o r the u t i l i t y of cutting o f f the search ea r l y , when the p r o b a b i l i t y of a successful outcome i s much reduced. 26. CHAPTER 3 THE "INTELLIGENT" ADDITIONS AND THEIR EFFECTS 3.1 Aids to Move Selection One of the f i n a l problems was how to replace the random move generator by a new one and be able to notice the improvement. The program c o l l e c t s numbers as i t s routine goes around updating neighbourhoods a f t e r a move has been made. The routine counts the number of squares where moves are possible, and for each one of those i t counts the number of orien t a t i o n s that are a v a i l a b l e and do f i t i n that square. An example from a sample game a f t e r 2 moves on a 6 x 6 board i s shown i n Figure 13, a t o t a l of 287 choices f o r a possible move with 19 po s s i b l e choices f o r a square as centre f o r that move. In Figure 14, a f t e r another move there remain 137 moves and 13 centres. These two numbers and t h e i r r a t i o do o f f e r some idea of space r e - maining, roughly how many moves and prevalence of open areas i n the p o s i t i o n . I t i s c e r t a i n l y not known, a p r i o r i , how to convert these concepts into the correct next move. However, once several games have been played, there may e x i s t some reason to believe that 137:13 might i n d i c a t e a p o s i t i o n where one was more l i k e l y to win than to lose. I t might be found that 200:13 was unfavourable, also 137:18 and 137:8. The program that uses such information to modify i t s behaviour can at l e a s t be 'punished' for i t s mistakes and be hoped to learn to improve i t s play. The numerical measures are a form of feature e x t r a c t i o n . I f i t had happened that too many heterogeneous c h a r a c t e r i s t i c s of the p o s i t i o n had mapped into the same small set of numbers then some a l t e r n a t i v e mapping 1 2 o 0 1 i ! 2 0 0 6 -•/yy, ''/\ 0 16 ! 8 o . - ' ,' y'y'y' 0 !19 1 31 • 8 •/' / - i 3 19 21. 0 yyi<y] 1 2 0 Figure 13 Figure 14 COUNTS OF POSSIBLE ORIENTATIONS IN THEIR CENTRE SQUARES yi m m m Figure 15 Figure 16 GAME POSITION TO ILLUSTRATE INFORMATION GATHERING PROCESS 28. would have to be discovered. What have been used are figures that represent concentrations of moves a l l over the board and from which the influences of the pieces can be deduced. This approach i s somewhat akin to that of Zobrist i n GO [24], since the influence of a bishop i n chess i s c l e a r l y enough defined but that of an an t i c i p a t e d move of a GO stone i s not and of a Pentomino piece even less so. In chess, and other games, one can have a c l e a r l y 'winning' p o s i t i o n even though a forced conclusion cannot be demonstrated; f o r example, being a queen ahead, other things being equal. This can be measured by a count of r e l a t i v e material strengths, which w i l l be part (or a l l ) of a s t a t i c evaluation of a chess p o s i t i o n , and i s only the f a c t that these features e x i s t that makes such an evaluation p o s s i b l e . In Pentominoes, e i t h e r a win (or loss) can be demonstrated (by exhausting cases) or the p o s i t i o n i s not c l e a r . S t r a t e g i c a l concepts, such as symmetry and the s i z e of the d i s c r e t e , remaining areas have been mentioned, but t h e i r e f f e c t i s never such as to cause a player to give up as most would when a queen down i n chess. One knows by experience that i t may be wise to avoid c e r t a i n kinds of p o s i t i o n s , areas, symmetries, etc. The i n t e n t i o n i s to have the program develop s i m i l a r kinds of information, pragmatically, gaining better ideas about good and bad posit i o n s by the experience of games i t has played, using information that i t has computed i t s e l f . To t h i s end one hundred games of random moves were generated within the program and the d e t a i l s of move counts and concentrations stored f o r each move. A l l the games were analysed from t h e i r terminating move back- 29. wards u n t i l the positions were beyond reasonable study. A person would not expect to spend more than 20 minutes on one p o s i t i o n and the computer, which had some routines developed to do the same thing, r a p i d l y became too expensive to use for t h i s . At the p o s i t i o n nearest to the s t a r t of the game, where the outcome was s t i l l c l e a r , the d e t a i l s were recorded and b u i l t into a f i l e l a t e r to be accessed and augmented by the program. A 'random' game here means the following: using an a v a i l a b l e random number generator, a free square was selected, then one of the possible or i e n t a t i o n s f o r that square was chosen and played. This process was repeated u n t i l the game ended. The method i s equivalent to choosing a l o c a t i o n , then s e l e c t i n g something to place there and i s d i s t i n c t from at l e a s t one other random scheme that was not used, of taking a piece and f i n d i n g somewhere to put i t . An example p o s i t i o n (Figure 15) w i l l help reveal what kind of i n f o r - mation i s to be stored. We guess that i t i s too d i f f i c u l t to examine exhaustively ( i t may not be) so one more move i s generated, move 6, the T piece at square 49 i n i t s fourth o r i e n t a t i o n , abbreviated T 4 49, see Figure 16. Now the r e s u l t i s easy to determine. There are 114 choices of moves i n 15 a v a i l a b l e squares. The move suggested by the program, V 2 21 w i l l win since exactly two moves remain. Returning to Figure 15, assume that the program i s turning over moves. I t computes that i f i t plays T 4 49, there w i l l remain 114 moves i n 15 squares. We have seen that i t would then lose, so we want some way to t e l l i t that t h i s i s a p o s i t i o n to be avoided so that no opponent should be lucky enough to be l e f t with i t . So we make an entry opposite 114 under number of squares = 15. We subtract 8 from the stored value. This value i s a r b i t r a r y but i s arranged i n order to obtain a r i p p l e e f f e c t . I f 114:15 i s a poor p o s i t i o n to leave, then so may w e l l be 113:15 or 115:15, only l e s s c o n c l u s i v e l y so; thus the subtractions go as follows: 111:15 -1 112:15 -2 113:15 -4 114:15 -8 115:15 -4 116:15 -2 117:15 -1 The p o s i t i o n before the T was placed had 161 choices i n 27 squares. Even though i t cannot be analysed (supposedly) we guess that i t may have opposite f a v o u r a b i l i t y from i t s successor (perhaps we should leave t h i s p o s i t i o n to the opponent so he can leave us the good one). So we f i l e away: 158:27 +1 159:27 +2 160:27 +3 161:27 +4 162:27 +3 163:27 +2 164:27 +1 31. The numbers are smaller since we are l e s s convinced. The p o s i t i o n before move 5 had 483 choices i n 34 squares, as a l a s t gesture we store: 482:34 -1 483:34 -2 484:34 -1 A set of routines have been written that receive a s e r i e s of move counts and the amount to be added or subtracted and r e b u i l d the l i s t structure that w i l l r e f l e c t updated values. Currently, a l l the pointers and p o s i t i o n evaluations are stored i n an array of j u s t over 3400 numbers. The complete l i s t i s provided i n Appendix 2D. I t s operation can be made e x p l i c i t by giving an example of how the program uses i t to compare p o t e n t i a l moves. Suppose that the program i s t r y i n g to f i n d the most favourable move i n the p o s i t i o n drawn i n Figure 15. I t w i l l play the moves hyp o t h e t i c a l l y and then examine the r e s u l t i n g p o s i t i o n s to count the number of moves remaining open and t h e i r respective centres. I f t h i s number of moves l i e s between 49 and 520, there may be information to look up. Imagine that one move leaves 89 choices i n 15 squares. The pointer fo r 89 i s found i n the l i s t o f f s e t by 47, i . e . , l o c a t i o n 42 (Appendix 2D). Thus the values are to be found beginning at l o c a t i o n 946. There are pa i r s of scores, a value for move centre counts 13, 15, 16, 23 and 25. The value given for 89:15 i s -10, a poor choice. As a second case, suppose that another move leaves the p o s i t i o n 75:20. Now 75 - 47 = 28. Pointer at 28 = 798. Scanning through the pairs s t a r t i n g at 798, the value for centre count = 20 i s +1. 32. C l e a r l y the program w i l l prefer the move that leaves t h i s p o s i t i o n . In cases such as t h i s one, a l l moves w i l l be tested and the one with the highest score w i l l be chosen. 3.2 Experimental Results On examining the 100 random games i n some d e t a i l and incorporating the assumption that the foolproof minimax search took over when there were 60 or fewer choices f o r a move, we found that the f i r s t player wins 55 games and the second player wins 45. 36 games were played with the modified version of the program com- peting against a version of i t s e l f which had no access to the guidance tables, but did employ the search equally well at the end. An average of 60 seconds CPU time per game and l i m i t e d access to the computer prevented r e a l l y large scale t e s t s . When the modified program moved f i r s t (15 cases) i t won 12 and l o s t 3. When i t moved second, i t won.11 and l o s t 10. These r e s u l t s are perhaps more remarkable than was expected. The newer version obtaining a plus score i n a l l cases, considering the unusual random e f f e c t s i n this game (such as seeming to have a 'good p o s i t i o n ' but l o s i n g anyway.) During the internecine phase of one program version playing against another, the minimax search was i n i t i a t e d only when 60 or fewer move choices remained (the l i m i t was 100 when people p a r t i c i p a t e d ) . As i t s sole strategy, some version could be programmed to make every attempt to avoid giving i t s opponent the chance to invoke the search routine. By being the one to search f i r s t i t could be suggested that a c r u c i a l advantage would be gained since most other s t r a t e g i e s could be claimed 33. to be only marginally e f f e c t i v e . This was not so i n p r a c t i c e . Several times during games, a program was forced to move without searching. I t s opponent was then allowed the f u t i l e gesture of exhaustively searching to discover that i t was j u s t about to lose. In f a c t , no version used the search cut-off point i n decision making; mostly because i t had to perform against people, and they take no notice of such a r b i t r a r y , and to them undetectable, boundaries. What of games between people and versions of the program? I t would have been very expensive to undertake the s e r i e s of c o n t r o l l e d experi- ments required to be able to d i s t i n g u i s h the 'smart' version from the random program with search, because of the high random success rate and the large amounts of CPU time needed f o r each game. How should one measure the improvement i n an under or overmatched opponent? Not by counting v i c t o r i e s . I t must be noted that i n the f i n a l s e r i e s of 6 c o n t r o l l e d games with human subjects as opponents the machine l o s t but once. That loss was with the improved version, the random ver- sion won a l l i t s 3 games. What one t r i e s to search for instead ( v i z . Samuel [20]) i s an improvement i n the class of i n d i v i d u a l moves. These moves would be compared with those suggested by acknowledged good players (sadly, hard to come by i n Pentominoes). Here i s the most noticeable improvement, the newest version makes i n d i v i d u a l moves that make sense i n t u i t i v e l y to i t s opponent; so much so that one subject ascribed to the r a t i o n a l i t y of i t s play h i s a b i l i t y to beat i t when he did. The random player, on the other hand, was confusing; 34. no one could t e l l what i t was up to, as, of course, i t was up to nothing at a l l u n t i l the search phase. There are four sample games i n Appendix 2E for i l l u s t r a t i o n . Game one shows the random machine moving second against i t s human opponent. In Figure 17a the program has generated moves 2, 4 and 6, the l a s t being p a r t i c u l a r l y i n d i f f e r e n t . This game serves j u s t as w e l l as an example of random versus random, they looked much l i k e t h i s . The f i r s t player plans to leave j u s t 2 moves but makes the mistake of using one of the two pieces that f i t around squares 6 and 12. The program i n i t s search uses the other one to f i n i s h the game. The l i n e of figures above the winning move shows that the search took le s s than one CPU second to expand only about 46 nodes. The human could have won by playing the N piece as shown i n Figure 17c. In game 2, the subject plays f i r s t and plays h i s f i r s t moves around the edge of the board. The program which now has access to i t s tables plays i t s f i r s t move with the i n t e n t i o n of reducing the open space and plays i n the middle of the board. Its p o s i t i o n i n Figure 18a i s very d i f f i c u l t and the move i t chose seems to be a good t r y . Unfortunately, i t s opponent can f i n d the move of the T piece, i n Figure 18c, leaving moves of the N and Y pieces i n the areas shown. The program v e r i f i e s this i n a 24-node search; i t s play now exhibits some purpose, whether this i s relevant to winning i s another matter. In game 3, the program moves f i r s t , and a f t e r 4 moves the p o s i t i o n i t considers i s Figure 19a. The move of the N piece that i t plays (Figure 19b) i s remarkably strong, quite possibly winning against a l l 35 YY <YY Yy KY-yy F7T /// ' /' S Y y' ^4X~ '"////ft. Y \ fi\ ///YY, / / / 12 '/// X//i W V y .\\\vv i>XXv \ • i. ///// .• XX x x x X'' \y'// /Y////.'s rx Y YYs ////S/Y/Y YMSL 't .V- YYVy^-yy /,'>'•' Ys .-' ; Figure 17 POSITIONS FROM EXAMPLE GAME ONE m 5 j-v/ ///• X YYYY/. //A i Yy. If Y • '3 iXX X. 1 WY//, /.///<•/// '7 7?///./A •A- '/// /// VYy-// \/YY \YY 'YY\ •','\ 'X-X; i ! i /Y?Y/A/ • / / / 7. . // /. •v'X////, - / x/A/./. 7//Y/ -V. ///////. ////. YYYYJ • - V XXX! •••• /-X x-/ / Figure 18 POSITIONS FROM EXAMPLE GAME TOO 36. r e p l i e s . The opponent's choice of the U piece allows the game to f i n i s h i n one move, a f t e r a 121 node search. Placing the L piece i n Figure 19c looks l i k e a better attempt to parry. Why i t f a i l s might entertain the reader to discover. In game 4 the program moves f i r s t again, ( i t s f i r s t moves are very l i k e l y to be d i f f e r e n t from each other.) Once again, a f t e r examining the p o s i t i o n a f t e r 4 moves ( i n Figure 20a) the program plays a f i n e move (Figure 20b). Finding i t annoyingly hard to analyse, i t s opponent played the Y piece to close the area at the top of the board (Figure 20c). A f t e r 5 seconds CPU time and over 1000 nodes the program's search y i e l d s a forced win as shown. In a l l i t s games, the longest successful search took 42 seconds CPU time expanding over 8200 nodes from a p o s i t i o n with 100 move choices. The author i s forced to say that t h i s program plays a respectable game of Pentominoes since i t once beat him when he was t r y i n g to win. I t may be pointed out that there i s no 'algorithm' (or set of moves) which would enable anyone to win against t h i s program. This i s not the case with many game-playing programs that use an evaluation function. In t h e i r cases, once a winning l i n e has been found i t can be repeated u n t i l the programmer changes h i s program. For one thing here, the f i r s t move i s chosen randomly from 2056 (the random choice among equals i s usually the most that an evaluation function achieves i n varying from game to game). More c r u c i a l l y , the r e s u l t s of a l l games are open to a n a l y s i s , the r e s u l t s of which w i l l be r e f l e c t e d i n a new e d i t i o n of the move evaluation l i s t s . P ositions that Figure 19 POSITIONS FROM EXAMPLE GAME 3 a b Figure 20 POSITIONS FROM EXAMPLE GAME 4 led to a loss w i l l be penalised heavily enough to dissuade the program from choosing moves that lead there. Appendix 2D contains the second edition of the l i s t s . One generally bad position had had a few favour- able results during the random games, but not later against real opposition. These positions of later games were the information used in the update. 39. CHAPTER 4 CONCLUSIONS The problems encountered In th i s research give r i s e to conclusions that can be extended beyond pentominoes to embrace much of the work i n game playing and h e u r i s t i c searching. As Minsky [15] writes, planning i s now a more c r u c i a l aspect than before (compared with searching) i n the human problem s o l v i n g areas of a r t i f i c i a l i n t e l l i g e n c e . He says t h i s i s because there i s reason to believe that human chess or checker players consider only dozens, or at most, a few hundred d i f f e r e n t positions when deciding on a move. Some programs have commonly evaluated hundreds of thousands. He claims that these were early works and that l a t e r on there were reductions thanks to development of some theory. This theory, however, i s heavily dependent on s p e c i a l i s e d knowledge of a problem area of which the programmer i s aware - the a b i l i t y to 'evaluate' a p o s i t i o n or node i n a graph. Without t h i s we suggest that the theory might as w e l l not e x i s t f o r a l l the help i t can o f f e r . I t i s cl e a r from the c l o s i n g remarks i n the l a s t chapter that, i n some sense, t h i s Pentomino playing program can 'learn'. However, we de l i b e r a t e l y omitted the routines that update the evaluation l i s t s from the main body of the program i n order not to give an exaggerated impres- sion. Since there i s no a l t e r a t i o n to the conceptual model into which the new information i s received, t h i s 'learning' had much better be c a l l e d adaptation. I t does have the advantage of being s e l e c t i v e . A f t e r the s t a r t given to the program by the analysis of the 100 games, not each t r i a l has to be AO. recorded i n these tables. Thus the problem that was encountered i n BOXES [1A] i s avoided, which was that the e f f e c t of an erroneous move given early reinforcement was s t i l l apparent thousands of t r i a l s l a t e r . I t i s suggested that the 'evaluation' of positions that i s c a r r i e d out by the program i s analogous i n some ways to that of human players of games who learn to abstract c e r t a i n favourable features from t h e i r p o s i t i o n s . In s p i t e of i t s very naive representation ( i n the form of straightforward l i s t s ) i n i t s own way i t i s more natural than the a r t i - f i c i a l c a l c u l a t i o n s employed by many game playing programs, and perhaps some of i t s e f f e c t s could be incorporated into more orthodox forms. 'Evaluation' i s c r u c i a l not only to game playing but also to h e u r i s t i c search methods i n general. How c r u c i a l i t i s has not been made e x p l i c i t . As we have seen, st r a t e g i e s r e s u l t from knowledge of the game or search space that i s apart from the formal r u l e s . When there i s almost no such knowledge, nodes i n the search tree come to be i n d i s t i n g - uishable. Slagle [23] finds a very useful evaluation function f o r Kalah, i f there had not been one the h e u r i s t i c search would have stopped before i t began. Nilsson [17] i s t r y i n g to improve searching by cost estimation methods, the 'estimate' which must be a v a i l a b l e at any node of the graph i s an evaluation of course. In i t s absence, there i s nothing l e f t . In the GO-playing program of Ryder [19] the issue of p o s i t i o n evalu- ation has been shelved f o r the sake of c a l c u l a t i n g numerous l o c a l e f f e c t s , which enable him also to discover p l a u s i b l e moves and to avoid the search i n a space that explodes combinatorially l i k e few others do; hence h i s 41. mere passing reference to the work of Zobrist [24]. Pentominoes has a paucity of l o c a l considerations indeed, there i s so l i t t l e s t r a t e g i c a l information that i t i s doubly remarkable that such an e f f e c t i v e playing program has been produced. The Game i s a counter-example to the argument that there w i l l always e x i s t s t r a t e g i c a l information to use when one wants to make an h e u r i s t i c - t y p e search. In fact,, humans, make 'plausible moves' when they i n t e r a c t s o c i a l l y , not based on rules of strategy or an evaluation function so much as using the very large amount of relevant information that they have access to i n t e r n a l l y . The development, storage and use of complex information relevant to playing games seems to be quite an important d i r e c t i o n i f computer game playing research i s not going to descend to a competition j u s t to beat the l a t e s t d i g i t a l chess champion. Minsky [15] suggested that what i s needed f or summarising search trees i s not a numerical u t i l i t y - l i k e value but a d e s c r i p t i o n - l i k e expression that can be used for a n a l ysis. In chess, Botvinnik [1] has produced a way of mathematically repre- senting the board, using horizons, which w i l l make i t easier to consider plans and actions. He pointed out that the chess playing programs of the l a s t 20 years had got bogged down because they f i r s t coded a scheme f o r a chess board and men f a i l i n g to know f i r s t l y what they intended to do. He expects to produce a very good player t h i s way but h i s view seems inadequate. Clarke [2] goes so f a r as to propose a s p e c i a l language f or dealing with chess (Algol 64). This seems quite i n t e r e s t i n g , but l i k e Botvinnik 42. must face the problem of the large body of information accumulated by experience. De Groot [3] took protocols from many levels of chess players with the intention of distinguishing a Grandmaster from a Master and so on. This was a relative failure. There were clearly things happening below the level of the most introspective protocol that the players were unaware of. Another series of tests that he did ([3] and [4]) were more revealing. A position was exposed to various players for just a few seconds, and they were then asked to reconstruct the position. Only the Grandmaster was able to produce the f u l l correct position and also the winning move! Lesser players, typically, recalled less. This only applied to 'meaningful' chess positions. The problem, of course, in computing, is how to build up a 'vocabu- lary' that increases comprehension of chess positions in parallel. This problem of large amounts of new knowledge w i l l not only occupy game playing research but also the computer linguists working with semantic models. The view, exemplified by Minsky [15], that 1,000,000 'facts' w i l l be enough for a great intelligence, i s clearly inadequate even i f some- one knew what a 'fact' was. It is shown to be so by the current work of Papert et a l . on comprehending very young children's stories. The problem is one central to a l l of A r t i f i c i a l Intelligence, not only to game playing. 43. REFERENCES [1] Botvinnik, M.M. (1970), Computers, Chess and Long Range Planning, Sp r inge r-Ve r l ag. [2] Clarke, M.R.B. (1971), "Some Ideas for a Chess Compiler", NATO Symposium on Human Thinking - Computer Techniques f o r i t s Evaluation, St. Maximin, France. [3] De Groot, A.D. (1965), Thought and Choice i n Chess, G.W. Baylor (ed.), The Hague and P a r i s : Mouton. [4] . (1966), "Perception and Memory Versus Thought: Some Old Ideas and Recent Findings," i n B. Kleinmuntz (ed.), Problem Solving: Research, Method, and Theory, New York, Wiley, pp.19-50. [5] Dreyfus, H.L. (1965), Alchemy and A r t i f i c i a l I n t e l l i g e n c e , Santa Monica, C a l i f o r n i a , Rand Corp. [6] Doran, J . and D. Michie (1966), "Experiments with the Graph Traverser Program," Proc. R. Soc. (A), 294, pp.235-259. [7] Dudeney, H.E.. (1908), The Canterbury Puzzles, Dover (1958). [8] Fletcher, J.G. (1965), "A Program to Solve the Pentominoes Problem by the Recursive Use of Macros," Comm. ACM 8(10), pp.621-623. [9] Gardner, M. "Mathematical Games Department" i n S c i e n t i f i c American Magazine. [10] Golomb, S. (1965), Polyominoes, Scribner's, New York. [11] Good, I.J. (1968), "A Five-Year Plan for Automatic Chess," i n E. Dale and D. Michie (eds.), Machine I n t e l l i g e n c e 2, American E l s e v i e r Publishing Company, Inc. pp.89-118. [12] Greenblatt, R., D. Eastlake and S. Crocker (1967) "The Greenblatt Chess Program," Proc. FJCC, pp.801-810. [13] Lunnon, W.F. (1971), "Counting Polyominoes," i n Computers i n Number Theory, Atkin and Birch (eds.), Academic Press, New York, pp.347-372. [14] Michie, D. and R.A. Chambers (1968), "Boxes: An Experiment i n Adaptive Control," i n E. Dale and D. Michie (eds.), Machine In t e l l i g e n c e 2, American E l s e v i e r Publishing Company, Inc. pp.137-152. 44. [15] Minsky, M. (1968), Semantic Information Processing, Introduction, . M.I.T. Press, pp.1-31. [16] Newell, A., J.C. Shaw and H.A. Simon (1963), "Chess Playing Programs and the Problems of Complexity," IBM J. Res. Dev., 2, pp.39-70. Reprinted i n E. Feigenbaum and J. Feldman (eds.), Computers and Thought, McGraw-Hill Book Co., 1963. [17] Nilsson, N.J. (1969), "Searching Problem Solving and Game Playing Trees for Minimum Lost Solutions," i n A.J.H. M o r r e l l (ed.), Information Processing 68, Vol.2, pp.1556-1562, North-Holland, Amsterdam. [18] Read, R.C. (1962), "Contributions to the C e l l Growth Problem," Can. J . Math. XIV, pp.1-20. [19] Ryder, J.L. (1971), H e u r i s t i c Analysis of Large Trees as Generated i n the Game of GO, Stanford University AIM-155. [20] Samuel, A.L. (1959), "Some Studies i n Machine Learning Using the Game of Checkers," IBM J. Res. Dev.3(3), pp.210-229. Reprinted i n E. Feigenbaum and J. Feldman (eds.), Computers and Thought, McGraw-Hill Book Co., 1963. [21] (1967), "Some Studies i n Machine Learning Using the Game of Checkers II - Recent Progress," IBM J . Res. Dev. 11(6), pp.601-617. [22] Shannon, C.E. (1950), "Programming a Computer f o r Playing Chess," P h i l . Mag. 41, pp.256-275.. [23] S l a g l e , J.R. and J.K. Dixon (1969), "Experiments with Some. Programs that Search Game Trees," J ACM 16(2), pp.189-207. [24] Zobris t , A.L. (1969), "A Model of V i s u a l Organisation for the Game of GO," Proc. SJCC, Vol. 34, pp.103-112. 45. APPENDICES 1. Operation of the Programs The main sections of this program were written i n PL/I. Most of the external supporting routines were written i n Fortran, due to being exposed to some of the f i n e points of PL/I implementation and support. The game-player PENTO expects i t s input to be i n PL/I LIST format, i . e . , items must be followed by spaces. One can begin by typing something l i k e : $R RSR1:MHK0B + NEW:PL1LIB PAR=FFF=RSR1:GGG MHKPNF = RSR1:MHKPNF The program spends a while reading i n i t s rather cumbersome f i l e s and then types 'INPUT NEW GAME SPECS'. We must then type i n some numbers: A B C D E F G H A i s the area of the board's rectangle (eg. 60) B i s the number of columns (6) C i s the number of rows (10) D represents the number of squares of the rectangle that are unavailable E i s the number of pieces unavailable F i s the debugging mode (usually 0) G i s the minimaxing search l i m i t (defaults to 60) H i s the mode of play Note: I f D > 0, we must next input the l i s t of the numbers of the squares concerned, s i m i l a r l y i f E > 0 the l i s t of pieces concerned must follow. 46. I f F i s not 0 then a plethora of h e l p f u l (to the programmer) values are l i k e l y to be printed out. The values that can be taken by H are as follows (some are now redundant): 1 You move f i r s t , program plays randomly with search. 2 Program moves f i r s t , otherwise as 1. 3 You play a l l the moves. 4 The program plays a l l the moves. 5 This was once used to gather s t a t i s t i c s about f i r s t moves. 6 A device used to analyse some games while playing backwards. 7 Used to generate and f i l e a s e r i e s of random games (an amount con t r o l l e d by G). 8-10 Not used now. 11 You move f i r s t , program has access to search and a l l tables. 12 Program moves f i r s t , as 11. To play a move one must type something of t h i s form: ' T' 3 45 remembering the space at the end or 'N' 7 34 To r e s t a r t a game, type 999 instead of the 3. One can always termin- ate with $END. One might also wish to update the f i l e of move evaluations. Say, fo r example, the choice to centre r a t i o 87:21 gave a bad r e s u l t . And by extrapolation 196:28 a good one i n the same game, and 402:38 was the state the move before. Then one would input the following l i n e s : $SOURCE MHKLD 87 21 1 ( i n format 314) 196 28 2 402 38 3 $END The following i s the content of MHKLD: $R MHKLOBJ 4=MHKPNF 5=*MS0URCE* 6=-WMK 7=*MSINK* $R *PERMIT PAR=MHKPNF NONE $E MHKPNF $C -WMK MHKPNF $R *PERMIT PAR=MHKPNF RO 48. 2. L i s t i n g s of Routines, Table and Games A. The Pentomino Playing Program B. The Move L i s t s (Excerpts) C. The Evaluation L i s t Maintenance Program D. The Move Evaluation Tables E. Four Sample Games Against Human Opponents 1 The Random Version with Search 2, 3 and 4 The Improved Version 4 9 . PENTO: PROC OPTIONS (MAIN!; (A) L I S T I N G OF DCL THE M A I N PROGRAM CPUTTME. ENTRY RETURNS ( FLOAT BIN), (WTIM,NTIM.) STATIC FLOAT BIN, MVW I NIT(50), MVCNRW,MCNCRWf MAVL(12) BIT(1) , •1 JIN, 2 JX BIT(4) INIT('OOOO'B)» 2 JL112) B I T ( l ) , MJ DEFINED J IN, MFSTBD{256) INIT ((256)2), MKA(4008) STATIC, MSLSTl13166) STATIC, MUD BIT132) INIT((32)*0*B), LINE DEC FIXED(9,3), ASIZE, MO BIN<15,4), MRCH(6), 1 STATS(IOO), 2 MOVES, 2 GSIZE, WESG CHAR(8), TIME ENTRY(BIN(31,0),BIN(31,0),BIN(31,0)), (EMAT»EMUT»MITA,MIT8,MITC»?1ITD,MITE) BIN(31,0), MGCNT I N I T ( l ) , 1 KVAR{7), 2 KPNO, 2 KONO, 2 KOSQ, CARA CHAR(l), MMM(12) INIT((12)0) STATIC, XXN FIXED BIN, PANTRY (12) B I T U 2 ) INIT (' 100000000000 ' B, ' 010000000000* B , '001000000000*8,*OOOIOOGOOOOO'8,* 000010000000*8,•000001000000*B, • 000000100000'B,'000000010000*B,'000000001000*8,* 000000000100»B, • 000000000010*B,'000000000001«B), XPANTRY(12) BIT(12), TF0PS(12) STATIC FIXED BIN INITtl,9,11,19,27,35,39,43,47,51,52,60), SP0N0(64) STATIC FIXED B I N IN IT U 8 ) 1, 2, 2, ( 8 ) 3, ( 8) 4, ( 8 ) 5, { 4) 6 , ( 4 ) 7, (4)8,(4)9,10,(8)11,(4)12), SST(64) STATIC BIT112) INIT('100001111111*8,•010010111111*3,•001011011111»Bt - • 000111101111*8,»000101 111111*B,'100010111111*8, '010011011111«B,'001011101111*8, »I01011110101*B,* 010111111010*3, • 101010110111*8,'010111011011'B,* 101011101101'B, »010101111110*8,»010111101011*8,*101001111101*B, '010110111110*B,* 101011010111»B» '100111101101*8,'110001111110*8,* 011010110111'B, »001111011011»B,* 100110111110*8,*110011010111*8, '011011101011*B,'001101111101*8, • 001001111ill ' B ,'000110111111 » B ,*lOCOilOlll11*B, •010011101111*B,»010001111111*B,'001010111111*8, '000111011111*8,'100011101111*B, '000111111101«3, 8100011111110*8,'010011110111*8,'001011111011'3 ' 0 1 0 1 0 1 1 O l l l l ' B , ' 1 0 1 0 0 0 1 1 1 l l l ' B , '01011001111 1*3, * 101011001111 ' 3 • 011011110011'B, 8 00111 1111001*8, '100111111100*8,*1100 11110110*8 '100110101111'B,'110001011111*3,'011010101111*8,'001101011111'B ' O O O O l l l l l l l l ' B , 9 1 0 0 0 1 1 1 1 1 1 0 1 * 8 , ' O l O O l l l l l l l O ' B t ' O O l O l l l l O l l l ' B ^ O O O l l l l l l O l l ' B '000111111110'B,*1C0011110111*8,'010011111011 * 8,* 001011111101 *B '101010101111'B,'010101011111'B,* 101001011 111 * 8,'010110101111*B), 1 SF T(64) STATIC, 2 MSFF(4) I NIT(-16,-15,-I,16,-16,-1,1,17,-16,1,15,16,-17,-1,1,16, -15,-1,1, 16,-16,-1,16, 17,-16,-1,1, 15,-17,-16, 1,16, -32,-16,16,32,-2,-1,1,2, -32,-16,16,17,-1,1,2,15,-17,-16,16,32,-15,-2,-1,1, -17,-1,1,2,-16,-15,16,32,-2,-I,1,17,-32,-16,15,16, -17,-1,16,32,-16,-15,-2,-1,-32,-16,1,17,1,2,15,16, 50. -2,-1»16,17,-32,-16,-1,15,-17,-16,1,2,-15,1,16,32, -16,-15,1,16,-1,1,16,17,-16,-1,15,16,-17,-16,-1,1, -16,-15,-1,1,-16,1,16,17,-1,I,15,16,-17,-16,-1,16, -1,1, 1.6, 32 7-16,-2,-1, 16,-32, -16,-1, ,1,-16, 1,2,16, -17,-15,-1,1,-16,-15,16,17,-1,1,15,17,-17,-16,15,16, -32,-16,1,2,1,2,16,32,-2,-1,16,32,-32,-16,-2,-1, -17,-1,16,17,-16,-15,-1,15,-17,-16,1,17,-15,1,15,16, -16,-1,1,16, - 1 6 , - l , 1 6 , 3 2 , - 1 6 , - 2 , - l , l , - 3 2 , - 1 6 , l , 1 6 , - l , l , 2 , 1 6 , -2,-1,1,16,-32,-16,-1,16,-16,-1,1,2,-16,1,16,32, -17,-16,16,17,-15,-1,1,15,-16,-15,15,16,-17,-1,1,17), IX,KTEST,IY,IZ, IZA(5), MRAT 8IN(15,5), MESG CHAR(8), DY FIXED BIN, BTEST 8IT ( 1 2 ) , BTSC12) B I T J l ) DEFINED BTEST, PAVH 12) FIXED BIN, P0N0(12) FIXED BIN INIT<8,2,8,8,8,4,4,4,4,1,8,4}, MDNA{12) INIT(1,0,-1,0,1,1,-1,-1,0,2,0,-2), MDN3U2) INIKO,1,0,-1,-1,1,1,-1,-2,0,2,0), UPDQ2) BIT(12) INITI'011111111011*B,»101111111101»B, » 110111 111 110* B '111011110U1«B,'111101111111*8,'lllllOilllll'B * 111111011111*8,* 111111101 111*B,»111111110111'B ' 111111111011 'B,'111111111101* B » *11111111.1110*8) ALL SET BIT(12) INIT{{12)•1•B). ALLOFF B I T U 2 ) INI T ( ( 12 ) * 0' B ) , LNKA BIT(12), LK(12) B I T ( l ) DEFINED LNKA, LNKB 3IT(12), L J U 2 ) BIT(1) DEFINED LNK8, 1 L N K E i - 2 LNKF 8IT(4) INI T ( • 0000* B ) , 2 LNKD 8 I T U 2 ) , LNKG DEF LNKE, XCHKA(4) FIXED(l) INIT(2,1,2,1), XCHKB(4) FIXED(l) INIT(4,3,4,3), YCHKA(4) FIXED(l) INIT{6,6,7,5), YCHKB(4) FIXED(l) INIT(5,7,8,8), INT1 B I T U 2 ) INIT(*111001100111*8), INT2 BIT(12) INIT(*101110011101*B), INT3 BIT112) INIT('110111001110»B), INT4 BIT(12) INIT(»011I00111011'B3, ALPH(12) CHAR(1 ) I NI T ( • F « , VI ' , ' L » , * N ' , » P ' , ' T • , * U* , * V ' , * w* , • X * , • Y« , « Z )t TMRLNK( 12 ) STATIC FIXED BIN INIT(3,4,1,2, 7,8,5,6, 11, 12,9,10) ; ON ENDFILE (SCARDS) GOTO REPENT; GOTO SEE; SAW: JONETM=0; IF MSLSTJ13166)-=63 THEN DO; PUT LIST((MSLST(I) DO 1=13142 TO 13166)); STOP; END; GSTART: PUT LIST ('INPUT NEW GAME SPECS 1 5; PUT S K I P ( 2 ) ; - GET LIST (L,M,N,NA,NP,KTEST,MVW,MONDX); IF JONETM=0 THEN DO; J0NETM=1; IF MDNDX=6 THEN GOTO TOO; FRO: IF KTEST=-2 THEN PUT LIST(MKA); END; JINITS,JINIT=0; IF MDNDX-.=7 THEN GOTO GSTARTA; HOVES(*)=0; GSIZE(*)=l; WESG=DATE; MITA=SUBSTR(WESG,7); MIT8 = SU8STR(WESG,4,2) ; MI TC= SUBSTR ( VJESG, 1, 2 ) ; MITE=MITA+100*MITB+10000*MITC; £MAT=EMAT*MITE/10000; PUT LI ST(DATE) ; PUT SKIP; PUT FILE(PSTAT) LIST(DATE); GSTARTA: IF L -.= M*N THEN DO; MXXN = l ; GO TO XX; END; IF NA >= L I NP >= 12 THEN 00; MXXN = 2 ; XX: PUT LIST («N0 GAME',MXXN); GOTO REPENT; END; IF MVW=0 THEN MVW=60; XPANTRY(1) = »011111111111*B; XPANTRY(2) = • l O l l l l l l l l l l ' B ; XPANTRY{3) = '110111111111*8; XPANTRY(4) = • 1 1 1 0 1 1 1 1 1 l l l , B ; DO K = 5 TO 12; XPANTRY(K) = U P D ( K ) ; END; IF M0NDX=8 THEN DO; KLOOQ: I F MGCNT>MVW THEN GOTO REPENT; KH=0; KLOOP: KH=KH+l; GET SKIP F I L E ( P S T A T ) L I S T ( C A R A ) ; I F CARA='* * THEN DO; KH=KH-2; GOTO KLOOR; END; GET F I L E ( P S T A T ) L I ST<KONOIKH),KOSQ(KH)); KI = l ; KLOP: I F CARA=ALPH(KI) THEN GOTO KLOQ; KI=KI+1; GOTO KLOP; KLOQ : KP-NO(KH)=KI; KONO{KH)=KONG(KH)+TFOPS(KI)-l ; GOTO KLOOP; KLOOR: I F L00TT=1 THEN DO; LOOTT=0; MGCNT=MGCNT+1; GOTO KLOOQ; END; KH=KH-1; I F KH<1 THEN GOTO KLOOQ; END; BOARD: BEGIN; DCL ARCH(M) C H A R ( l ) , MVALLH,MCNCW,MVALLL,MCNH,MCNL,MVCNTA,MMAXFG I N I T I O ) , LNKC B I T U 2 ) . 1 M C S ( L ) , 2 MCNS, 2 MCNSQ, 2 MCNSD(8) B I T ( l ) , 1 LSQ, 2 NBOARO(L), 4 LNK 8 I T Q 2 ) , 4 MVCNT, 4 SWS, 6 CNTRE 8 I T ( 1 ) , 6 INFSW B I T ( l ) , 6 DEAD FIXED BINARY, 2 MVCNTALL I N I T I O ) , 2 MCNCN I N I T I O ) ; DEAD,MVCNT=0; PAVL=O; MAVL='I»B; MCNSDT *»1) = * 1'B » • IF MDNDX=8 THEN DO; NA,NP=l; DO 1=1 TO KH; P A V L { K P N O ( I ) ) = 1 ; BTEST=SST(KONO(I)); IZ8=K0SQU>; DEADJIZ B ) = K P N O ( I ) ; JJ = 2 ; KK=1; DO WHILE«JJ<6); I F BTS(KK)=«0*B THEN DO; IZC=IZB+MDNA(KK)+M*MDNB{ KK) ; DEAD( I Z C ) = K P N O ( I ) ; J J = J J + 1 ; END; KK=KK+l; END; END; GOTO INTL; END; I F NA 0 THEN BEGIN; DECLARE A(NA) FIXED BIN; GET L I S T U A I I I ) DO I I = 1 TO N A ) ) ; DO I I = 1 TO NA; DEAD(A(11) ) = 13; END; END; I F NP -*= 0 THEN BEGIN; DECLARE B(NP) FIXED BIN; GET LIS T ( ( 8 ( 1 1 ) DO I I = 1 TO N P ) ) ; DO 11=1 TO NP; M A V L ( B ( I I )) = '0'B ; P A V L { B ( 1 1 ) ) = l ; END; END; INTL: BEGIN; DO I = 1 TO L; •LNK(I) = ALLSET; IF I <= M THEN L N K ( I ) = LNK { I ) £ IMT1; ELSE I F K = M + M THEN LNK ( I ) = LNK ( I ) £ UPD{9'); IF I > M * • ('N - 1) THEN LNK ( I ) = LNK { I ) £ INT2; ELSE IF I > M * (N -2) THEN LNK1 I ) = L N K { I ) £ U P D U 1 ) ; IF MQ.D(I,,M) = 1 THEN. LNK.U ) • = LNK (I.) £ I N T 3 ; ELSE IF MOD(I,M)=2 THEN L N K U ) = LNK ( I ) £UPD { 12 ) ; IF MOD(I,M) = 0 THEN L N K ( I ) = L N K ( I ) £ INT4; ELSE IF MOD( T , M } = M - 1 THEN L N K ( I ) = L N K ( I ) £ U P O i l Q ) ; END ; IF NA=0 THEN GOTO INC; INS : DO I =,1 TO L; IF DEAD ( I ) -.= 0 THEN DO; LNKB = L N K ( I ) ; DO J = 1 TO 12; IF L J ( J ) -»= 'O'B THEN DO; K=I+MDNA(J) +M#MDN8 ( J ) ; IF DEAD(K) = 0 THEN DO; LNK(K ) = LNK(K) £ U P D { T N R L N K ( J ) J ; END IN B; INC: DO I = 1 TO L; I F D E A D ( I ) - = 0 THEN GOTO NDINC; LNKD = L N K { I ) ; LNKH=4975+LNKG+LNKG; L N K I = M S L S T ( L N K H ) ; I F LNKI=0 THEN GOTO NDIND; LNKJ=MSLST(LNKH+1); IF NP=0 THEN DO; M V C N T ( I ) = L N K J ; GOTO NDIND; END; DO 11=0 TO L N K J - l ; IF P A V L ( S P O N O ( M S L S T { L N K I + I I ) > ) =0 THEN MVCNT{I)=MVCNT{I)+1; END; NDIND: IF MVCNT(I)>0 THEN DO C N T R E U ) = » 1 • B ; MCNCN = MCNCN + 1 ; MVCNTALL=MVCNTALL+MVCNT{I); END; ELSE C N T R E ( I ) = 8 0 • B ; NDINC: END INC; MCNCW=MCNCN; END I N T L ; C H I E F : BEGIN; VAGA: MXF=0; IF (MDNDX=1)|(MDNDX=3)|(MDNDX=11) THEN GOTO THEFOE; I F (MDNDX=6)|(MDNDX=12) THEN GOTO APMV; V AGB: IF MVCNTALL -•= 0 THEN GOTO PMV; I WIN = 0; GEND: IF MDNDX>2 THEN DO; M I T A = l ; MIT3=0; CALL T I H E \ » I T A , M I T 3 , M I T C ) ; MITC=MITC-MITD; IF MDNDX=6 THEN I F J I N I T = 1 THEN MESG=' SMT WON'; ELSE MESG='SMT LOST'; END; ELSE I F MDNDX=99 THEN MESG= * PART IAL «; ELSE MESG = « »; ELSE I F IWIN = 1 THEN MESG = ' I WIN*; ELSE MESG = ' YOU WIN 1; PUT L I S T (MESG,MGCNT, U N I T S , M I T C ) ; I F MDNDX=7 THEN DO; PUT L I S T ! MOVES ( MGCNT ) f GSI ZE •( MGCNT ) ) ; PUT S K I P F I L E ( P S T A T ) L I ST(»*«,MOVES(MGCNT),GSIZE iMGCNT}); END; PUT S K I P { 2 ) ; DO KK = 1 TO N i DO LL = 1 TO M; DY = DEAD(M * (KK - 1) + L L ) ; I F DY = 0 THEN ARCH(LL) = ' 0 ' ; ELSE J J * IF DY < 13 THEN ARCHILL> = A L P H ( D Y ) ; ELSE ARCHILL) = •*•; END; PUT S K I P ( 2 ) EDIT (ARCH) (X(l)» A ( 1 ) U ; END; PUT S K I P 1 3 ) ; IF MGCNT=MVW THEN GOTO WINOUP; MGCNT=MGCNT+l ; GOTO NDBD; WINDUP: PUT S K I P ( 2 ) LIST!'NO- OF MOVES','NO. OF GAMES'); ASIZE,MO=0; DO 11=1 TO MGCNT; ASIZE = A S I Z E + G S I Z E ( I I ) ; M0=MQ+M0VES(II); MMM(MOVES(II))=MMM(MOVES(II))+1; END; MO=MO/MGCNT; AS IZE = ASIZE/MGCNT; DO 11=1 TO 1 2 ; PUT SKI P L I S T ( I I , M M M ( I I ) ) ; END; PUT SK I P F I L E ( P S T A T ) EDITIMMM) ( 1 2 ( X ( 2 ) , F ( 2 ) ) ) ; PUT S K I P ( 2 ) L I ST('TOTAL GAMES','AVGE MOVES','AV PROO OF CH O I C E S ' ) ; PUT S K I P LIST(MGCNT,MO,ASIZE); PUT S K I P F I L E J PSTAT ) L I ST(MGCNT,M0,AS I Z E ) ; GOTO REPENT; PMV: IF MDMDX<3 THEN I F MVCNTALL<=MVW THEN DO; CALL MMAX; I F MXF=1 THEN GOTO EPMV; GOTO APMV; END; IF MDNDX=8 THEN DO; CALL MMAX; GOTO KLOOR; END; APMV: MITA=MCNCN; MITB=7; CALL KUTRAND(MITB,MITA,EMAT); MQDX=EMAT; KLU = 0; KLUX = l ; KKKt I F DEAD(KLUX) = 0 THEN IF CNTRE(KLUX) = *1'B THEN KLU = KLU + l ; IF MQDX <= KLU THEN GOTO KKKA; KLUX = KLUX + l ; GOTO KKK; KKKA: MITC=8; MITE=MVCNT(KLUX); CALL KUTRAND(MITC,MITE,EMAT); KLAN=EMAT; KWIZ = 0; J = 0; LNKD = L N K ( K L U X ) ; LNKI=MSLST(4 9 7 5+LNKG+LNKG); 11=0; GEN: DO WHILE (KLAN > KWIZ); IF P A V L ( S P O N O ( M S L S T ( L N K I + I I ) ) ) = 0 THEN KWIZ=KWIZ+1; 11=11+1; END; J = M S L S T ( L N K I + I 1 - 1 ) ; IZ = KLUX; IX = S P O N O ( J ) ; IY = J — T F O P S ( I X ) + 1 ; EPMV: MRAT=MVCNTALL/MCNCN; PUT S K I P EDIT ( A L P H ( I X ) , I Y , I Z , M V C N T A L L , M C N C N ) • ( X ( 2 ) , A ( l ) , X ( 2 ) , F l 2 ) , X ( 2 ) f F ( 2 ) , X ( 2 ) , F ( 4 ) , X ( 2 ) , F l 2 n : IF MDNDX = 7 THEN DO; PUT EDIT(MRAT) ( X 1 2 ) , F ( 5 , 2 ) ) ; PUT S K I P F I L E (PSTAT')' E D I T I A L P H ( I X ) , IY , I Z » MVCNTAL L, MCNCN, MR AT ) ( X ( 2 ) , A { 1 ) , X ( 2 ) , F { 2 ) , X ( 2 ) , F ( 2 ) , X { 2 ) , F ( 4 ) , X ( 2 ) , F ( 2 ) , X ( 2 ) , F ( 5 , 2 ) ) ; MOVES(MGCNT)=MOVES(MGCNT ) + l ; GSIZE(MGCNT)=GSIZE(MGCNT)*MVCMTALL; END; PUT S K I P 1 2 ) ; CALL UPDT; IF MVNDX = 0 THEN OUCH: DO; PUT L I S T ( 8 IN V MV GEN'); STOP; END; IF MDNDX=7 THEN I F MVCNTALL-^=0 THEN DO; LL,KK=0; XYZ: LL=LL+1; KK=KK+1; MRCH(LL)=0; IF DEAD(KK)=0 THEN I F CNTRE(KK)='1•B THEN MRCHfLL)=MVCMT(KK); IF LL~^ = M THEN GOTO XYZ; PUT S K I P ( 2 ) E D I T t MRCH) ( 6 ( X<I) ,F<2>)) ; LL = 0; IF KK<L THEN GOTO XYZ; PUT S K I P { 3 ) ; END; I F MDNDXMO THEN GOTO THEFOE; IF MDNDX=6 THEN GET0 8S.MTR; IF MDNDX > 2 THEN GOTO VAGA; THEFOE: IF MVCNTALL = 0 THEN DO; I WIN = 1; GOTO GEND; END; THEFA: PUT L I S T ( * YOUR MOVE*); PUT ' S K I P ( l ) ; GET L I S T ( C A R A , J , I n = l ; CLOP: I F I I > 1 2 THEN DO; J - J + l OO; GOTO CLOQ; END;... I F CARA=ALPH(I I ) THEN DO; J= J - 1 + T F O P S ( I I ) ; GOTO CLOQ; END; I I = I I + l ; GOTO CLOP; CLOQ: IF J >9998 THEN STOP; I F J >998 THEN DO; MVCNTALLt MCNCN = 0; MDNDX=99; GOTO GEND; END; CALL UPDT; IF MVNDX - 0 THEN DO; PUT L I S T {« IT I S S T I L L * ) ; GOTO THEFA; END; I F MDNDX<3 THEN GOTO VAGB; IF MDNDX<11 THEN GOTO THEFOE; J I N I T = 2 ; BSMTR: IF MVCNTALL=0 THEN GOTO GEND; IF J I N I T = 2 THEN J I N I T = l ; ELSE I F J I N I T = l THEN J I N I T = 2 ; E L S E DO; MITA=8; MITB=100; CALL KUTRAND(MITA tMITB,MITC); I F M I T O 5 0 THEN J I N I T = 2 ; ELSE DO; J'INIT, J I N I T S = 1 ; END; J IN ITS= J IN I TS + 1; M I T E = l ; MITA=0; CALL T I M E ( M I T E , M I T A . M I T D ) ; END; IF MVCNTALL<=MVW THEN DO; I F MXF=1 THEN GOTO APMV; CALL MMAX; IF MXF-.= 1 THEN GOTO APMV; GOTO EPMV; END; ELSE I F J I N I T = 2 THEN GOTO APMV; ELSE MVSMPLR: BEGIN; DCL 1•LOOKING*MCNCN)t 2 LKLOC, 2 LKORN, 2 MVCNR* 2 MCNCR, 2 MSCOR, 2 MVLDX, 2 MVFLP, 2 MVLSDP; MCNI=1; JINDX=M+19; DO 11=1 TO N; JINDX=JINDX+16-M; DO JJ=1 TO M; K K = M * r i I - l ) + J J ; I F DEAD(KK)=0 THEN DO; MFSTBDIJINDX5=0; IF CNTRE(KK)='1*B THEN DO; MCNS(MCNI)=KK; MCNSQiMCNI)=JINDX; MCNI=MCNI+l; END; END; ELSE M F S T B D ( J I N D X ) = l ; JINDX=JINDX+1; END; END; LKMCN=0; MVLDX=0; MVMKR: DO 11 = 1 TO L; IF D E A D ( I I ) = 0 THEN IF CNTRE(I I 1 = '1'8 THEM DO; LKMCN=LKMCN+1; L N K D = L N K ( I I ) ; MLQOK=MSLST(4975+LNKG+LNKG); IF MLOOK =0 THEN DO; PUT L I S T ! ' T R A P 10*>; GOTO NDMVMKR; END; MLKD=0; L K L O C ( L K M C N ) = I I ; MVFLP(LKMCN)=MLOOK; MVLSDP(LKMCN)=MSLST(4976+LNKG+LNKG); L K L P : LKORNW=MSLST{MLOOK+MLKD); IF MAVL(SPONOT LKORNW)) = * 1» B THEN DO; MVLDX(LKMCN)=MLKD; LKORN(LKMCN)=LKORNW; GOTO MVMKRS; END; MLKD=MLKD+l; MVLDX{LKMCN)=MVLDX(LKMCN)+1; IF MLKD<MVLSOP(LKMCN) THEN GOTO L K L P ; PUT L I S T C T R A P 1 1 » ) ; GOTO NDMVMKR; MVMKRS: CALL FPLAY{LKORNW,MCNSQILKMCN),1); CALL KOUNT; MVCNR(LKMCN)=MVCNRW; MCNCR(LKMCN)=MCNCRW; CALL FUNPLAY(LKORNW,MCNSQ(LKMCN)); IF KTEST=-3 THEN PUT LI ST{LOOKING(LKMCN)); NDMVMKR: END MVMKR; MVTSTR: DO 11 = 1 TO. MCNCN; CALL S C O R E R { M V C N R ( I I ) , MCNCR(II),MSCQR( I I ) ) ; END; IF KTEST=-3 THEN PUT L I S T ( M S C O R ) ; LKSCW=-2000; DO 11=1 TO MCNCN; IF MSCOR(II)>LKSCW THEN DO; L K P T R = I I ; LKSCW = MSCOR(11); END; IF MSCOR(II)=LKSCW THEN IF MVCNR(I I)<MVCNR(LKPTR) THEN L K P T R = I I ; END; IF LKSCW-=-900 THEN GOTO CNTSCH; FNDMV: I Z = L K L O C ( L K P T R ) ; J = L K O R N ( L K P T R ) ; I X = S P O N O ( J ) ; I Y = L K O R N ( L K P T R ) - T F O P S ( I X ) + l ; GOTOEPMV; CNTSCH: I F MVCNTALL>700 THEN GOTO APMV; DO 11=1 TO MCNCN; M V L D X ( I I ) = M V L D X ( I I ) + l ; DO WHILE(MVLDX( I I X M V L S D P U I ) ) ; LKORNW=MSLST(MVFLP( 1 1 ) + M V L D X ( 1 1 ) ) ; I F MAVL(SPONO(LKORNW)) = «1*6 THEN DO; CALL F P L A Y ( L K O R N W , M C N S Q ( I I ) , l ) ; CALL KOUNT; CALL SCORER(MVCNRW,MCNCRW,LKSCOR); IF LKSCOR>LKSCW THEN DO; LKORN(II)=LKORNW; MVCNR(II)=MVCNRW; MCNCR(II)=MCNCRW; LKSCW,MSCOR(11) = LKSCOR; L K P T R = I I ; END; CALL FUNPLAY(LKORNW,MCNSQfII)); END; M V L D X ( I I ) = M V L D X ( 1 1 ) + l ; END; END; GOTO FNDMV; END MVSMPLR; NCHIEF: END C H I E F ; GOTO GSTART; UPDT: PROCEDURE; IF IZ > L I IZ < 1 THEN DO; PUT L I S T ('NO SQUARE'); GOTO MV; END; IF DEADMZ ) > 0 THEN DO ; PUT L I S T ('DEAD SQUARE*)» GO TO MV; END; IX = S P O N O ( J ) ; I F ( J < 1 1 J>63) THEN DO; PUT L I S T ('NO SUCH ORIENTATION'); GO TO MV; END; I F PAVL ( I X ) = 1 THEN DO; PUT L I S T ('PIECE USED U P * ) ; GOTO MV; END; BTEST = S S T ( J ) ; I F ALLSET -*= ( L N K ( I Z ) ! BTEST) THEN DO; PUT L I S T (*NO F I T * ) ; GO TO MV; END; PAVL ( I X ) = 1; MAVL ( IX ) = 1 0 B ; INFSW {*) = 'O'B; I Z A ( l ) = I Z ; DEAD{IZ) = i x ; J J = 2; DO 1 = 1 TO 12 WHILE ( J J < 6 ) ; I F B T S ( I ) = 'O'B THEN DO; I Z A ( J J ) = I Z + M D N A ( I ) + M * M D N B ( I ) ; D E A D ( I Z A ( J J ) ) = IX ; J J = J J + l ; END; END; DOUP: DO LL = 1 TO 5; IF C N T R E ( I Z A ( L L ) ) = »1«B THEN DO; MCNCN = MCNCN - 1; MVCMTALL = MVCNTALL - M V C N T ( I Z A ( L L ) ) ; END; LMKB = LNK ( I Z A ( L L ) ) DO MM = 1 TO 12; IF LJ(MM) = ' l ' B THEN DO; K=IZA(LL)+MDNA(MM)+M*MDNBtMM); IF DEAD(K) = 0 THEN DO; INFSW(K) = H ' B ; L N K ( K ) = LN K ( K ) £ UPD{TMRLNK(MM)); END DOUP; CHK: DO NN = 1 TO L; IF DEAD (NN) -.= 0 THEN GOTO NCHK; IF CNTRE(NN) = »O tB THEN GOTO NCHK; LNKO = L N K ( N N ) ; LNKH=A975+LNKG+LNKG; L N K I = M S L S T ( L N K H ) ; I F LNKI=0 THEN GOTO CHB; MVCNTA=0; LNKJ=MSLST(LNKH+1); I F INFSW(NN)=«0*B THEN DO; DO 11=0 TO L N K J - 1 ; IF S P O N O { M S L S T { L N K I + I I ) ) = I X THEN MVCNTA=MVCNTA+1; END; IF MVCNTA=MVCNT(NN) THEN GOTO CH8; MVCNTALL=MVCNTALL-MVCNTA; MVCNT{NN)=MVCNT(NN)-MVCNTA; GOTO NCHK; END; ELSE DO; DO 11=0 TO L N K J - 1 ; IF P A V L ( S P O N O I M S L S T t L N K I + H ) ) ) = 0 THEN MVCNTA=MVCNTA+1; END I F MVCNTA=0 THEN GOTO CHB; MVCNT ALL=MVCNTALL-MVCNT ( NN') +MVCNTA; MVCNT( NN )=MVCNTA; GOTO NCHK; END; CHB: MVCNTALL=MVCNTALL-MVCNT(NN); CNTRE(NN) = »0»B; MCNCN = MCNCN - 1; NCHK: END CHK; MVNDX = 1 ; I F MMAXFG=0 THEN MCNCW=MCNCN; RETURN; MV: PUT S K I P ( l ) ; MVNDX = 0; RETURN; END UPDT; KOUNT: PROC; MVCNRW,MCNCRW=0; JINDX=M+19; DO MM=1 TO N; JINDX=JINDX+16-M; DO J J = 1 TO M; KK=M*(MM-1)+JJ; IF DEAD(KK)=0 THEN I F CNTRE iKK)='1»B THEN IF MFSTBD(JINDX)=0 THEN DO; CALL N E I G H t J I N D X ) ; MWIND=4975+MJ+MJ; I F MSLST(MWIND)>0 THEN DO;; LKLN=MSLST(MWIND+1); LKLC=MSLST<MWIND); LKDP,LKCT=0; DO WHILE(LKOP<LKLN); I F MAVL{SPONO(MSLST(LKLC+LKDP)))=«l sB THEN DO; LKCT=LKCT+1; MVCNRW=MVCNRW+1; END; LKDP=LKDP+l; END; IF LKCT>0 THEN MCNCRW=MCNCRW+1; END; END; J I N D X = J I N D X + l ; NDKOUNT: END KOUNT; SCORER: PROC{MSCMV,MSCMC,MSCORW); M5CQRW-0; IF MSCHV>520 THEN DO; MSC0RW=-900; RETURN; END; IF MSCMV<49 THEN DO; MSC0RW=-1000; RETURN; END; I F M S C M 0 4 6 THEN DO; MSC0RW=-950; RETURN; END; I F MSCMC<10 THEN DO; MSCCRW=-980; RETURN; END; MTSTNDX=MKA(MSCMV-47); IF MTSTNDX=0 THEN RETURN; NRLP: MKAW=MKA(MTSTNDX) ; IF MKAW=0 THEN DO; MSCORW=MKA{MTSTNDX-1)*.5; RETURN; END; IF MKAW>MSCMC THEN DO; MSCORW=(MKA(MTSTNDX-1)+MKA{MTSTNDX+1))*.5; RETURN ; END; IF MKAW<MSCMC THEN DO; MTSTNDX=MTSTNDX+2; GOTO NRLP; END; MSCORW=MKA(MTSTNDX+1); END SCORER; MMAX: PROCEDURE; DCL WRES B I T ( 2 ) , 1 S P L I S T ( 3 0 0 Q ) , 2 MDEP» 2 MLEN, 2 NINE I» 2 MLBR, 2 MRBR, 2 MSON, 2 MORN» 2 MLOC, 2 MLEV, 2 MNEX, 2 MFAT, 2 MINX, 2 MMOV 3 I T ( 2 ) , 2 MRES B I T ( 2 ) ; MWRK=0; KODEC,NODEC=l; MCNSFZ,MCNI,MMAXFG,MTRAV,MARK=1; MNEXZ=2; DO 11=1 TO 12; IF P A V L ( I I ) = 0 THEN MAVL(11) = 9 1 » B ; ELSE MAVL(11 3=•0»B; END; DO 11=1 TO 2 9 9 9 ; M N E X { I I ) = 1 1 + 1 ; END; MNEX{3000 ),MLBR(1),MRBR(1),MORN(1),MLOC( 1)=0; MMOV (1 ) = »01« B; MNEI(13,NORN,NLOC=0; MRES(1)='10»B; MSON(1)=-999; MLBRI13,MRBR(1)=0; MWND=3000; M L E V ( l ) = l ; MCNSD(*,13= 91•B; JINDX=M+19; DO 11=1 TO N; JINDX=JINDX+16-M; DO J J = 1 TO M; KK=M*<II-13+JJ; IF DEAD < KK 3 =0 THEN DO; MFSTBD(JINDX) = 0; IF CNTRE(KK 3 = '1•B THEN DO; MCNS(MCNI 3=KK; MCNSQIMCNI3 = JINDX; MCNI=HCNI+l; END; END; ELSE M F S T B D J J I N D X ) = l ; J I N D X = J I N D X + l ; END; END; CONROT: I F KTEST>3 THEN PUT LIST,'CNRT•»SPLIST(MTRAV)3; IF MTRAV=MARK THEN I F MREStMTRAV)<'10»8 THEN DO; NTIM=CPUTIME; MBTM=NTI M-WTIM;. GOTO MMA; END; ELSE WTIM=CPUTIME; IF MRES(MTRAV 3 = *11 * B THEN GOTO ACREN; I F MRES(MTRAV 3 = * 10 * B THEN GOTO CRUN; I F MSON(MTRAV)=0 THEN DO; I F MNE I ( MTRAV 3 -»=0 THEN DO; IF MRBR(MTRAV)=0 THEN DO; MRESIMFAT(MTRAV))=MRES(MTRAV); CALL DLT(MTRAV); I F MLBR(MTRAV)-=0 THEN DO; MTRAV=MLBR(MTRAV3; MRBR(MTRAV3=0; MSON (MFAT(MTRAV))=MTRAV; END; ELSE MSON(MFAT(MTRAV))=0; MTRAV=MFAT(MTRAV); GOTO CONROT; END; IF MLBR { MTRAV ) -i = 0 THEN MRBR ( MLBR ( MTRAV 3 3 =MRBR (MTR AV ) ; CALL DLT(MTRAV); MTRAV=-MRBR(MTRAV3; MLBR(MTRAV)=MLBR(ML8R(MTRAV)); MSONIMFAT(MTRAV))=MTRAV; GOTO CONROT; END; MRES(MFAT(MTRAV 3 )=MRES(MTRAV); CALL FUNPLAY(MORN(MTRAV3,MCNSQ(MINX(MTRAV))3; MTRAV=MFAT(MTRAV); GOTO CONROT; END; I F MNEI(MTRAV)=0 THEN DO; IF MRES(MTRAV)=»00*B THEN DO; CALL FUNPLAY(MORN(MTRAV 3,MCNSQ(MI NX(MTRAV))3 ; .MTRAV=MFAT(MTRAV); MRES(MTRAV)= 100•B; GOTO CONROT; END; IF MMOV(MTRAV)='00"8 THEN I F MLBR ( MTRAV) -»=0 THEN DO; IE=MLBR(MTRAV); MLBR(MTRAV)=0; IEAD: CALL D L T ( I E ) ; IF M L B R ( I E ) - = 0 THEN DO; IE = M L B R ( I E ) ; GOTO IEAD; END; END; CALL FUNPLAY(MORN(MTRAV),MCNSQ(MINX(MTRAV)33; MTRAV=MFAT(MTRAV); MRES{MTRAV)=»01»B; GOTO CONROT; END; IF MMOV(MTRAV)=»01'B THEN I F MRES(MTRAV)=»00'B THEM GOTO CONEXP; ELSE DO; IF MLBR{MTRAV)=0 THEN GOTO MI DEL; IE=MLBR(MTRAV); MLBR(MTRAV)=0; IEBD: CALL D L T ( I E ) ; IF MLBR(.IE.)-»=0 THEN DO; I E = MLBR ( I E) ; GOTO IEBD; END; MI DEL: I F MR3R(MTRAV)<=0 THEN GOTO ENDEL; IE=MRBR(MTRAV ) ; MRBR (MTRAV)=0; IECD: CALL D L T ( I E ) ; I F MRBR<IE)-»=0 THEN DO; I E=MRBR 11E) ; GOTO IECD; END; ENDEL: MTRAV=MFAT(MTRAV); MRES(MTRAV)='01'B; GOTO CONROT; END; IF MRES(MTRAV}=»00«8 THEN DO; MTRAV=MFAT(MTRAV); MRES(MTRAV)='00•B; GOTO CONROT; END; CONEXP: I F MDEP(MTRAV)>=MLENIMTRAV) THEN DO; IF MRBR(MTRAV)=0 THEN DO; MRES(MFAT(MTRAV))=MRES(MTRAV); MTRAV=MFAT(MTRAV ) ; GOTO CONROT; END; ELSE DO; MTRAV=MRBR(MTRAV); MSON(MFAT(MTRAV))=MTRAV; GOTO CONROT; END; END; MWOR=MSLST(MORN IMTRAV)+MDEP(MTRAV)); IF MAVL(SPONO(MWOR)) = '0 8 8 THEN DO; MDEP(MTRAV)=MDEP(MTRAV)+1; GOTO CONEXP; END; MWT=MTRAV; GOTO BCREN; CRUN: I F KTEST>4 THEN PUT L I ST('CRUN' ) ; IA=MCNCW; MWT=MTRAV; MWL=HLEV(MTRAV); LCRUN: I F IA=0 THEN GOTO NDCRUN; IF MCNSD( IA,MWL)-.= 1'1 «B THEN DO; I A = I A ~ l ; GOTO LCRUN; END; CALL NEIGH(MCNSQIIA) ) *, MWIND=4975+MJ+MJ; IF MSLST(MWIND)=0 THEN DO; MCNSDJIA,MWL)= 80*B; I A = I A - 1 ; GOTO LCRUN; END; IF MNEXZ=0 THEN GOTO NDISHT; NODEC=NODEC+l; KODEC=KODEC+l; MF AT{MNEXZ)=MTRAV; MMOV(MNEXZ)=MMOV(MTRAV); MLEV(MNEXZ)=MLEV(MTRAV); MSON(MTRAV) TMTRAV=MNEXZ; MNEI(MTRAV)=MJ; MORN(MTRAV)=MSLST(MWIND); MNEXZ=MNEX(MTRAV) ; MLEN(MTRAV)=MSLST(MWIND+1); MRBR(MTRAV),MOEP(MTRAV)=0; MINX(MTRAV)=IA; MLOC(MTRAV)=MCNS(IA); MRES(MTRAV)=»ll'B; ML3R(MTRAV) TMSONIMTRAV)=-999; MCRUN: I A = I A - l ; I F IA=0 THEN GOTO NDCRUN; IF MCNSD ( I A , MWL ) -»= 4 1 * B THEN GOTO MCRUN; CALL N E I G H ( M C N S Q ( I A ) ) ; MWIND=4975+MJ+MJ; IF MSLST(MWIND)=0 THEN DO; , MCNSD(IA,MWL)= ,0 ,B; GOTO MCRUN; END; IF MNEXZ=0 THEN GOTD NDISHT; N0DEC=N0DEC+1; KODEC = KODEC-H ; MLBR(MTRAV)=MNEXZ; MFAT ( MNEXZ )=MFAT( MTRAV ) *, MSON(MFAT(MTRAV))=MNEXZ; MLEV(MNEXZ)=MLEV{MTRAV); M M Q V ( M N E X Z ) = M M Q V ( M T R A V ) ; I Y MR B R ( M N E X Z ) = M T R A V ; M T R A V = M N E X Z ; M N E X Z-M . N E.Xt M T R A.V.) ; M N E I ( M T R A V ) = M J ; M O R N ( M T R A V ) = M S L S T ( M W I N D ) ; M I N X ( M T R A V ) = I A ; M L E N ( M T R A V ) = M S L S T ( M W I N D + 1 ) ; M O E P J M T R A V ) = 0 ; M L O C ( M T R A V ) = M C N S ( I A ) ; M R E S ( M T R A V ) = M I « B ; M L B R I M T R A V ) » M S O N ( M T R A V ) = - 9 9 9 ; G O T O M C R U N ; N D C R U N : I F M W T = M T R A V T H E N D O ; M S O N ( M T R A V ) = 0 ; I F M M O V ( M T R A V ) = * 0 0 * B T H E N M R E S ( M T R A V ) = • 0 1 ' B ; E L S E MRES(MTRAV)=»OO ,B; E N D ; E L S E M L B R ( M T R A V ) = 0 ; G O T O C O N R O T ; A C R E N : I F K T E S T > 4 T H E N P U T L I S T ! « C R E N » ) ; C R E N : I F M D E P ( M T R A V ) > = M L E N ( M T R A V ) T H E N 0 0 ; I F M M O V ( M T R A V ) = ' 0 0 ' B T H E N M R E S ( M T R A V ) = • 0 1 • B ; E L S E M R E S ( M T R A V ) = » 0 0 » B ; M S O N ( M T R A V ) = 0 ; G O T O N D C R E N ; E N D ; M W O R = MSL S T ( M O R N t M T R A V ) + M D E P ( M T R A V ) ) ; I F M A V L ( S P O N O ( M W O R ) ) = ' 0 * B T H E N D O ; M D E P l M T R A V ) = M D E P ( M T R A V ) + 1 ; G O T O C R E N ; E N D ; B C R E N : I F M N E X Z = 0 T H E N G O T O N D I S H T ; M 0 D E C = N 0 D E C + 1 ; K 0 D E C = K 0 D E C + 1 ; M D E P ( M T R A V ) = M D E P ( M T R A V ) + l ; I F M S O N l M T R A V ) = - 9 9 9 T H E N M L B R { M N E X Z ) = 0 ; E L S E D O ; M L B R ( M N E X Z ) = M S O N ( M T R A V ) ; M R B R ( M S O N ( M T R A V ) ) = M N E X Z ; E N D ; M S O N { M T R A V ) = M N E X Z ; M R E S ( M N E X Z ) = ' 1 0 » B ; I F M M 0 V ( M T R A V ) = ' 0 1 ' B THEN M M O V t M N E X Z ) = • 0 0 • B ; E L S E M M 0 V ( M N E X Z ) = , 0 1 » B ; M N E I ( M N E X Z ) = 0 ; M O R N ( M N E X Z ) = M W O R ; M L O C { M N E X Z ) = M L O C ( M T R A V ) ; M I N X ( M N E X Z ) = M I N X ( M T R A V ) ; M F A T ( M N E X Z ) = M T R A V ; M R B R ( M N E X Z ) V M S O N ( M N E X Z ) = — " 9 9 9 ; M L E V ( M N E X Z ) = M L E V ( M T R A V ) + l ; I F M L E V ( M N E X Z ) > 8 T H E N O O F L : D O ; P U T L I S T { * D P T H O F L * » N O D E C ) ; M X F = - 1 ; R E T U R N ; E N D ; M T R A V = M N E X Z ; M N E X Z = M N E X ( M T R A V ) ; C A L L F P L A Y ( M W O R , M C N S Q ( M I N X ( M T R A V ) ) , M L E V ( M T R A V ) ) ; N D C R E N : G O T O C O N R O T ; MMA: H R E S = M R E S ( M T R A V ) ; / * I F N O R N - . = 0 T H E N N O D O : D O ; M T R A V = M S O N ( M T R A V ) ; A B L Q : I F M R B R ( M T R A V ) < = 0 T H E N G O T O A 8 G R ; M T R A V = M R B R ( M T R A V ) ; G O T O A B L Q ; ABGR: I F MLOC't MTRAV) =NLQC THEN GOTO ABFD; CALL DLT(MTRAV); MTRAV=MLBR(MTRAV); GOTO ABGR; ABFD: IF MLBR(MTRAV)=0 THEN GOTO ABAD; II=MTRAV; ABrRD:. 11 = ML BR (11.) ; CALL D L T U I ) ; I F M L B R ( I I ) - . = 0 THEN GOTO A8RD; ABAD: I F WRES= ,01»B THEN GOTO ABMW; IF MSON(MTRAV)<0 THEN GOTO ABCR; MTRAV=MSON(MTRAV) ; A8LR: I F MLBR(MTRAV)=0 THEN GOTO ABLS; MTRAV=MLBR(MTRAV); GOTO ABLR; ABLS: I F MORN(MTRAV)=NORN THEN GOTO ABFN; CALL DLT(MTRAV); I F MRBR(MTRAV)<0 THEN GOTO ABCR; MTRAV=MRBR(MTRAV); GOTO ABLS; ABCR: CALL DLT(MTRAV); I F MNEXZ=0 THEN GOTO NDISHT; MNEI(MNEXZ),MLBR(MNEXZ),MRBR(MNEXZ)=0; MRES(MNEXZ)=*10*8; MMOV(MNEXZ)='01 18; IF MNEI(MTRAV)=0 THEN MLEV(MNEXZ)=MLEV(MTRAV); ELSE MLEV(MNEXZ)=MLEV(MTRAV)+l; IF MLEV(MNEXZ)>8 THEN GOTO DOFL; MCNI=1; ABLP: I F MCNS(MCNI)-=NLOC THEN DO; MCNI=MCNI+l; GOTO ABLP; END; MARK» MTRAV=MNEXZ; CALL FPLAY(NORN,MCNSQ(MCNl),MLEV(MTRAV)); NORN,NLOC=0; MNEXZ=MNEX(MTRAV); GOTO CONROT; ABMW: MTRAV=MSON(MTRAV); ABMP: I F MORN ( MTRAV )-•= NORN THEN DO; MTRAV=MLBR(MTRAV); GOTO ABMP; END; ABFN: CALL F PLAY(NORN» MCNSQIMINX(MTRAV))»MLEV C MTRAV)); NORN,NLOC=0; END NODO; */ ABEX: MTRAV=MSON(MTRAV); IF MTRAV<=0 THEN DO; PUT F I L E ( E E E ) L 1 S T ( S P L I S T ) ; MXF=-1; GOTO NDMMAX; END; IF MRES(MTRAV)='00 ,8 THEN DO; MXF=2; GOTO PUKE; END; /* DO WHILE{MRBR(MTRAV)-»=0); PUT L I S T ( " T R A P 2* ) ; MTRAV=MRBR(MTRAV); END; NLEN=MLEN(MTRAV); NTRAV=MTRAV; DO WHILE(MLBR(MTRAV)-=0); MTRAV=MLBR(MTRAV); IF MLEN(MTRAV)<NLEN THEN DO; NLEN=MLEN( MTRAV) ; NTR.AV = MTR AV ; END; END; MTRAV=NTRAV; END; A8EY: I F MSON(MTRAV)<=0 THEN DO; CALL DLT(MTRAV); MTRAV^MLBR(MTRAV); GOTO ABEY; END; IF MRES(MTRAV)='00'B THEN 0 0 ; IF MLBR(MTRAV)>0 THEN DO; IK=MLBR(MTRAV); MRBR(IK)=0; CALL D L T { M F A T { I K ) ) ; END; END; */ MTRAV=MSON(MTRAV); J=MORN ( MTRAV ) ; I X = S P O N O U ) ; I Y = J - T F O P S ( I X ) + l ; IZ=MLOC(MTRAV); CALL FPLAY(J,MCMSQ(MI NX(MTRAV))» MLEV(MTRAV) ) ; MXF=l ; PUKE: PUT LIST(KODEC,MBTM,MTRAV,NODEC,MXF); RETURN; /* PUT S K I P ( 2 ) ; CALL UPDT; IF MVNDX=0 THEN DO; PUT L I S T f ' I N V MACH MO V E 1 ) ; GOTO NDISHT; END; 61. ENEMA: I F MVCNTALL=0 THEN DO ; IWIN=1; GOTO NDMMAX; END; ENEMO: PUT L I S T { ' YOU TO MOVE'); PUT S K I P ( 2 ) ; GET LI ST(CARA,NORN,NLOC); 11 = I.V FLOP: IF 11>12 THEN DO; NORN=NORN+100; GOTO FLQQ; END; IF CARA=ALPH(I I ) THEM DO; NQRN=NORN-l + TFQPS t I I ) ; GOTO FLOQ; END; 11=11+1; GOTO FLOP; FLOQ: I F N0RN>9998 THEN STOP; I F N0RN>998 THEN DO; MVCNTALL,MCNCN=0; MDNDX=6; GOTO NDMMAX; END; J=NORN; IZ=NLOC; CALL UPDT; IF MVNDX=0 THEN DO; PUT L I S T C IT IS S T I L L ' ) ; GOTO ENEMO; END; IF MVCNTALL-i=0 THEN GOTO MMA; IWIN=0; */ GOTO NDMMAX; DLT: P R O C ( I D ) ; IF KTEST>1 THEN PUT L I S T ( ' D L T ' , ID) ; IDW=ID; MNEX(ID)=0; MNEX(MWND),MWND=ID; KODEC=KODEC-l; IF MSON(ID)<=0 THEN GOTO NDOLT; I N L P : ID=MSON(ID); L P : I F MLBRUD)-*=0 THEN DO; ID = M L B R ( I D ) ; GOTO L P ; END; I L L P : I F MSON(ID)<=0 THEN GOTO IMLP; GOTO I N L P ; IMLP: I F ID = IDW THEN GOTO NDDLT; MNEX(ID)=0; MNEX(MWND),MWND=ID; KODEC=KODEC-l; I F MRBR(ID)<=0 THEN GOTO I O L P ; ID=MRBR(ID); GOTO I L L P ; I O L P : I F (MFAT( I'D )<=0 ) ] (MFAT( ID)>3000) THEN DO; IF KTEST>1 THEN DO; PUT LI ST ( ( S P L I ST( 11 ) DO I I = MAX(1,ID-lOO) TO MINI 3 0 0 0 , I D + 1 0 0 ) ) ) ; END; GOTO NDDLT; END; ID = M F A T ( I D ) ; MSON(ID)=0; GOTO IMLP; NDDLT: ID=IDW; END DLT; NDISHT: M8TM=CPUTIME-WTIM; L00TT=1; PUT L I S T ( 1 OVERFLOW*,M8TM,NQDEC); MXF=-1; IF MDNDX=8 THEN DO; PUT S K I P I 3 ) ; GOTO NDMMAX; END; /£ MTRAV-MARK; GOTO MMA; */ .MDMMAX5' END MMAX; NEIGH: P R O C E D U R E ( J J ) ; MJ = 0; IF M F S T B D t J J + 1 ) = 0 THEN DO; J L ( 1 ) = ' 1 ' B ; I F MFSTBDtJJ+2)=0 THEN JL(10)=»1*3; I F M F S T B D t J J - 1 5 ) = 0 THEM JL(5)=*I»B; I F MFSTBDtJJ+17)=0 THEN J L { 6 ) = * 1 * B ; END; IF M F S T B D t J J - 1 ) = 0 THEN DO; J L ( 3 ) = * 1 ' B ; IF M F S T B D ( J J - 2 ) = 0 THEN J L ( 1 2 ) = ' 1 ' B ; I F M F S T B D ( J J - 1 7 ) = 0 THEN J L < 3 ) = ' 1 ' 9 ; IF MFSTBDt JJ+ 1 5 ) = 0 THEN J L ( 7 ) = * L ' B ; END; IF M F S T B D t J J - 1 6 ) = 0 THEN DO; J L ( 4 ) = ' 1 ' B ; I F M F S T B D t J J - 3 2 ) = 0 THEN JL{9)=*1»8; IF M F S T B D ( J J - 1 5 ) = 0 THEN JL(5)=«1'B; I F MFSTBD(J J - 1 7 ) = 0 THEN JL(8)=»1'B; END; IF M F S T B D U J + 1 6 ) = 0 THEN 0 0; J L I 2 ) = ' I • 3 ; I F MFSTBD{JJ+32)=0 THEN JL{11)=«1'3; IF MFST3D{ J J + 15 ). = 0 THEN JU7)>=*1'B; I F MFSTBD(JJ+17)=0 THEN JL(6)=«1'B; END; END NEIGH; KUTRAND: PROC(EMYT,KRNG,KRES); DCL (EMYT,KRNG,KRES) FIXED B I N ( 3 1 ) , TRUNC F I X E D D E C ( 2 , 0 ) ; I F EMYT>7 THEN EMYT=8; ELSE EMYT=7; CALL TIME(EMYT,0,EMAT); TRUNC=EMAT; KRES=((TRUNC+1)*KRNG)/1CG0; I F KRES<KRNG THEN KR£S=KR£S+1; END KUTRAND; FPLAY: PROCEDURE!IWO,IWL,MWLV); IF KTEST>4 THEN PUT L I S T l ' F P L Y * ) ; MAVL(SPONO(IWO))='0'B; MFSTBD(IWL)=1; DO IH = 1 TO 4; MFSTBD <IWL+MSFF(I WO »IH)) = 1; END; IF MMAXFG=1 THEN DO; DO IH=1 TO MCNCW; MCNSDIIH,MWLV)='0•B; I F MCNSD(IHtMWLV—1)='1' 8 THEN IF MFSTBDtMCNSQ(IH))=0 THEN MCNSD(IH,MWLV)=«1*3; END; END FPLAY; FUNPLAY: PROCEDURE(IWO,IWL>; I F KTEST>4 THEN PUT L I S T { ' F U N P * ) ; MAVLISPONO(IWO)) = * 1'B ; MFSTBD(IWL)=0; DO IH=1 TO 4; MFST8D(IWL+MSFFIIWO,IH})=0; END; END FUNPLAY; NDBD: END BOARD; I F MDNDX-.=7 THEN GOTO GSTART; ELSE GOTO GSTARTA; TOO: GET F I L E{MHKPNF) L I S T ( ( M K A ( I I ) DO 11=1 TO 4 0 0 8 ) ) ; GOTO FRO; SEE: GET F I L E ( F F F ) L1ST I<MSLST<I I ) DO 11 = 1 TO 1 3 1 6 6 ) ) ; GOTO SAW; REPENT: PUT S K I P LIST('THANK YOU AND BYE-BYE 1 ) ; END PENTO; (B) EXCERPTS FROM THE COMPLETE MOVE LISTS 63. 0 : 1 5 7 3 4 20 36 46 9 13 16 19 10 : 45 52 18 24 29 42 48 62 6 11 20 : 23 40 47 60 2 3- 4 5 7 8 30 : 14 17 21 26 27 28 30 31 32 33 40 : 35 37 39 41 49 50 51 53 54 56 50 : 59 61 63 10 12 15 22 25 38 43 60 :• 44 5 5 58 2 58 31 21 37 43 10 70 : 14 17 20 46 53 15 25 30 39 49 80 : 63 7 12 24 41 48 61 1 3 4 90 : 5 6 8 11 18 22 23 27 28 29 100 : 3 2 3 3 34 36 38 40 42 47 50 51 110 : 54 55 56 57 60 62 3 59 32 22 120 ' : 38 44 9 11 18 21 43 54 8 13 130 t 25 42 49 60 16 26 27 40 50 62 140 : 1 2 4 5 6 7 12 15 19 24 150 : 28 29 30 31 33 34 35 37 39 41 160 : 47 48 51 52 55 57 58 61 63 4 170 1 : 56 33 19 35 45 10 12 15 22 44 180 ' : 55 17 23 28 41 47 63 5 14 26 190 : 39 50 61 1 2 3 6 7 8 13 200 : 16 20 25 27 29 30 31 32 34 36 210 : 38 40 42 48 49 51 52 53 58 59 220 " : 60 62 5 55 28 26 35 44 10 14 230 : • 17 23 45 56 4 15 19 39 47 63 240 : 1 2 6 8 13 16 20 25 27 30 250 : 31 32 34 36 38 40 49 51 52 53 260 . : 58 59 60 9 11 21 37 43 46 54 270 ' : 57 6 52 29 23 36 45 9 11 18 280 : 24 46 57 13 19 34 42 47 60 2 290 ' : 3 4 7 8 17 21 28 30 32 33 300 : : 35 37 41 49 51 53 54 56 59 63 310 ' : 10 12 15 22 25 38 43 44 55 58 320 : 7 53 30 24 37 46 10 12 15 25 330 : : 43 58 2 17 21 41 49 63 3 4 340 ' : 6 8 11 18 22 23 28 29 32 33 350 : : 34 36 3 8 42 47 51 54 55 56 57 360 - 60 8 54 27 25 38 43 9 13 16 370 " i 26 44 59 3 18 22 42 50 62 1 380 . : 4 5 7 12 15 19 24 29 30 31 390 : : 33 34 35 37 39 48 51 52 55 57 400 : : 58 61 10 14 20 36 45 46 53 56 410 ' : 9 13 16 18 42 62 11 40 60 I 420 " : 6 19 24 29 34 47 48 52 57 2 4 30 : 3 4 5 7 8 21 26 27 28 30 440 : : 31 32 3 3 35 37 39 41 49 50 51 450 : 54 59 61 63 10 15 12 17 41 63 460 : : 14 39 61 2 7 20 25 30 31 43 470 : 49 53 58 I 3 4 5 6 8 22 480 • ' 23 27 23 29 32 33 34 36 38 40 490 : 42 47 50 51 55 56 - 60 62 11 9 500 i 18 13 42 60 3 8 21 32 49 54 510 : 16 26 27 40 50 62 12 10 17 520 : 41 14 61 2 7 20 31 48 53 58 530 : 21 24 3 7 43 46 1 3 5 6 11 540 : 18 22 2 3 27 28 29 3 2 33 36 38 550 : 40 50 51 54 55 56 57 62 9 16 560 : 26 35 44 45 52 59 13 42 60 16 570 : 40 62 1 6 19 29 34 47 48 52 580 : 20 23 36 45 2 3 4 5 7 8 590 : 14 17 26 27 28 30 31 32 33 35 600 : 39 41 49 50 51 53 56 59 61 63 610 : 14 10 17 15 39 63 4 5 23 23 620 ' 47 55 56 12 22 33 41 50 61 15 630 : 12 41 63 39 61 2 7 25 30 31 640 : 48 4 9 58 21 24 37 43 1 3 4 650 ' 5 O 8 11 18 2 2 27 28 29 32 660 : 33 34 38 40 42 47 50 51 54 55 670 • 57 60 62 16 9 18 62 11 40 1 680 : 6 24 29 48 5 2 57 20 23 36 45 690 " 46 2 3 5 7 14 17 21 26 27 700 : 28 31 32 33 35 37 41 50 51 53 710 ' 54 56 59 61 17 10 15 63 2 25 720 3 : 30 49 53 58 7 12 41 3 4 6 730 . : 8 22 23 23 29 32 33 34 36 38 740 : 42 47 51 55 56 60 13 19 35 44 750 " 45 52 59 18 9 13 42 3 8 54 760 -: 59 22 25 38 43 44 4 7 12 15 770 : 19 24 29 30 33 34 35 37 51 52 780 ' 55 57 58 10 36 45 46 53 56 19 790 : 45 23 47 6 13 34 36 52 60 29 800 : 42 2 3 4 7 8 17 28 30 32 810 < : 33 35 41 49 51 53 56 59 63 20 820 ' : 46 24 48 1 18 29 36 57 62 34 830 : 42 6 11 23 40 47 60 2 3 4 840 : : 5 7 8 14 17 21 27 28 30 31 850 : 32 33 37 39 41 49 50 51 53 54 860 " : 56 61 63 21 43 25 49 2 15 30 870 . : 37 58 63 31 39 1 4 5 6 8 880 : 11 27 23 32 34 38 40 47 51 54 890 • : 55 .5 7 60 10 14 17 20 23 36 46 900 ' : 53 56 22 44 26 50 3 16 27 38 910 : 59 62 32 40 9 11 18 21 43 54 920 : 1 2 5 6 7 12 24 28 29 31 930 : 33 35 37 41 48 51 52 55 57 58 940 : 61 23 45 6 36 52 9 11 46 57 950 : 1 16 20 40 13 19 34 47 60 2 960 : 4 5 8 14 17 21 26 27 28 30 970 : 31 32 35 37 39 49 51 53 54 56 980 : 59 6 3 24 46 7 37 53 10 12 43 990 : 58 2 17 21 41 3 6 11 18 22 1000 . : 23 28 29 32 33 36 38 51 54 55 1010 : 56 57 9 35 44 45 52 59 25 43 1020 : 8 38 54 9 13 44 59 11 21 32 1030 : 49 60 16 26 27 40 1 2 4 5 1040 : 6 15 19 28 30 31 34 35 37 39 1050 : 4 7 5 1 52 5 5 57 5 3 63 26 44 5 1060 : 35 55 10 14 45 56 4 15 19 39 1070 : 12 22 33 50 61 1 3 7 6 13 1080 : 16 20 25 27 29 30 31 34 36 38 1090 : 42 48 51 52 53 58 59 62 27 38 1100 : 43 54 11 21 32 40 8 25 49 60 1110 : 3 18 22 42 50 62 28 35 44 55 1120 : 12 22 33 41 5 26 50 61 10 14 1130 : 17 2 3 45 56 1 2 3 6 7 16 1140 : 20 27 29 31 32 36 38 40 48 51 1150 : 52 5 3 58 59 62 29 36 45 52 13 1160 : 19 34 42 9 18 24 46 57 3 4 1170 • : 7 8 30 33 35 37 51 53 54 56 1180 : 59 1 5 14 16 20 26 27 31 39 65. 1190 : 48 50 61 62 30 53 37 46 14 20 1200 : 31 39 7 24 48 61 10 12 15 25 1210 : 43 58 1 3 4 5 8 18 22 27 1220 : 29 33 34 36. .3 8 42 50 51 54 55 1230 , : 56 5 7 62 31 58 37 43 15 25 30 1240 : 39 10 14 20 46 53 1 4 5 8 1250 : 27 34 36 38 51 54 55 56 57 9 1260 : 13 16 19 26 35 44 45 52 59 32 1270 : 59 38 44 16 26 27 40 9 11 21 1280 " : 43 54 1 2 5 6 28 31 35 37 1290 : 51 52 5 5 57 58 10 14 17 20 23 1300 « : 36 45 46 53 56 33 56 35 45 17 1310 ' : 23 ... 28 41 4 19 47 63 5 14 26 1320 : 39 50 61 34 36 46 57 18 24 29 1330 , : 42 6 11 23 47 60 2 3 4 7 1340 : 8 17 21 28 30 32 33 37 41 49 1350 " : 51 53 54 56 63 35 33 4 19 28 1360 : : 41 47 63 12 15 22 44 55 5 26 1370 : 39 50 61 1 2 3 6 7 8 13 1380 : : 16 25 27 29 30 31 32 34 38 40 1390 : 42 48 49 51 52 58 59 60 62 36 1400 : : 45 5 2 9 46 57 13 19 34 6 11 1410 • : 23 47 60 2 4 8 17 21 28 30 1420 : : 32 35 37 49 51 53 54 56 59 63 1430 -: 10 15 25 38 43 44 55 58 37 30 1440 : 7 24 31 39 48 61 12 15 25 43 1450 : 58 1 3 4 5 8 18 22 27 29 1460 i : 33 34 38 42 50 51 54 55 57 62 1470 : : 38 32 3 22 27 40 50 62 11 18 1480 1 : 21 43 54 1 2 5 6 7 12 24 1490 : 28 29 31 33 37 41 48 51 55 57 1500 • : 58 61 39 14 61 10 12 15 4 5 1510 • : 22 3 3 50 55 56 1 3 7 8 20 1520 : 25 27 29 30 31 34 36 38 42 48 1530 • : 51 5 3 58 62 40 16 62 1 6 29 1540 : 48 52 20 23 36 45 2 3 5 7 1550 : 14 17 26 27 28 31 32 33 35 41 1560 ' : 50 51 53 56 59 61 4L 17 63 14 1570 . : 39 61 2 7 20 30 31 48 49 53 1580 * : 21 24 37 46 42 18 62 11 40 60 1590 : 1 6 24 29 34 47 48 57 2 3 1600 . : 4 5 7 8 21 27 28 30 31 32 1610 ' : 33 37 39 41 49 50 51 54 61 63 1620 : 43 37 58 2 21 10 17 46 53 15 1630 ' : 25 30 49 63 4 6 8 11 23 23 16 40 . : 32 34 36 38 47 51 54 55 56 57 165 0 : 60 44 33 59 3 22 9 18 43 54 1660 • : 16 26 27 50 62 1 5 7 12 24 1670 : 29 31 33 35 37 48 51 52 55 57 1680 ' i 58 61 10 14 20 36 45 46 53 56 1690 : 45 35 56 4 19 10 15 44 55 17 1700 i : 23 28 47 63 2 6 3 13 25 30 1710 : 32 34 36 38 49 51 52 53 5 8 59 1720 : 60 46 36 . 57 1 20 9 16 45 52 1730 : 18 24 29 48 62 3 5 7 14 26 1740 : 27 31 33 35 37 50 51 53 54 56 1750 : 59 61 47 23 6 34 36 60 29 42 1760 : 1 20 40 48 62 2 3 4 5 7 1770 : 8 14 17 27 28 30 31 32 33 39 17 80 : 41 49 50 51 53 56 61 63 48 20 66. 1790 : 1 29 36 62 34 42 13 16 19 45 1300 : 52 3 4 5 7 8 14 26 27 30 1810 : 31 33 35 39 50 51 53 56 59 61 1820, : 49 25 8 32 38 60 27 40 13 16 1830 : 26 44 59 3 22 42 50 62 50 26 1840 : 5 33 35 61 28 41 14 17 23 45 1850 : 56 51 36 53 56 35 45 52 59 3 1860 : 7 29 33 10 12 22 38 44 55 58 1870 : 2 6 17 23 28 32 41 52 29 9 1880 : 18 24 57 6 11 13 19 34 42 47 1890 : 60 2 3 4 7 8 21 28 30 32 1900 : 33 35 37 41 49 51 54 59 63 12 1910 ; 15 22 25 38 43 44 55 58 53 10 1920 3 58 7 12 15 25 30 14 20 31 39 1930 : 48 61 54 27 9 16 26 59 8 13 1940 : 3 18 42 50 62 1 4 5 7 19 1950 : 24 29 30 31 33 34 35 37 39 48 1960 : 51 52 57 61 55 28 10 17 23 56 1970 : 5 14 12 22 33 41 50 61 1 2 1980 J 3 6 7 20 27 29 31 32 36 38 1990 : 40 48 51 53 58 62 56 10 55 4 2000 ' 15 12 22 33 17 23 28 41 47 63 2010 : 57 34 9 13 19 52 I 16 6 11 2020 ' : 40 47 60 2 4 5 8 21 26 27 2030 : 28 30 31 32 35 3 7 39 49 51 54 2040 : 59 63 58 7 12 2 41 10 17 53 2050 1 : 3 6 22 23 28 29 32 33 36 38 2060 : : 51 55 56 59 9 54 8 13 11 21 2070 3 : 32 49 60 16 26 27 40 60 13 9 2080 : : 11 16 40 61 14 10 12 7 20 31 2090 • : 48 5 3 58 24 37 43 46 1 3 5 2100 : :• 18 22 27 29 33 36 38 50 51 54 2110 : : 55 56 5 7 62 62 16 13 42 I 19 2120 : 29 34 48 52 9 18 24 57 6 3 17 2130 ' : 14 39 2 20 30 31 49 53 21 37 2140 ' : 46 1 4 5 6 8 11 23 27 28 2150 ' : 32 34 36 40 47 51 54 56 57 60 2160 • : 24 48 7 31 37 61 12 43 58 2 2170 . : 21 41 11 60 40 1 6 34 47 57 2180 " : 20 23 36 46 11 18 42 60 6 24 2190 : 29 34 47 57 2 3 4 7 8 21 2200 • : 28 30 32 33 37 41 49 51 54 63 2210 : 12 15 22 25 38 43 55 58 42 60 2220 : 40 62 1 6 29 34 47 48 2 3 2230 : 4 5 7 8 27 28 30 31 32 33 2240 : 39 41 49 50 51 61 63 13 16 19 2250 : 26 35 52 59 13 16 40 60 1 6 2260 : 19 34 47 52 20 23 36 45 2 4 2270 , r 5 8 14 17 26 27 28 30 31 32 2280 : 35 39 49 51 53 56 59 63 18 62 2290 : 11 40 1 6 24 29 48 57 20 23 2300 : 36 46 2 3 5 7 14 17 21 27 2310 < : 28 31 32 33 37 41 50 51 53 54 2320 : 56 61 42 62 1 29 34 48 18 24 2330 : 57 3 4 5 7 8 27 30 31 33 2340 : 37 39 50 51 54 61 14 20 36 46 2350 : 53 56 11 40 9 16 1 6 52 57 2360 : 2 5 21 26 27 28 31 32 35 37 2 370 : 51 54 59 14 17 20 23 36 45 46 2380 : 53 56 40 60 1 6 34 47 20 23 2390 : 36 2 4 5 8 14 17 27 28 30 2400 : 31 32 39 49 51 53 56 63 10 15 2410 : 25 38 55 58 40 62 1 6 29 48 2420 : 20 2 3 36 2 3 5 7 14 17 27 2430 : 28 31 32 33 41 50 51 53 56 61 2440 : 19 47 4 28 35 63 15 44 55 5 2450 : 26 39 1 2 6 8 13 16 25 27 2460 : 30 31 3 2 34 38 40 49 51 52 58 2470 : 59 60 6 29 23 36 11 18 24 46 2480 : 57 2 3 7 17 21 2 3 32 33 37 2490 : 41 5 I 53 54 56 9 35 45 52 59 2500 : 1 34 20 36 13 16 19 45 52 4 2510 : 5 8 14 26 27 30 31 35 39 51 2520 : 53 56 59 9 37 46 54 57 21 49 2530 : 2 30 37 63 31 39 7 24 41 48 2540 : 61 15 63 39 4 5 28 47 55 12 2550 : 22 33 41 50 61 1 2 3 6 7 2560 . : 8 25 27 29 30 31 32 34 38 40 2570 : : 42 48 49 51 58 60 62 12 41 61 2580 : 2 7 31 48 58 1 3 5 6 22 2590 : 27 28 29 32 33 38 40 50 51 55 2600 : 62 16 26 35 44 52 59 41 63 39 2610 : : 61 2 7 30 31 48 49 15 39 10 2620 '• 14 4 5 55 56 I 3 20 25 27 2630 : 30 31 34 36 38 51 53 58 13 16 2640 • : 19 26 35 44 45 52 59 12 61 15 2650 : 39 7 25 30 31 48 53 1 3 4 2660 : 5 8 22 27 29 33 34 38 42 50 2670 ' : 51 55 6 2 13 16 19 26 35 44 52 2680 : 59 39 61 7 30 31 48 14 20 53 2690 : 1 3 4 5 8 27 29 33 34 36 2700 : : 42 50 51 56 62 14 17 41 61 2 2710 . : 7 20 31 48 53 21 24 37 46 39 2720 ' : 63 2 30 31 49 15 25 58 10 14 2730 ' : 17 20 53 41 61 2 7 31 48 21 2740 • : 24 37 1 3 5 6 11 18 27 28 2750 : : 29 32 33 40 50 51 54 57 62 9 2760 : 16 26 35 52 59 7 30 12 15 25 2770 : 58 24 37 43 2 21 41 49 63 31 2780 . : 37 30 39 1 4 5 8 27 34 51 2790 ' : 54 57 14 20 36 46 53 56 2 31 2800 : 21 37 14 17 20 46 53 1 5 6 2810 : 11 23 27 28 32 36 40 51 54 56 2820 : : 57 10 33 43 55 58 22 50 3 27 2830 : 38 62 18 43 54 8 25 42 3 32 2340 : 11 18 21 54 9 59 16 26 27 40 2850 : 50 62 8 27 25 38 13 16 26 44 2860 • : 5 9 3 22 42 50 62 4 33 12 15 2870 * : 22 55 19 35 44 5 26 39 50 61 2880 : 5 28 26 35 14 17 2 3 45 56 4 2890 . : 19 39 4 7 63 9 52 57 6 11 13 2900 " : 19 34 47 60 2 4 3 21 28 30 2910 : : 32 35 37 49 51 54 59 63 15 25 2920 • i 33 43 44 55 58 29 34 42 36 3 2930 ' : 4 7 8 30 33 51 53 56 13 19 2940 ' : 35 45 52 59 10 12 15 22 25 33 2950 * i 44 55 5 8 6 23 36 11 46 57 34 2 960 : 47 60 2 4 8 17 21 28 30 32 2970 37 49 51 53 5 4 56 63 6 11 57 2980 : 1 40 20 23 36 - 46 .1 20 36 16 68. 2990 : 45 52 29 48 62 3 5 7 14 26 3000 : 27 31 33 35 50 51 5 3 56 59 61 3010 : 10 12 22 38 44 55 58 1 16 52 3020 : 9 57 18 24 29 48. 62 3 5 7 3030 : 26 27 31 33 35 37 50 51 54 59 3040 : 61 1 6 40 16 52 20 23 36 45 3050 : 2 5 14 17 26 27 28 31 32 35 3060 : 51 53 56 59 10 38 44 55 58 37 3070 : 46 53 10 43 53 15 25 30 4 8 3080 : 34 36 38 51 54 55 56 57 9 13 3090 : 19 35 44 45 52 59 7 24 37 12 3100 J 43 58 2 21 41 3 6 11 18 22 3110 : 28 29 32 33 38 51 54 55 57 9 3120 : 35 44 52 59 2 17 53 10 58 14 3130 . 20 31 1 5 6 23 27 28 32 36 3140 : 38 40 51 55 56 2 21 37 17 46 3150 : 53 30 49 63 7 24 41 2 7 41 3160 : 17 53 30 49 63 3 4 6 8 23 3170 ; 28 29 32 33 34 36 42 47 51 56 3180 : 60 30 31 39 14 20 53 10 15 25 3190 : 58 38 43 54 9 44 59 11 21 32 3200 J 2 6 28 35 37 51 52 55 57 58 3210 : 10 17 23 36 45 46 53 56 8 13 3220 ' : 59 3 42 32 49 60 22 25 38 44 3230 : : 2 4 6 7 12 15 19 28 29 30 3240 5 33 34 35 41 47 51 52 55 58 63 3250 : 8 25 38 13 44 59 3 22 42 4 3260 : 7 12 15 19 29 30 33 34 35 51 3270 52 55 58 I 3 22 38 18 43 54 8 3280 : : 25 42 11 21 32 49 60 3 18 54 3290 : : 9 59 16 26 27 50 62 3 8 42 3300 • 18 54 27 50 62 11 21 32 40 49 3310 : : 60 27 32 40 38 3 3 22 25 42 3320 : : 49 50 60 62 35 44 55 10 45 56 3330 : 12 22 33 17 23 28 41 4 19 35 3340 : : 15 44 55 5 26 39 1 8 13 16 3350 • 25 27 30 31 34 38 51 52 58 59 3360 : 9 37 43 54 57 4 15 55 5 39 3370 * : 12 22 33 50 61 28 33 41 35 4 3380 -: 5 19 26 39 47 50 61 63 5 14 3390 : 56 10 55 12 22 33 50 61 26 35 3400 ' : 44 45 5 26 35 14 45 56 4 19 3410 : 39 33 50 61 4 5 39 14 56 33 3420 < : 50 61 17 23 28 41 47 63 13 19 3430 : 34 52 36 45 4 8 30 35 51 53 3440 : 56 59 9 37 46 54 57 18 24 29 3450 : 57 36 46 9 45 52 3 7 33 35 3460 : 37 51 53 54 56 59 10 12 22 38 3470 : 43 44 5 5 58 6 34 47 60 11 57 3480 : 2 4 8 21 28 30 32 37 49 51 3490 : 54 6 3 15 25 38 43 55 58 I 29 3500 ' : 48 62 16 52 3 5 7 26 27 31 3510 : 33 35 50 51 59 61 12 22 38 44 3520 * : 55 58 15 25 30 58 10 53 4 8 3530 : 34 36 38 51 55 56 13 19 35 44 3540 : 45 52 59 2 30 49 63 17 53 4 3550 : 6 8 23 28 32 34 36 47 51 56 3560 : 60 13 19 35 45 52 59 14 20 31 3570 : 53 10 58 37 43 46 1 5 27 36 3580 : 38 51 54 55 56 57 9 16 26 35 4790 : 58 1 3 5 7 27 29 31 33 48 4800 : 50 51 61 62 2 6 28 32 40 41 4810 : 3 7 9 18 24 29 33 35 37 51 4820 -: 52 54 57 59 2 6 10 17 • 23 28 4830 : 32 36 33 51 53 55 56 53 2 6 4840 : 11 21 28 32 37 38 43 51 54 55 4850 ' : 57 58 1 5 27 31 40 1 5 9 4860 ' : 16 26 27 31 35 37 51 52 54 57 4870 ' : 59 1 2 5 6 11 21 27 28 31 4880 ' : 32 3 7 40 51 54 57 3 7 12 18 4890 , : 22 24 29 33 37 38 43 51 54 55 4900 : 57 58 2 6 11 17 21 23 28 32 4910 : 36 37 46 51 53 54 56 57 1 5 4920 : : 14 16 20 26 27 31 35 36 45 51 4930 : 52 53 56 59 3 4 7 3 12 15 4940 • : 22 25 29 30 33 34 33 42 51 55 4950 : : 58 10 36 53 56 1 2 4 5 6 4960 ' : 8 27 28 30 31 32 34 39 40 47 4970 ' : 49 51 60 63 0 0 0 0 0 0 4980 : 0 0 0 0 0 0 0 0 0 0 4990 : : 0 0 0 0 0 0 0 0 0 0 5000 : 0 0 0 0 0 0 0 0 0 0 5010 : : 0 0 0 0 0 0 0 0 0 0 5020 : : 0 0 0 0 0 0 0 0 0 0 5030 : : 0 0 0 0 0 0 0 0 0 0 5040 • : 0 0 0 0 0 0 0 0 0 0 5050 : 0 0 0 0 0 0 0 0 0 0 5060 : : 0 0 0 0 0 0 0 0 0 0 5070 « : 0 0 0 0 0 0 0 0 0 0 5080 : : 0 0 0 0 0 0 0 0 0 0 5090 : : 0 0 0 0 0 0 0 0 0 0 5100 • : 0 0 0 0 0 0 0 0 0 0 5110 : 0. 0 0 0 0 0 0 0 0 0 5120 • : 0 0 0 0 0 0 0 0 0 0 5130 . : 0 0 0 0 0 0 0 0 0 0 5140 : 0 0 0 0 0 0 0 0 0 0 5150 • : 0 0 0 0 0 0 0 0 0 0 5160 : 0 0 0 0 0 0 0 0 0 0 5170 : 0 0 0 0 0 0 0 0 0 0 5180 : 0 0 0 0 0 0 0 0 0 0 5190 0 0 0 0 0 0 0 0 0 0 5200 : 0 0 0 0 0 0 0 0 0 0 5210 • : 0 0 0 0 0 0 0 0 0 0 5220 . : 0 0 0 0 0. 0 0 0 0 0 52.30 : : 0 0 0 0 0 0 0 0 0 0 5 240 : 0 o 0 0 0 0 0 0 0 0 5250 . : 0 0 0 0 0 0 0 0 0 0 5260 ' : 0 0 0 0 0 0 0 0 0 0 5270 ' : 0 0 0 0 0 0 0 0 0 0 5280 : 0 0 0 0 0 0 0 0 0 0 5290 : 0 0 0 0 0 0 0 0 0 0 5300 : 0 0 0 0 0 0 0 0 0 0 5310 : 0 0 0 0 0 0 0 0 0 0 5320 • : 0 0 0 0 0 0 0 .0 0 0 5330 : 0 0 0 0 0 0 0 0 0 0 5340 : 0 0 0 0 0 0 0 0 0 0 5350 : 0 0 0 0 0 0 0 0 0 0 5360 : 0 0 0 0 0 0 0 0 0 0 5370 : 0 0 0 0 0 0 0 0 0 •o 5380 : 0 0 0 0 0. 0 0 0 0 . 0 6590 : 983 1 983 2 983 1 983 2 983 1 6600 : 983 2 983 1 983 2 0 0 0 0 6610 • 0 0 0 0 0 0 0 0 0 0 6620 i 0 0 983 1 983 2 983 1 983 2 6630 ' : 983 1 983 2 983 1 983 2 0 0 6640 ' : 0 0 0 0 0 0 0 0 0 0 6650 - 0 0 0 0 0 0 1722 1 0 0 6660 ' ' 1722 1 0 0 1722 1 0 0 1722 1 6670 : 0 0 0 0 0 0 0 0 0 0 6680 • : 0 0 0 0 0 0 0 0 1722 1 6690 : 0 0 1722 1 0 0 1722 1 0 0 6700 : 1722 I 0 0 0 0 0 0 0 0 6710 ' : 0 0 0 0 0 0 0 0 983 1 6720 • : 983 2 983 1 983 2 983 1 983 2 6730 : : ' 983 1 983 2 0 0 0 0 0 0 6740 : 0 0 0 0 0 0 0 0 0 0 6750 : : 983 1 983 2 983 1 983 2 983 1 6760 : : 983 2 983 1 983 2 0 0 820 1 6770 : 0 0 820 1 0 0 820 1 0 0 6780 : 820 I 0 0 820 2 0 0 820 2 6790 : : 0 0 820 2 0 .0 820 2 0 0 6800 : : 820 1 0 0 820 1 0 0 820 1 6810 : : 0 0 820 1 0 0 820 2 0 0 6820 : : 820 2 0 0 820 2 0 0 820 2 6830 : : 1789 I 1789 2 1789 1 1789 2 1789 1 6840 ' : 1789 2 1789 I 1789 2 2161 2 820 4 6850 : i 2161 2 820 4 2161 2 820 4 2161 2 6860 : : 820 4 1789 1 1789 2 1789 1 1789 2 6870 : 1789 1 1789 2 1789 1 1789 2 2161 2 6880 " : 820 4 2161 2 820 4 2161 2 820 4 6890 : : 2161 2 820 4 0 0 820 1 0 0 6900 : 820 1 0 0 820 1 0 0 820 1 6910 : i 0 0 820 2 0 0 820 2 0 0 6920 . : 820 2 0 0 820 2 0 0 820 1 6930 : 0 0 820 1 0 0 820 1 0 0 6940 : 820 1 0 0 820 2 0 0 820 2 6950 : 0. 0 820 2 0 0 820 2 1789 1 6960 < : 1789 2 1789 1 1789 2 1 789 1 1789 2 6970 : 1789 1 1789 2 2161 2 820 4 2161 2 6980 : : 820 4 2161 2 820 4 2161 2 820 4 6990 • : 1789 1 1789 2 1789 1 1789 2 1789 1 7000 : 1789 2 1789 1 1789 2 2161 2 820 4 7010 : 2161 2 820 4 2161 2 820 4 2161 2 7020 : 820 4 0 0 0 0 0 0 0 0 7030 : 0 0 0 0 0 0 0 0 0 0 7040. : 0 0 0 0 0 0 0 0 0 ' 0 7050 : 0 0 0 0 0 0 0 0 C 0 7060 : 0 0 0 0 0 0 0 0 0 0 7070 : 0 0 0 0 0 0 0 0 C 0 7080 : 0 0 0 0 0 0 0 0 0 0 7090 : 0 0 0 0 0 0 0 0 0 0 7100 : 0 0 0 0 0 0 0 . 0 0 0 7110 : 0 0 0 0 0 0 0 0 0 0 7120 : 0 0 0 0 0 0 0 0 0 0 7130 : 0 0 0 0 0 0 0 0 0 0 7140 : 0 0 0 0 0 0 0 0 0 0 7150 : 0 0 0 0 0 0 0 0 0 0 7160 : 0 0 0 0 0 0 0 0 0 0 7170 : 0 0 0 0 0 0 0 0 .0 0 7180 : 0 0 0 0 0 0 0 0 0 0 71. 7L90 : 0 0 0 0 0 0 0 0 0 0 7200 : 0 0 0 0 0 0 0 0 0 0 7210 : 0 0 0 0 0 0 0 0 0 0 7220 : 0 0 0 0 0 0 0 0 0 0 7230 : 0 0 0 0 0 0 0 0 0 0 7240 : 0 0 0 0 0 0 0 0 0 0 7250 : 0 0 0 0 0 0 •0 . 0 0 0 7260 : 0 0 0 0 0 0 0 0 0 0 7270 : 0 0 0 0 0 0 0 0 0 0 7280 : 0 0 0 0 0 0 0 0 0 0 7290 : 0 0 0 0 0 0 0 0 0 0 7300 : 0 0 0 0 0 0 0 0 0 0 7310 : 0 0 0 0 0 0 0 0 0 0 7320 : 0 0 0 0 0 0 0 0 0 0 7330 : 0 0 0 0 0 0 0 0 0 0 7340 : 0 0 0 0 0 0 0 0 0 0 7350 : 0 0 0 0 0 0 0 0 0 0 7360 . : 0 0 0 0 0 0 0 0. 0 0 7370 : 0 0 0 0 0 0 0 0 0 0 7380 : 0 0 0 0 0 0 0 0 0 0 7390 -: 0 0 0 0 0 0 0 0 0 0 7400 ' : 0 0 0 0 0 0 0 0 0 0 7410 : : 0 0 0 0 0 0 0 0 0 0 7420 . : 0 0 0 0 0 0 0 0 0 0 7430 : : 0 0 0 0 0 0 0 0 0 0 7440 . o 0 0 0 0 0 0 0 0 0 7450 ' : 0 0 0 0 0 0 0 0 0 0 7460 : 0 0 0 0 0 0 0 0 0 0 7470 : : 0 0 0 0 0 0 0 0 0 0 7480 : 0 0 0 0 0 0 0 0 0 0 7490 : : 0 0 0 0 0 0 0 0 0 0 7500 : : 0 0 0 0 0 0 0 0 0 0 7510 ' : 0 0 0 0 0 0 0 0. 0 0 7520 : : 0 0 0 0 0 0 0 0 0 0 7530 : : 0 0 0 0 0 0 0 0 0 0 7540 : : 0 0 0 0 0 0 0 0 0 0 7550 . : 0 0 0 0 411 1 411 1 0 0 7560 i : 0 0 411 1 411 1 0 0 0 0 7570 : : 567 1 567 1 0 0 0 0 567 1 7580 : 567 1 0 0 0 0 411 2 411 2 7590 : 0 0 0 0 411 2 411 2 0 0 7600 : 0 0 0 0 0 0 0 0 0 0 7610 : 0 0 0 0 754 I 754 1 754 2 7620 : 754 2 754 I 754 1 754 2 754 2 7630 : 1585 1 1585 1 567 2 567 2 1585 1 7640' ' 1585 1 567 2 567 2 1585 2 1585 2 7650 : 754 4 754 4 1585 2 1585 2 754 4 7660 : 754 4 0 0 0 0 0 0 0 0 7670 : 0 0 0 0 0 0 0 0 499 1 7680 : 499 1 499 2 499 2 499 1 499 1 7690 3 499 2 499 2 2078 1 2 078 1 2078 2 7700 : 2078 2 2078 1 2078 1 2078 2 2078 2 7710 : 2173 2 2173 2 2078 4 2078 4 2173 2 7720 : 2173 2 2078 4 2078 4 0 0 0 0 7730 : 0 0 0 0 0 0 0 0 0 0 7740 : 0 0 2185 2 2185 2 499 3 499 3 7750 : 2185 2 2185 2 499 3 499 3 2219 2 7760 : 2219 2 567 3 567 3 2219 2 2219 2 7770 : 567 3 567 3 2185 4 2185 4 499 6 7780 : 499 6 2185 4 2185 4 499 6 499 6 72. 11390 : 0 0 0 0 1058 1 1058 1 0 0 11400 : 0 0 105 8 2 1058 2 0 0 0 0 11410 • : 1058 1 1058 1 0 0 0 0 1058 2 11420 : 1058 2 0 0 0 0 1053 I 1058 1 11430 • : 0 0 0 0 1058 2 1058 2 1839 1 11440 . : 1839 1 1839 2 1839 2 2827 2 2827 2 11450 : 903 4 903 4 1839 I 1839 1 1839 2 11460 : 1839 2 2827 2 2827 2 903 4 903 4 11470 : 1839 1 1839 1 1839 2 1839 2 2827 2 11480 : 2827 2 90 3 4 903 4 1839 L 1839 1 11490 : 1839 2 1839 2 2827 2 2827 2 903 4 11500 ' : 903 4 0 0 0 0 1058 1 1053 1 11510 : 0 0 0 0 1058 2 1058 2 0 0 11520 • : 0 0 1058 1 1058 1 0 0 0 0 11530 : 1058 2 1058 2 0 0 0 0 1058 1 11540 . : 1058 1 0 0 0 0 1058 2 1058 2 11550 " : 0 0 0 0 1058 1 1058 1 0 0 11560 ' : 0 0 1058 2 1058 2 1839 1 1839 1 11570 . : 1839 2 1839 2 2827 2 2827 2 903 4 11580 : : 903 4 1839 1 1839 1 1839 2 1839 2 11590 : 2827 2 2827 2 903 4 903 4 1839 1 11600 : 1839 1 1839 2 1839 2 2827 2 2827 2 11610 ' : 903 4 903 4 1839 1 1839 1 1839 2 11620 ' : 1839 2 2827 2 2827 2 903 4 903 4 11630 -: 0 0 0 0 2064 1 2064 1 1471 1 11640 . : 1471 1 1652 3 1652 3 1933 1 1933 1 11650 • : 2064 3 2064 3 3192 3 3192 3 3192 6 11660 • : 3192 6 362 1 362 1 3219 3 3219 3 11670 : 3251 3 3251 3 3251 6 3251 6 362 2 11680 : : 362 2 2064 5 2064 5 1019 5 1019 5 11690 : 1019 9 1019 9 117 1 117 I 117 2 11700 :. 117 2 3274 3 3274 3 165 2 5 1652 5 11710 : : 3288 3 3288 3 3288 5 3288 5 3274 6 11720 « : 3274 6 1652 9 1652 9 3 298 3 3298 3 11730 : 3219 5 3219 5 4107 6 4107 6 3251 9 11740 : : 3251 9 3298 5 3298 5 754 8 754 8 11750 : 3274 9 3274 9 754 13 754 13 1270 1 11760 * ' 1270 1 1270 2 1270 2 1471 2 1471 2 11770 : . 1270 4 1270 4 3619 4 3619 4 3619 6 11780 • : 3619 6 4116 6 4116 6 3 192 9 3192 9 11790 : 3629 4 3629 4 3629 6 3629 6 1821 6 11800 : 1821 6 3629 9 3629 9 4415 7 4415 7 11810 : 2064 10 2064 10 4415 10 4415 10 1019 14 11820 * : 1019 14 2339 2 2839 2 117 3 117 3 11830 : 1471 4 1471 4 117 6 117 6 2839 6 11840 . 2839 6 2 3 3 9 3 2839 8 4116 9 4116 9 11850 117 12 117 12 4125 6 4125 6 3219 8 11860 : 3219 3 4107 9 4107 9 3219 12 3219 12 11870 . : 4125 10 4125 10 499 13 499 13 | 3274 14 11880 ' : 3274 14 117 18 117 13 1099 I 1099 1 11890 . : 3653 4 3653 4 1099 2 1099 2 3653 6 11900 ' 3653 6 1933 2 1933 2 1933 6 1933 6 11910 : 1099 4 1099 4 3653 9 3653 9 2853 2 11920 : 2353 2 4135 6 4135 6 2853 4 2853 4 11930 ' 2853 9 2853 9 362 3 362 3 1933 8 11940 ' . 1933 8 362 6 362 6 362 12 362 12 11950 • 3672 4 3672 4 4425 7 4425 7 2827 6 11960 ' ' 2827 6 903 10 903 10 3672 6 3672 6 11970 ' 3288 10 3288 10 2827 9 2827 9 1652 14 11980 : 1652 14 4149 6 4149 6 4135 10 4135 10 11990 12000 12010 12020 12030 12040 12050 12060 12070 12080 12090 12100 12110 12120 12130 12140 12150 12160 12170 12180 12190 12200 12210 12220 12230 12240 12250 12260 12270 12280 12290 12300 12310 12320 12330 12340 12350 12360 12370 12380 12390 12400 12410 12420 12430 12440 12450 12460 12470 12480 12490 12500 12510 12520 12530 12540 12550 12560 12570 12580 4149 9 3298 8 362 18 4158 6 4182 6 1099 S 4205 10 1821 13 1099 12 4232 o 903 12 2839 14 423 2 10 3312 13 499 19 117 24 1965 1 1997 1 3325 3 1691 5 170 1 1997 5 1356 2 3325 9 3682 4 170 3 2867 9 170 6 1117 1 1965 6 1117 2 3692 9 3711 6 4432 7 2441 9 1306 8 3376 3 3682 10 1356 8 170 18 4270 10 3389 3 1058 5 3403 6 3415 3 2613 8 4280 6 1058 13 4442 7 3735 6 4242 10 3403 12 4306 6 1503 13 2881 4 223 12 223 3 4316 10 2441 12 2831 14 4149 9 193 3 13 362 18 3312 4182 6 1270 13 4206 10 4182 9 1099 12 4153 9 903 12 1471 13 4232 10 1821 18 499 19 0 0 1997 3 1356 1 3325 6 3366 3 170 2 3338 6 1306 4 1306 1 3682 6 1356 4 170 12 2867 6 3692 4 1117 4 3692 6 3711 4 3711 10 2441 6 1691 14 4261 6 4252 6 1117 8 1306 12 4270 6 1997 14 3403 3 1058 9 223 2 3415 5 3338 9 3403 9 3735 4 3389 10 1839 6 3389 14 3366 10 3415 8 2867 14 2881 9 2881 2 1965 8 4326 9 223 18 2542 8 2853 14 1933 13 3312 3 331.2 4 3619 10 1270 13 1821 8 4182 9 1019 18 4158 9 3672 10 1471 13 4135 14 1821 18 1099 . 18 1997 1 3325 3 1691 3 170 1 1997 5 3338 3 1691 9 3682 4 1306 2 4242 6 170 6 2867 2 1997 8 1117 2 3692 9 1965 2 4432 7 2441 9 4432 10 3376 3 3682 10 3376 4 3325 13 4270 10 4252 9 1356 13 3403 6 223 . 1 3389 5 4280 6 1058 13 3366 5 3735 6 4242 10 3735 9 4306 6 1503 13 4280 9 1053 18 223 3 4316 6 223 6 2881 14 4326 6 611 13 2853 14 2827 12 3312 3 1270 8 3619 10 4206 6 1821 8 2064 14 1019 18 1471 3 3672 10 90 3 18 4135 14 3298 14 1099 18 1356 1 3325 6 1965 1 170 2 3338 6 1691 5 1306 1 3682 6 1356 2 3325 9 2867 6 170 3 2867 9 3692 6 1117 1 1965 6 2441 6 1691 14 3711 6 4252 6 1117 8 1306 8 4270 6 1997 14 1356 8 170 18 223 2 3 389 3 1053 5 3403 9 3415 3 2618 8 1839 • 6 3389 14 4442 7 3415 8 2867 14 3403 12 2881 2 1965 8 2081 4 22 3 12 2542 8 4316 10 2441 12 3298 8 2827 12 4153 6 1270 8 1099 8 4206 6 1821 13 2064 14 4232 6 1471 8 2839 14 903 18 3312 13 3298 14 117 24 1691 3 0 0 1997 3 3338 3 1691 9 3366 3 1306 2 4242 6 1306 4 2867 2 1997 8 1356 4 170 12 1965 2 3692 4 1117 4 4432 10 3711 4 3711 10 3376 4 3325 13 4261 6 4252 9 1356 13 1306 12 223 1 3389 5 3403 3 1058 9 3366 5 3415 5 3333 9 3735 9 3735 4 3389 10 4280 9 1058 18 3366 10 4316 6 223 6 2881 9 4326 6 611 13 4326 9 223 18 12590 12600 12610 12620 12630 12640 12650 12660 12670 12680 12690 12700 12710 12720 12730 12740 12750 12760 12770 12780 12790 12800 12810 12820 12830 12840 12850 12860 12870 12880 12890 12900 12910 12920 12930 12940 12950 12960 12970 12980 12990 13000 13010 13020 13030 13040 13050 13060 13070 13080 13090 13100 13110 13120 13130 13140 13150 13160 4335 6 1965 14 1839 8 1117 18 2542 14 3415 14 1356 18 1852 8 3782 4 4470 13 4566 10 3523 21 4014 14 3825 8 4505 14 3448 19 4626 10 4935 21 3908 21 754 36 4526 8 4903 16 3192 19 3544 24 3475 18 1621 31 3846 13 1852 26 3097 2 3 3158 24 3219 32 272 39 3865 5 4692 14' 4858 14 3568 27 4077 15 2780 19 33 3 8 28 2987 24 4363 18 2084 31 4280 26 1058 41 1439 32 3997 17 4526 19 235 3 30 4956 19 2383 32 2011 32 223 49 2578 24 2289 34 903 39 567 44 1535 36 6 4 5 3 4335 10 1117 12 1839 13 4306 10 611 19 3376 13 170 24 3763 4 3782 8 4761 13 3429 14 4491 8 3070 19 4505 8 1852 19 4387 16 2926 13 3251 23 1156 26 3846 5 4825 14 466 3 14 3192 27 4774 18 2954 24 2895 31 3846 19 3929 17 983 30 3884 24 715 39 2185 34 4692 10 4713 14 4545 21 4727 10 2618 21 3976 21 1234 36 3595 18 4053 24 1652 31 1789 32 2323 24 1195 39 4746 15 3042 28 4839 19 2 383 26 2441 32 942 41 4792 19 1965 32 2734 32 518 49 2542 36 820 44 117 53 1839 8 1117 18 4261 9 3415 14 1356 18 1306 18 1852 1 3763 8 4449 8 3763 19 4581 10 3782 12 4014 21 1852 12 4612 10 3825 21 4566 15 2926 2 3 4626 23 4649 10 3744 12 4449 21 4774 13 3711 24 2895 24 1400 39 4597 15 2473 23 3097 28 790 30 2185 26 321 41 4713 10 4692 21 3865 12 3810 15 3338 23 2501 28 4792 13 3595 24 3018 24 1652 39 2648 26 2323 30 362 41 3042 23 4872 15 2799 28 4206 26 223 41 864 30 2415 26 2578 30 674 41 2219 29 455 44 411 44 1 63 1839 13 4335 6 1965 14 3376 13 170 24 2542 14 1352 4 3744 8 4449 13 3810 5 3 523 14 4491 14 3070 27 4597 10 4612 14 4 5 0 5 21 2926 19 4626 15 3782 28 3 846 8 3692 19 4839 14 3544 18 3629 24 1400 31 4677 10 2043 21 3 929 21 983 36 3 9 5 0 26 1324 32 1878 41 4919 16 4545 8 3568 19 3976 17 2618 30 3865 19 4397 18 3499 24 1722 31 4727 19 1503 32 1933 32 362 49 4526 13 2799 23 1270 26 2 255 34 4182 24 864 39 4158 24 1117 39 1471 32 1753 36 1356 44 i 53 ' 0 0 4261 9 4335 10 1117 12 1306 13 4306 10 611 19 3744 4 3763 13 4470 8 3810 8 4581 16 3429 19 3825 5 3825 14 4811 14 3448 27 4935 17 3782 19 754 30 4649 14 4663 10 4470 21 4345 18 1691 31 3475 24 4677 15 3744 19 2473 28 3950 19 715 32 1878 32 272 49 3865 8 4545 14 3653 19 2501 23 2780 13 1234 26 3499 18 2987 31 4363 24 2682 24 2648 34 1156 39 4746 10 3125 21 2353 21 1270 36 4077 24 2129 32 1019 39 1535 32 2734 26 518 41 2219 36 170 53 630 44 0 0 75. IMPLICIT I N T E G E R S (A-Z) (C) ROUTINE THAT BUILDS AND UPDATES DIMENSION A ( 4 0 2 0 ) , E ( 3 6 , 4 7 8 ) THE MOVE EVALUATION TABLES DO 20 1=1,36 DO 20 J = l , 4 7 8 20 EI I , J ) = 0 DO 21 1=1,4008,12 K = I + l l 21 READ (4, 1212,END=90) I A U ) , J=I,K) 90 1 = 1 50 1=1+1 IF (1-473) 70,70,10 70 J=A(I> IF ( J . L E . O ) GO TO 50 80 Q=A(J)-9 R=I+2 E(Q,R)=A(J+1) J=J+2 IF ( A ( J ) ) 50,50,80 10 READ <5,14,END=1000) 8,C,D 14 FORMAT (314) IF ( B . L T . 4 9 ) GO TO 1C00 IF (8.GT.520) GO TO 1000 IF ( C . L T . 1 0 ) GO TO 1000 IF (C.GT.46) GO TO 1000 G=C-9 B=B-45 IF (D-2) 100,200,300 300 E ( G , 8 ) = E ( G , 8 ) - 2 E ( G , B - 1 ) = E ( G , B - 1 ) - 1 E(G,B+1)=E(G,B+1)-1 GO TO 10 200 E ( G , B - 3 ) = E ( G , B - 3 ) + l E(G,B-2)=E(G,B-2)+2 E ( G , B - l ) = E ( G , B - l ) + 3 E ( G , B + l ) = E ( G , B + l ) + 3 E(G,B+2)=E(G,B+2)+2 E(G,B+3)=E{G,8+3)+l E(G,B)=E(G,B)+4 GO TO 10 100 E ( G , B - 3 ) = E ( G , B - 3 ) - l E ( G , B - 2 ) = E ( G , B - 2 ) - 2 E { G , B - l ) = E ( G , B - l > - 4 E ( G , B + l ) = E ( G , B + l ) - 4 ElG,B+2)=E(G,B+2)-2 E ( G , B+3)=E( G,B+3 ) - l E ( G,B ) = £ { G,B)-3 GO TO 10 1000 1=4 J = 2 K = 474 A{2)=0 L = 0 1010 L=L+1 IF (L.GT.36) GO TO 1100 IF ( E ( L , I ) ) 1015,1010,1015 1015 IF ( A ( J ) ) 1030,1020,1030 1020 A U ) = K 1030 A(K)=L+9 A ( K + 1 ) = E ( L , I ) K=K+2 GO TO 1010 1100 IF ( A ( K - l ) ) 1110,1120,1110 1110 A(K)=0 K = K+1 1120 IF (J.GT.4-72) GO TO 1200 1 = 1 + 1 J = J + 1 L=0 A { J) = 0 GO TO 1010 1200 A(1)=K 1210 WRITE (6,1212) A 1212 FORMAT (1216) WRITE (7,1215) A ( l ) 1215 FORMAT (16H ARRAY SIZE NOW STOP END (D) THE MOVE EVALUATION LISTS 1 3436 474 485 496 511 526 539 552 569 586 2 603 616 627 638 649 664 683 700 713 724 3 735 744 753 764 773 780 787 798 . 811 826 4 839 852 865 880 891 902 909 916 923 930 5 937 946 957 968 981 994 1007 1020 1035 1050 6 1065 1084 1105 1124 1141 1154 1167 1176 1185 1192 7 1201 1212 1225 1236 12 47 1258 12 69 1280 1289 1296 3 1303 1312 1321 1330 1337 1344 1353 1362 1371 1378 9 1385 1394 1405 1416 1423 1428 14 37 1444 1451 1456 10 1461 1470 1479 1484 1487 1490 1495 1504 1515 1526 11 1537 1548 1561 1572 1585 1594 1505 1616 1625 1630 12 1637 1644 1649 1654 1663 1672 1681 1694 1707 1718 13 1727 1736 1747 1760 1773 1786 1797 1808 1819 1328 14 1835 1842 1849 1860 1871 1882 1893 1904 1913 1922 15 1931 1942 1957 1974 1989 2004 2015 2026 2037 2046 16 2053 2060 2065 2068 2073 2076 ' 2079 2082 2085 2088 17 2093 2100 2107 2114 2119 2124 2129 2138 2147 2156 18 2165 2174 2183 2192 2197 2200 2203 0 2206 2209 19 2216 2223 2230 2239 2248 2259 2270 2279 2286 2293 20 2302 2311 2320 2327 2334 2341 2348 2353 2358 2363 21 2368 2375 2380 2383 2386 2391 2396 2401 2404 2409 22 2414 2419 2428 2437 2448 2461 2472 2433 2492 2497 23 0 2500 2505 2510 2515 2520 2525 2530 0 2535 24 2538 2545 2552 2559 2566 2577 2590 2601 2610 2619 25 2630 2639 2644 2649 2654 2659 2664 0 2667 2672 26 2677 2632 2687 2692 2699 2706 2715 2726 2735 2746 27 2753 2762 2771 2776 2781 0 0 2786 2789 2792 28 0 2795 2798 2801 2806 2311 2816 2319 0 0 29 2822 2825 2828 2833 2838 2845 2854 2863 2870 2879 30 2886 2893 2896 2901 2908 2915 2918 2921 2924 2929 31 2936 2943 2950 2955 2958 0 0 0 0 0 32 0 2961 2964 2969 2974 2983 2990 29 97 3002 3005 33 3008 0 0 0 0 0 3011 3014 3019 3024 34 3029 3032 0 0 0 0 3035 3038 3043 3048 35 3053 3056 3059 3062 3065 3068 3071 3074 3077 3080 36 3083 3086 3089 0 0 0 3092 3095 3102 3109 37 0 3114 3117 3122 3127 0 0 3130 3133 3136 38 0 0 0 0 0 0 3139 3142 3145 0 39 3148 3151 3156 3161 3166 3171 0 0 0 0 40 0 0 0 0 "0 0 0 0 3176 3179 41 3182 3135 3190 3197 3204 0 0 0 0 3209 42 3214 3219 3226 3229 3232 32 3 7 3242 3249 3256 3263 43 3268 0 0 3273 3276 3279 3282 3285 3288 0 44 0 0 0 0 3291 3294 3297 0 0 0 45 3300 3303 3306 0 0 33 09 3314 3319 33 24 3329 46 3336 33 43 3352 3355 3353 3361 3366 3373 3380 3385 47 3390 3395 0 0 0 3400 3403 3406 3409 3414 48 3419 3424 3431 12 -1 14 -12 15 2 16 49 -4 18 -8 0 12 -2 14 -12 15 1 50 16 -8 18 -4 0 10 _ i -A. 12 -5 14 51 -6 15 -3 16 -5 17 -2 18 -2 0 52 10 -2 12 -10 14 -4 15 -10 16 -4 53 17 -4 18 -1 0 10 -4 12 -8 14 54 -3 15 -11 16 -5 17 -8 0 10 -8 55 12 -10 14 -4 15 -6 16 -8 17 -16 56 0 10 -5 12 -5 13 -1 14 -8 15 57 -3 16 -4 17 -8 19 -1 0 10 -4 58 12 -2 13 -2 14 -4 15 -1 16 -2 59 17 -4 19 -2 0 10 -5 12 -1 13 78. 60 -4 14 -2 16 -1 17 -2 19 -4 20 61 -1 0 10 -8 13 -8 14 -1 18 -1 62 19 -9 20 -2 0 10 -4 13 -4 18 63 -2 19 -6. 20 -4 0 10. -3 13 -2 64 18 -4 19 -6 20 -8 0 10 -3 13 65 -2 18 -8 19 -9 20 -4 0 10 -4 66 1.3 -2 14 1 16 2 18 -4 19 -4 67 20 -2 0 10 -8 13 -4 14 2 16- 68 4 17 1 18 -2 19 -2 20 - I 22 69 1 0 10 . -4 13 -8 14 3 16 6 70 17 1 18 -1 19 -1 22 2 0 10 71 -2 13 -4 14 4 16 8 17 1 22 72 4 0 10 -1 13 -2 14 3 16 6 73 22 6 0 13 -1 14 2 16 4 17 74 -5 22 6 0 14 I 16 2 17 -2 75 22 6 0 16 -1 17 -1 20 1 22 76 4 0 10 -1 16 -2 17 -1 20 2 77 22 2 0 10 -2 16 -5 20 3 22 78 1 0 10 -4 16 -10 20 4 0 10 79 -8 16 -8 20 3 0 10 -4 15 - I 80 16 -10 20 2 21 1 0 10 -2 15 81 -2 16 -5 17 -1 20 1 ! 21 2 0 82 10 -1 13 -1 14 -1 15 -4 16 -2 83 17 -2 21 3 0 13 -2 14 -2 15 84 -8 16 -1 17 -4 21 4 0 13 -4 85 14 -4 15 -4 16 - 1 17 -8 21 3 86 0 13 -8 14 -8 15 -2 16 -2 17 87 -4 21 2 0 10 -1 13 -4 14 -4 88 15 -1 16 -4 17 -2 21 1 0 10 89 -2 13 -2 14 -2 16 -8 17 -1 0 90 10 -4 13 -1 14 -1 15 -2 16 -4 91 0 10 -8 15 -4 16 -3 0 10 -4 92 15 -8 16 -3 0 10 -2 15 -16 16 93 -4 0 10 -1 15 -9 16 -8 0 15 94 -6 16 -4 23 -2 0 13 -1 15 -7 95 16 -3 23 -4 0 13 -2 15 -10 16 96 -3 23 -8 25 1 0 13 -4 15 -8 97 16 -4 23 -16 25 2 0 12 -1 13 98 -8 15 -10 16 -8 23 -3 25 3 0 99 12 -2 13 -4 15 -5 16 -4 23 -4 100 25 4 0 12 -4 13 -2 15 -3 16 101 -2 23 -2 25 3 0 12 -8 13 -1 102 15 -3 16 -1 25 2 31 -1 0 10 103 -1 12 -4 15 -4 23 1 24 1 25 104 1 31 -2 0 10 -2 12 -2 15 -8 105 22 1 23 2 24 2 31 -4 0 10 106 -4 12 -1 15 -4 22 1 23 3 24 107 4 31 -8 0 10 -8 15 -2 18 -1 108 20 -1 21 - I 22 -1 23 4 24 6 109 31 -4 0 10 -4 13 -1 15 - i 18 110 -2 20 -2 21 -2 22 4 23 3 24 111 6 31 -2 0 10 -2 13 -2 18 -4 112 20 -3 21 -4 22 5 23 2 24 6 113 31 -1 0 10 -1 13 -4 18 -8 20 114 -6 21 -8 22 7 23 1 24 4 0 115 13 -8 18 -4 20 -1 21 -4 22 9 116 24 2 0 13 -4 18 -2 20 I 21 117 -2 22 6 24 1 0 13 -2 18 -1 118 21 -1 22 4 0 13 -1 20 -2 21 119 1 22 2 0 20 -7 21 2 22 1 .12 0 0 20 -4 21 3 22 2 23 -1 0 121 20 -2 21 4 22 3 23 -2 26 -1 122 0 12 1 20 -1 21 3 22 4 23 123 -4 26 -2 0 12 2 21 1 22 3 124 23 -8 26 -1 0 12 3 15 -1 21 125 -1 22 2 23 -3 0 12 4 15 -2 126 20 -1 21 -4 22 I 0 12 3 15 127 -4 20 -4 21 -8 23 2 0 12 2 128 15 -8 20 -1 21 -4 23 4 0 12 129 1 15 -5 21 -2 23 3 0 15 -4 130 21 -1 23 2 0 . 15 -5 17 -1 23 131 1 0 14 -2 15 -8 17 -2 22 -1 132 0 14 -4 15 -4 17 -4 22 -4 0 133 14 -8 15 -3 17 -8 22 -1 0 14 134 -16 15 -3 17 -4 0 14 -8 15 -4 135 17 -2 0 14 -4 15-... -8 17 -1 21 136 -1 0 14 -2 15 -4 "°- 21 -2 23 1 137 0 15 -2 16 -1 21 -1 23 2 0 138 15 -1 16 -2 23 3 0 16 -4 19 139 -1 23 4 0 16 -8 19 -2 23 3 140 32 -1 0 16 -4 17 -1 19 -4 23 141 2 32 -2 0 16 -2 17 -2 19 -8 142 23 1 32 -1 0 16 -1 17 -4 19 143 -4 0 17 -8 19 -2 0 17 -4 19 144 -1 20 1 27 1 0 17 -2 20 2 145 27 2 0 17 -1 20 3 27 3 0 146 20 4 27 4 0 20 3 27 3 0 147 18 -1 20 2 27 2 28 -1 0 18 148 -2 20 1 27 1 28 -2 0 18 -4 149 28 -1 0 18 -8 0 18 -4 0 13 150 -1 18 -2 0 13 -2 18 -1 21 1 151 26 -1 0 13 -4 21 2 24 1 26 152 -2 32 I 0 13 -8 21 3 24 2 153 26 -1 32 2 0 13 -4 19 -1 21 154 4 24 3 32 3 0 13 -2 19 -2 155 21 3 24 3 32 4 0 13 -1 19 156 -4 21 1 24 I 28 1 32 3 0 157 19 -8 21 -1 24 -2 28 2 32 2 158 0 19 -3 20 1 21 -4 24 -7 28 159 3 32 I 0 20 2 21 -8 24 -4 160 28 4 0 19 2 20 3 21 -4 24 161 -2 28 3 0 19 4 20 4 21 -2 162 24 -1 28 2 0 19 3 20 2 21 163 -1 28 I 0 19 2 25 -1 0 19 164 1 20 -3 25 -2 0 20 -8 25 - I 165 27 1 JL 0 20 -3 27 2 0 27 3 166 30 2 0 20 2 23 -1 27 4 30 167 4 0 20 4 23 -2 27 3 30 6 168 0 20 3 23 -4 27 2 30 8 0 169 19 -1 20 2 22 -1 23 -8 27 1 170 30 6 0 19 -2 20 1 22 -2 23 171 -5 30 4 31 1 0 19 -4 22 -4 172 23 -5 30 2 31 2 0 19 -8 22 173 -8 23 -7 31 3 0 19 -4 22 -4 174 23 -12 31 4 0 19 -2 22 -2 23 175 -12 29 1 31 3 0 19 -1 22 -1 176 23 -6 25 1 29 2 31 3 0 23 177 -3 24 1 25 2 27 , 1 29 3 31 178 3 0 23 -1 24 2 25 4 27 2 179 29 4 31 3 0 24 3 25 6 27 180 3 29 3 31 4 0 24 4 25 6 131 27 4 29 2 31 3 0 24 3 25 182 6 27 3 29 1 31 2 0 24 2 183 25 4 27 2 31 i 0 24 1 25 184 2 27 1 0 15 -1 18 -1 25 1 185 0 15 -2 18 -2 19 1 0 15 -4 185 18 -4 19 2 20 -1 27 1 0 15 187 -8 18 -8 19 3 20 -1 27 2 0 183 15 -4 18 -4 19 4 20 -2 27 3 189 0 15 -2 18 -2 19 3 20 -5 27 190 4 0 15 -1 18 -1 19 2 21 1 191 27 3 0 19 1 20 1 21 2 27 192 3 0 16 -1 20 1 21 3 27 3 193 0 16 -2 20 1 21 4 27 3 0 194 16 -4 21 3 23 1 27 4 31 I 195 0 16 -8 21 2 22 -1 23 2 24 196 -1 27 3 31 2 0 16 -4 21 1 197 22 -2 23 3 24 -2 26 1 27 1 198 31 2 0 16 -2 22 -4 23 4 24 199 -4 26 2 27 -1 31 2 0 16 -1 200 22 -8 23 3 24 -8 26 3 27 -1 201 31 -1 0 22 -4 23 2 24 -4 26 202 5 31 -6 0 22 -2 23 1 24 -2 203 26 5 31 -3 0 17 -1 22 -1 24 204 -1 26 5 31 -2 0 17 -2 26 5 205 30 -1 31 -1 0 17 -4 26 3 30 206 -2 0 17 -8 26 2 30 -1 0 17 207 -4 26 1 0 17 -2 0 17 -1 31 208 -1 0 31 -2 0 31 -4 0 31 -8 209 0 31 -4 0 31 -2 0 21 1 31 210 -1 0 21 2 25 1 28 - I 0 21 211 3 25 2 28 -2 0 21 3 25 3 212 28 -1 0 21 1 25 4 0 21 -2 213 25 3 0 21 -7 25 2 0 21 -4 214 25 1 26 -1 30 1 0 21 -2 24 215 -1 26 -2 30 2 0 21 -1 24 -2 216 26 -4 30 3 0 23 1 24 -4 26 217 -8 30 4 0 23 2 24 -8 26 -4 218 30 3 0 23 3 24 -4 26 -2 30 219 2 0 23 4 24 -2 26 -1 30 1 220 0 23 3 24 -1 0 23 2 0 23 221 1 0 22 1 0 22 1 0 20 1 222 27 1 28 1 0 20 2 27 2 28 223 2 0 20 3 27 3 28 3 0 20 224 4 27 4 28 4 31 - I 0 20 3 225 27 3 28 2 31 -2 0 20 2 27 226 2 28 -1 . 31 -1 32 -1 0 20 1 227 27 1 28 -5 32 -2 40 1 0 25 223 -1 28 -9 32 -1 40 2 0 25 -2 229 28 -5 40 3 0 25 -1 28 -4 40 230 4 0 22 1 23 -1 28 -5 40 3 231 0 22 2 23 -2 28 -8 40 2 0 232 22 *3 23 -4 28 -4 40 I 0 22 233 4 23 -7 28 -2 0 22 3 23 -2 234 28 -1 0 22 2 23 1 30 I 0 235 22 1 23 3 30 2 0 23 3 30 2 36 3 0 23 30 4 0 23 1 30 237 3 0 25 -1 30 2 0 21 1 25 238 -2 30 1 0 21 2 25 -1 0 21 239 3 0 21 4 0 21 3 29 -1 0 o x . 240 21 2 29 -2 0 21 1 29 -1 0 241 31 -1 0 26 -1 31 -2 0 26 -2 242 31 -1 0 26 -4 32 -1 0 26 -8 243 27 L 30 1 32 -2. 0 26 -4 27 244 2 30 2 32 -3 0 22 1 26 -2 245 27 3 30 3 32 — Q 0 22 2 26 246 -1 27 4 30 4 32 -1 40 -1 0 247 22 3 27 3 30 3 32 2 40 -2 248 0 22 4 27 2 30 2 32 2 40 2 49 -1 0 22 3 27 1 30 I 32 2 250 0 22 2 32 1 0 22 1 0 24 251 -1 27 -1 0 24 -2 27 -2 0 24 252 -4 27 -4 0 24 -8 27 -8 0 24 253 -4 27 -4 0 24 -2 27 -2 0 24 254 -1 27 -1 0 25 1 0 24 1 25 255 2 27 1 0 24 2 25 3 27 2 256 0 24 3 25 4 27 3 0 24 4 257 25 3 27 4 0 22 1 24 3 25 258 2 27 3 30 1 0 22 2 24 2 259 25 1 27 2 29 -1 30 2 0 22 260 3 24 1 27 1 29 -2 30 3 0 261 22 4 28 -1 29 -1 30 4 0 22 262 3 27 -1 28 -2 30 3 0 22 2 263 24 -1 27 -2 28 -1 30 2 0 22 264 1 24 -3 27 -1 30 1 0 24 -8 265 43 -1 0 24 -9 43 -2 0 24 -4 266 43 -1 0 24 -2 31 -1 0 24 -1 267 31 -2 0 31 -1 0 27 1 28 -1 268 0 27 2 28 -2 0 27 3 28 -1 269 0 27 4 29 -1 0 27 3 29 -2 270 0 27 2 28 -1 29 -1 0 26 -1 271 27 1 23 -2 0 2 3 1 26 -2 28 272 -1 31 1 0 23 2 26 -1 27 -1 273 29 -2 31 2 0 23 3 27 -2 29 274 -4 31 3 0 23 4 27 -1 29 -2 275 30 1 31 4 0 23 3 30 2 31 276 3 0 23 2 28 -1 30 3 31 2 277 0 23 1 28 -2 30 4 31 1 0 278 28 -2 30 3 0 28 -2 30 2 0 279 28 -1 30 1 0 32 -1 0 32 -2 280 0 32 -1 0 31 1 0 31 2 0 281 21 -1 31 3 0 21 -2 31 4 0 282 21 -1 31 3 0 31 2 0 31 1 283 0 29 .1 0 29 2 0 29 3 30 284 1 0 29 4 30 2 0 26 1 29 285 3 30 3 0 26 2 29 2 30 4 236 32 -1 0 26 3 29 i 30 3 32 287 -2 0 26 4 30 2 32 -1 0 2 5 288 -1 26 3 28 -1 30 I 0 25 -2 2 89 26 2 28 -2 0 25 -4 26 1 28 290 -1 0 25 -8 0 25 -4 30 -I 0 291 25 -2 30 -2 35 -1 0 25 -1 30 292 -1 35 -2 0 35 -1 0 26 1 0 293 26 2 0 26 3 31 I 0 26 4 294 31 2 39 -1 0 26 3 31 3 39 295 -2 0 26 2 31 4 39 -1 0 26 2 96 1 31 3 0 31 2 0 31 1 0 297 39 1 0 26 -1 39 2 0 26 -2 298 39 3 0 25 1 26 -1 39 4 41 299 -1 0 25 2 39 3 41 -2 0 25 300 3 39 2 41 -1 0 25 4 39 1 30L 0 25 3 0 25 2 0 25 L 0 302 39 -1 0 31 -1 39 -2 0 31 -2 303 39 -1 0 31 -1 36 -1 0 36 -2 304 0 36 -1 0 36 1 0 29 -1 36 305 2 0 29 -2 36 3 0 29 -1 36 306 4 0 36 3 0 36 2 0 36 1 307 0 29 1 0 29 2 0 29 3 0 308 29 5 0 29 5 0 29 5 0 29 309 5 0 29 3 0 29 2 0 29 I 310 0 34 -1 0 30 -1 34 -2 38 -1 311 0 30 -2 34 -1 38 -2 0 30 -1 312 38 -1 0 34 -1 0 34 -2 42 -1 313 0 34 -1 42 -2 0 42 -1 0 38 314 -1 0 38 -2 0 38 -1 0 41 -1 315 0 41 -2 0 41 -1 0 29 -1 0 316 29 -2 32 -1 0 29 -1 32 -3 0 317 32 -4 41 -1 0 32 -3 41 -2 0 318 32 -1 41 -1 0 33 1 0 33 2 319 0 33 3 0 33 4 37 -1 0 33 320 3 37 -2 41 -1 0 33 2 37 -1 321 41 -2 0 33 1 41 - I 0 33 -1 322 37 -1 0 33 -2 37 -2 0 31 -1 323 33 -1 37 -1 0 31 -2 0 31 -1 324 0 30 1 33 1 0 30 2 33 2 325 0 26 -1 30 3 33 3 0 26 -2 326 30 4 33 4 0 26 - I 30 3 33 327 3 0 30 2 33 2 0 30 1 33 328 1 0 38 -1 0 38 -2 0 38 - i 329 0 36 -I 0 36 -2 0 36 -1 0 330 34 -1 0 34 -2 0 34 -1 0 29 331 -1 0 29 -2 0 29 -1 0 34 1 332 41 1 0 34 2 41 2 0 34 3 333 41 3 0 34 4 41 4 0 30 -1 334 34 3 41 3 0 30 -2 34 2 41 335 2 0 30 -1 32 I 34 1 41 1 336 0 32 2 0 32 3 0 32 4 0 337 31 1 32 3 0 31 2 32 2 36 338 -1 0 31 3 32 1 36 -2 0 31 339 4 36 -1 0 31 3 36 -1 0 31 340 2 36 -2 0 31 1 36 - I 0 37 341 1 0 37 2 0 37 3 0 30 1 342 37 4 0 30 2 37 3 0 30 3 343 37 2 0 30 4 37 1 38 - I 0 344 30 3 38 -2 0 -2 0 31 1 36 345 -1 0 0 0 0 37 1 0 37 2 346 0 37 3 0 30 1 3 7 4 0 30 347 2 37 3 0 30 3 37 2 0 30 348 4 37 1 38 -1 0 30 3 33 -2 349 0 0 0 0 0 0 0 0 0 0 350 0 0 0 0 0 0 0 0 0 0 351 0 0 0 0 0 0 0 0 0 0 352 0 0 0 0 0 0 0 0 0 0 353 0 0 0 0 0 0 0 0 0 0 354 0 0 0 0 0 0 0 0 0 0 355 0 0 0 0 0 0 0 0 0 0 356 0 0 0 0 0 0 0 0 0 0 357 0 0 0 0 0 0 0 0 0 0 358 0 • 0 0 0 0 0 o . 0 0 0 359 0 0 0 0 0 0 0 0 0 0 (E> SAMPLE GAMES 6 0 6 10 0 0 0 1 0 0 1 YOUR MOVE 'w» 1 8 Y 2 29 1507 53 YOUR MOVE * J  1  2 21 NO FIT IT IS STILL YOUR MOVE 1 i « 1 25 F h 10 668 h5 YOUR MOVE •u' 2 k9 P k 59 283 26 YOUR MOVE ' 1 * 6 25 8 V 2 3 1 * k9 13 1 WIN f V 1> 3 1 0 0 0 0 0 0 - M v v :v- : U.:-/.U' 0 y;jo o \///77A V 0 0 0 0 0 P/P- P R.P. INPUT NEW GAME SPECS GO 6 1.0 0 0 0 100 11 YOUR MOVE 'v' 3 6 F 1 3 3 1698 51 YOUR MOVE ' 1 * 8 35 P k 21 518 hO YOUR MOVE 'u' 3 2 I 2 51 173 2k YOUR MOVE * t * 3 46 23 Y 8 25 YOUR MOVE 'n 1  1 17 YOU WIN O O O O O O INPUT NEW GAME SPECS INPUT NEW GAME SPECS 60 6 10 0 0 0 100 12 T 12 2056 60 YOUR MOVE ' p 1 4 2 3 44 1070 48 YOUR MOVE •vv* 2 9 40 370 32 YOUR MOVE •u'. 4 53 30 V 1 WIN 25 42 10 o ojSllofi O ;̂ vW-.kT\\T-i OVi 0 0 \W/f0, •8 O OfN/VW'IO O 0 0 •F ' 0 N: ;.N ' N F F i.u;y:-o 0 0 ! U ; 0 o o o r u ^ t t i o INPUT NEW GAME SPECS INPUT NEW GAME SPECS 5 0 5 10 0 0.0 100 12 1 31 2 056 o u YOUR MOVE. 1 t* 5 2 2 8 2k 716 kS YOUR MOVE »x' 1 8 1' ko k50 2 YOUR MOVE 'y' 5 5 9k N 7 3k k5 22 YOUR MOVE •v' 1 55 U k 5k I .WIN" '/• •///////,<- o m o P§ o ;1>; O O t-;P/P ; M>-N : L L i t :.;pi o o . F : o ' Cy |o,h-'F ;u LV'l o O::F- o :'IK! ;.y>y vy- o:;u ;u. i IMPUT MEW GAME SPECS $.end THANK YOU AMD BYE-BYE ;  EXE CUT iON TERM I NATED

Cite

Citation Scheme:

    

Usage Statistics

Country Views Downloads
United States 3 2
China 2 58
City Views Downloads
Sunnyvale 2 0
Beijing 2 0
Ashburn 1 0

{[{ mDataHeader[type] }]} {[{ month[type] }]} {[{ tData[type] }]}

Share

Share to:

Comment

Related Items