O p @  @`! #@%`')- @  @`! #@%`')-QFLIPPER DOC M!sFLIPPER PRG %!FLIPPER RSC !+6  $Flipper #= Flipper is an Othello game that I wrote to play around with the minimax algorithm for searching game trees. To play a game against the computer, select New Game from the File menu. The human player goes first, playing black. To make the computer go first and play black instead, select Swap Sides from the Options menu. To make a move, click on the square where you want your piece. If no moves are possible, click in the Pass box to the right of the board. The game can be changed between '1 Player' ( against the computer), '2 Player', and 'Set Up Board' at any time. The computer can be forced to play against itself by selecting Swap Sides after every move. '1 Player' is for playing against the computer. Selecting Swap Sides will change colours and scores with the computer at any time. The parameters for selecting computer moves can be set by selecting 'Set Search' or 'Set Evaluation' (described below). Pressing the ESC key when the computer is searching for a move will force it to take the best one it has found so far. '2 Player' is for playing a game between 2 human players. Swap Sides is disabled in this mode. 'Set Up Board' is for placing and changing pieces on the board. Clicking on a square will place a piece of the current player's colour there. To place a piece of the other colour, select Swap Sides. Pressing the ESC key will clear the board. The computer finds moves by using the minimax algorithm. Roughly, the algorithm generates a list of possible moves, then considers possible countermoves to each of these, then possible moves after each countermove, and so on. This builds up a tree structure with each node being a board position and moves being branches to the next lower level. To decide which move to take, the board positions at the lowest level of the tree are evaluated by a board position evaluation function that determines how likely a given position is to lead to a win. These evaluations are passed up to the previous level where they are used to evaluate the move at that level. At levels where the computer is moving, the maximum is used. When the opponent is moving, the minimum is used. When the top of the tree is reached, the computer knows which move to make. 'Set Search' brings up a dialog box that lets you enter the search depth and width. The search depth is the number of levels of the game tree to generate (number of moves to look ahead). The search width limits the branching factor of the tree. It sets the maximum number of new moves that are generated at each node. Larger depths and widths make the computer play a better game, but it takes more time for each move. 'Set Evaluation' brings up a dialog box that lets you change the parameters for the board evaluation function. The parameters that can be changed are: how much to add for each computer's piece, how much to add for each computer's piece on an edge, how much to add for each computer's piece in a corner, how much to subtract for each opponent's piece, how much to subtract for each computer's piece one away from an edge, and how much to subtract for each computer's piece one away from a corner. This can be used to fine tune the way the computer plays. Greg Lobe `NN GEMXModula-2/ST (c) Copyright TDI Software Ltd. 1985, 1986. The team : Chris Hall, Paul Curtis, and Phil Camp .[3][Modula-2 Run Time Error : | | #][OK]NVN^NuNV?<Hy N\?<7HyN\?<2HyHN\N^Nu _b ШNYN"pNGNuNV*x ڄ=E*P-E@-M-VNh-H:. Eg :. Ef-n*.P-ENH:. Ef Nh-hN2:. Ef BBN:. E e Nh-PN-n IV8B,)n9n)n )n)n)n|.n 9R/@>,VNhYN`NsN^NuNVBn ncN:.EIBtP ndRn`I* -EI* -EI* -EI* -EI* -Ez-E=| Bn=|BnBn <I* "NB=|N=|=|=|Bn=|z-E <I* "NB=|4=|=|=|Bn=|(mI* -E <I* "NB=|Bn=|BnBn <I* "NBN pL?NAN^NuNV/-+NI|Gz+WBn:.IJ4PgRn`=yV:. E d:.I0PN(z0x8.  HDE:.IPRnz0x8. HDE:.IPRnIGzWBn:.I8.nGP@Rn:.IJ4Pg`N+_N^Nu OAbrpNGNurpNGNV-|T*.f *. drpNG-n nBBB!.B"H$!.!.@ .PPB! 4"n "N^NuNFNuF'/NNn-/=-/H"Q ,IL?/^>/^Nf,oNsNENuF'/NNn-/=-/H"Q G*- =/^Nf,oNs/NNn-/=/-/H _"h$",HL?/^>/^Nf,oNsF'SSfWWNsSf>NsSfF NsSfNqNsSf NNsNhBBB 9!B*H$C! `N <L?NAN`WNs*x b "T@NGNuNNuNVH|".$. &(*HDHEHABBمCمHABBBCHBHCԃԄ-A -BL>N^NuNVHx". $.bBCh8BAHA62HC6BAHA`B6HCBAHA8<㑲eRCQ-C -ALN^NuNVH".$. &(*,BHDHEHABهCهHABBBCHBHCԃԄHEJjJj-A -BLN^Nu ./,/[JjDJ[jD |XNJgDJgD/NuNVH(. ,. dF<gBEVBBGVB0G|b.f ؆dRE`kgb|HDkSEjؼdREBJfBEJEnB`|mpN-D LN^Nu |VoNNVH(. ,..HD:|glM||HF>|gXO||G|~mF H@HFB@H@2Ё"HAHFЁHD؀kSEؼdREJEk|m pNB` -D LN^NuNVH(. ,..BGg^<BEgV<✚G|HF⌈0BDHD8 H@∀HDkSEؼdREJEk|m pNB` -D LN^NuNVH . $j ļfB".$j ļfBLN^NuNVH .$ļfBJLN^NuNVH .g*2<bH@|bQAU-@LN^NuNVH .j g` BA<☒|lB`|DAlpN⨰b-@LN^NuNVpNN^NuNVpNN^NuNVpNN^NuNVpNN^NuNVpNN^NuNVpNN^NuNVpNN^NuNVpNN^NuF'pNNsF'pNNsF'pNNsF'pNNsF'pNNsF'pNNsF'pNNsNV . /2.??<NM*-E:. E b:.EI)PN:.E EI)PN^NuNV/9?<N B\/9?<N B\/9?<N B\/9?<N B\/9?<N B\/9?<N B\/9?<'N B\/9?<&N B\/9?<%N B\N^NuNqNqNq O h*#N(yN# ( ШШ(y*,Ѕ.@//??<JNA (yN*,ڬ ڬڬ#/< ?<N B\/< ?<N B\/< ?<N B\/< ?<N B\/< &?<N B\/< 4?<N B\/<?<'N B\/<?<&N B\/<?<%N B\#HRpNGNNVI889n9n 9n 9n <I* "NB3d=yN^NuNV3 B3DN^NuNV3 B3 D3FN^NuNV3B3 D3 F3HN^NuNV3B3D3F3H3J3 L3 N3PN^NuNV(n 8f(n8hN^NuNV(n8f(n8h(n 8j(n8lN^NuN BNVIB BBBBIG8* (G* )EGB* )EGd* )E Gt* )EG* )EN^NlNVps"9NBN^NuNV333 3 3N^NuNNVI* #I* #I* #I* #I* #####I* #N^NNVBg?< Bg?<BgBgN jO =_N^NuNV?.?. N X#tBg?< ?<?<?<BgN jO 3N^NuNV?.?. N X#tBg?< ?<?<?<BgN jO 3N^NuNV(n* #tBg?< Bg?<?<BgN jO =_N^NuNV?. ?.N X# tBg?<?<?<?<BgN jO 3N^NuNV3B# tBg?<?<?<?<BgN jO 3N^NuNVBg?<Bg?<BgBgN jO 3N^NuNfNVN^NNVBg?<Bg?<BgBgN jO =_N^NuNV?.?.?.N \Bg?<?<?<BgBgN jO =_(nHT(nHT(n HT(nHTN|O=nN^NuNV?. ?.?.?.N P3JBg?<?<?<BgBgN jO 3(nHT(nHT(n HT(nHTN|ON^NuNV#tBg?<Bg?<?<BgN jO 3N^NuNV?. ?.N XBg?<?<?<BgBgN jO 3N^NuNV3BB3@D3>F3<H3:J38L36N34P32R30T3.V3,X3*Z3(\3"^3 `#$tBg?<?<?<?<BgN jO =_(nHT(nHT(nHT(nHTN|O(n 8n(n8p=nDN^NuNV?. ?.N XBg?<?<?<BgBgN jO =_ N^NuN~NVN^NNV3B# tBg?<2?<?<?<BgN jO =_N^NuNV?.?.?.?.?.?.?. ?. NO3RBg?<3?< ?<BgBgN jO 3N^NuNV3B(n* #tBg?<4?<?<?<BgN jO =_N^NuNV3DBg?<5?<?<BgBgN jO =_ N^NuNV#tBg?<6Bg?<?<BgN jO 3(nHT(nHT(n HT(nHTN|ON^NuNV#t# xBg?<ZBg?<?<BgN jO 3(n8fN^NuNNVN^NNV?.?.?.?.N PBg?<F?<?<BgBgN jO 3(n HT(nHTN`PN^NuNV?.?.?.?.?.?.?.?.NOBg?<G?<?<BgBgN jO 3(n HT(nHTN`PN^NuNV?.?.?.?. N P3 J3LBg?<H?<?<BgBgN jO 3N^NuNV?.?.?.?.?.?. ?. ?.NOBg?<I?<?<BgBgN jO 3N^NuNV?.?.?.?.?.?. ?. ?.NOBg?<J?<?<BgBgN jO 3N^NuNVBg?. ?. ?.N P#tBg?<K?<?<?<BgN jO =_N^NuNV?. ?. N X3F#tBg?<L?<?<?<BgN jO =_N^NuNVBg?<MBg?<BgBgN jO =_(nHT(nHT(n HT(nHTN|O=nN^NuNV3 B#tBg?<N?<?<?<BgN jO 3N^NuNVBg?<OBg?<BgBgN jO 3(nHT(nHT(n HT(nHTN|ON^NuNNVN^NNV3B# tBg?<?<?<?<BgN jO 3N^NuNV?. ?.N X# tBg?<?<?<?<BgN jO 3N^NuNV?. ?.N X# tBg?< ?<?<?<BgN jO 3N^NuNV?. ?.N X# tBg?<!?<?<?<BgN jO 3N^NuNV3 B#t#xBg?<"?<?<?<BgN jO 3N^NuNV3B(n* #tBg?<#?<?<?<BgN jO =_N^NuNNVN^NNV(n* #tBg?<nBg?<?<BgN jO 3N^NuNVBg?<oBg?<BgBgN jO 3N^NuNV?.?. N XBg?<p?<?<Bg?<N jO 3(n(N^NuNV?.?. N X#tBg?<q?<?<?<BgN jO 3N^NuNV3B# tBg?<r?<?<?<BgN jO 3N^NuNNVN^NbNV?.?.?. ?. N P3JBg?<d?<?<BgBgN jO =_N^NuNV?.?.?. ?. N P3JBg?<e?<?<BgBgN jO 3N^NuNV3BBg?<f?<?<BgBgN jO 3N^NuNV3BBg?<g?<?<BgBgN jO 3N^NuNV?.?.N XBg?<h?<?<BgBgN jO 3(nHT(nHT(n HT(nHTN|ON^NuNV?.?.?.?. N P3 J3LBg?<i?<?<BgBgN jO 3N^NuNV?. ?.N XBg?<j?<?<BgBgN jO =_ N^NuNV3BBg?<k?<?<BgBgN jO 3N^NuNV?."?. ?.?.N P3J3LBg?<l?<?<BgBgN jO 3(nHT(nHT(n HT(nHTN|ON^NuNNVN^N!NV?<BgBgBg(n ?N6O By y oN4:9E(n89DG7P@ y lRy`N$(n 8By y,oN4:9EI89D&n7P@ y,lRy`3- y8oN8:9E-EI89D&n7P@ y8lRy`N^NuNV?<BgBgBg?.N6O N$N^NuNV?<dBg?< Bg(n ?N6O By y oN4:9E(n89DG7P@ y lRy`N$By y,oN4:9EI89D&n7P@ y,lRy`3- y8oN8:9E-EI89D&n7P@ y8lRy`(n 8N^NuNV?<eBgBgBg?.N6O N$N^NuNV?<BgBgBg?.N6O N$N^NuNV?<BgBgBg?.N6O N$N^NuNV?<wBg?<Bg?. N6O N$NV?<xBg?<Bg?. N6O 3N$N^NuNV?<?<?<Bg?.N6O 3 By yoN4:9E(n89DG7P@ ylRy`N$N^NuN\NVN^N$nNV?. ?.N X# tBg?<(?<?<?<BgN jO 3N^NuNV3B# tBg?<)?<?<?<BgN jO 3N^NuNV?.?.?.?. N P3 J3L#tBg?<*?<?<?<BgN jO 3N^NuNV?.?. ?. ?.N P#tBg?<+?<?<?<BgN jO =_N^NuNV3B#tBg?<,?<?<?<BgN jO 3(n 8f(n8hN^NuNV?. ?.N X# tBg?<-?<?<?<BgN jO 3N^NuNV?.?.?.?. N P#tBg?<.?<?<?<BgN jO 3(n8fN^NuNV?.?.?.?.?.?. ?. ?.NO#tBg?</?<?<?<BgN jO 3N^NuN!NVN^N*`NVB9N^NuNVBg:. ?(nHTN'\=_:.RE8.Ec :.RE=EBn:.SE?0.WoN&:.(n8.&nP@0.WlRn`T:.nb:.(nPN^NuNVBg:.?(nHTN'\=_Bg:.?(n HTN'\=_:.nnd :.nd`N:.n=E:.n?0ncN*:.n(n 8.&n P@0ndSn`TBn:.SE?0.WcN*:.(n8.n&n P@0.WdRn`TN^NuNVBg:.?(n HTN'\=_:. ndF=n :.n?0.WcN*:.n(n 8.&n P@0.WdRn`TN^NuNVBg:.?(nHTN'\=_:.ndh:.n d^:.nnc:.nSE=EBn:.SE8.Eb :.n(n8.&nP@Rn`:.(nPN^NuNVBg:.?(nHTN'\=_Bg:.?(nHTN'\=_:.nJEf(nN:. TE8.nEd`N:. ?(nHT:.?(nHTN$O =n:.nSE?0.WcN*:.n(n8.&nP@0.WdRn`T:.n(nPN^NuNVBn:. ?0.WcN0:.(n4P9f =nTN^Nu0.WdRn`T:. RE=EN^NuNVBg:.?(nHTN'\=_Bg:. ?(nHTN'\=_JngJng`N:.nd:.SE=EN :.SE=EBn:.?0.WcN^:.(n8.&n3@4Pg4:.(n8.&n3@4Pd|TN^NuN B.TN^Nu0.WdRn`T:.nd|N^NuN":.nc B.N^NuN |N^NuNVBg:.?(nHTN'\=_Bg:.?(nHTN'\=_JngJng:. nnc(n8B.N^Nu:.n=EBn:. n(n8.&n3@4PgN$Rn:.nf(n8 |N^Nu`Rn :. nc(n8B.N^Nu`NVN^NuNVyN^NuN$hNVN$zN^N;NVBy3/9?.<< B':. ?(nHTN7ON^NuNVBy:.JElDE3/9?.<< Jnlz`z:. ?(nHTN7ON^NuNV:. nm=n N^NuN =n N^NuNV(nBB./.N Xl|/.-_NB.Jnm8/./NVN^NBpN>NVBg?. HnNP(n:. K9P N^NupN>NVBg?. HnNP(n:.K=tP N^NupNpN>NVBg?. ?.N<>X=_zFE8.E=D?. ?.?.N<\N^Nup N>NV:. EddH?.?<?<HnN*rO (n :. K-tP (n-T(nGz8QN^NupN>NV(n :.K-tP (n-T(nGz6Q?<HnHnHnN1OJ.g:. Edd=nN^NuN =|N^NupNpN>NVBg?<HnNP/.HnHnHnHnN.OBgBgBgBgBg?.?.?.?.NdO?<BgBgBgBg?.?.?.?.NdO/.Bg?< ?.?.?.?.N"zOBg/.BgN*\=_?<?<N<~X?<BgBgBgBg?.?.?.?.NdO?<BgBgBgBg?.?.?.?.NdON^NupN>NVBg?<HnNP/.?<(n ?N

NVBg?<HnNP/.?<(n?N

NVN^NH\NV3?< Bg?<Bg?. N6O N$=y N^NuNV nCpQ3 333?<Bg?<Bg?.N6O N$N^NuNV3?<Bg?<Bg?. N6O N$=y N^NuNV3?<qBg?<Bg?. N6O N$N^NuNV3By?<?<BgBg?. N6O N$=y N^NuNV3?<Bg?<Bg?. N6O N$=y N^NuNV3 3?<lBg?<Bg?. N6O N$N^NuNV3?<Bg?<Bg?. N6O N$=y N^NuNVBy3?<?<BgBg?. N6O N$=y N^NuNV3?<Bg?<Bg?. N6O N$=y N^NuNVBy3?< ?<BgBg?.N6O N$(n8(n8(n 8(n8N^NuNV3?<kBg?<Bg?.N6O N$(n8(n8(n 8(n8=yN^NuNV3?< Bg?<Bg?. N6O N$=y N^NuNV3?<Bg?<Bg?. N6O N$=y N^NuNV3?<Bg?<Bg?. N6O N$=y N^NuNV3?<jBg?<Bg?. N6O N$=y N^NuNV33?<'Bg?<Bg?.N6O N$(n 8(n8N^NuNV3?<Bg?<Bg?. N6O N$=y N^NuNV3?<Bg?<Bg?. N6O N$=y N^NuNV3?<Bg?<Bg?. N6O N$=y N^NuNV3?<hBg?<Bg?. N6O N$=y N^NuNV?<pBg:.?Bg?.N6O (n * #N$#N^NuNBNVN^NNNV?<?.BgBg?.N6O (n* #N$#N^NuNV?<?.BgBg?.N6O (n* #N$#N^NuNVBy3 :9yn:9(nJ4PfN,:9(nx4P:9EI9PRy`?<?<?9Bg?.N6O 33N$N^NuNV?< ?.BgBg?.N6O (n* #N$#N^NuNVBy yoN4:9E(n89DG7P@ ylRy`?< ?<:.?Bg?.N6O 3333(n* #N$#N^NuNV?<g?<?<Bg?.N6O 33 3 N$N^NuNV?<r?<BgBg?. N6O (n* #N$#N^NuNV?< ?<Bg?<?. N6O (n* #N$#N^NuNV?< ?<?<?<?.N6O 3 333ByByByBy3 ByN$N^NuNV?< ?<?<?<?.N6O 3 333ByByByBy3 ByN$N^NuNV?< ?<Bg?<?.N6O 3 3 ByBy3ByN$N^NuNV?< ?<?<?<?.N6O 3 33333 N$N^NuNV?< ?<?<?<?.N6O 3 33333 N$N^NuNV?< ?<Bg?<?.N6O 33 3 3N$N^NuNV?< ?<Bg?<?. N6O (n* #N$#N^NuNV?< ?<Bg?< ?. N6O (n* #N$#N^NuNV3 3333 ByBy3:9yn:9(nJ4PfN.:9(nx4P:9TEEI9PRy`?< ?<zy??< ?.N6O N$N^NuNHVNVN^NWNV0.?NA*-E N^NuNV0.?0. ?NA*-E N^NuNV ./ . /0.?0.?NA*-EN^NuNV ./ . / ./0.?0.?NA*-EN^NuNV ./0. ?NA*-EN^NuNV0.? . /0.?NA*-EN^NuNV0.?0. ? . /0.?NA*-EN^NuNVBBgNNT-_N^NuNVB?<NNT*(nN^NuNVB?<NNT-_*.(n *.x(nN^NuNVB?<z.?NNX-_N^NuNVB?<NNT*(nN^NuNVB?<z.?NNX-_N^NuNVB?<z.?NNX-_N^NuNVJ.fB?<?<NNX*(n N(n B?<BgNNX*EN^NuNVB?<NNT*(nN^NuNVB?<NNT-_*.(n *.x(nN^NuNVB?<NNT*(nN^NuNVB?< (n* /NO4\-_N^NuNVB?< (n* /NO4\-_N^NuNVB?< NNTJgz`zEN^NuNVB?<?. NNX(n(N^NuNVB?<NNTJgz`zEN^NuNVB?<NNTJgz`zEN^NuNVB?<NNTJgz`zEN^NuNVB?<NNTJgz`zEN^NuNVB?<NNT*(n8N^NuNVB?</.NO4\-_N^NuNVB?<*NNT*(n8N^NuNVB?<+?.NNX-_N^NuNVB?<,NNT*(n8N^NuNVB?<-?.NNX-_N^NuNVB?</NNT(n(N^NuNVB?<0NNT*(n8N^NuNVB?<1/. ?.NOPP-_N^NuNVB?<6(n * /?.NOPP-_N^NuNVB?<9(n* /NO4\Jfz`zEN^NuNVB?<:(n* /NO4\Jfz`zEN^NuNVB?<;(n* /NO4\Jfz`zEN^NuNVB?<<(n* /?. NOPP*(n8N^NuNVB?<=(n* /?. NOPP*(n8N^NuNVB?<>?.NNXJfz`zE N^NuNVB?<??.(n //.NNO (n (N^NuNVB?<@?.(n //.NNO (n (N^NuNVB?<A(n* /NO4\Jfz`zEN^NuNVB?<B/.?.z. ?NOrO (n(N^NuNVJ. f*B?<C(n* /?<(n?NOrO -_N*B?<C(n* /Bg(n?NOrO *(n8N^NuNVB?<G(n * /?.NOPP-_N^NuNVB?<H/. NO4\(n(N^NuNVB?<I/.NO4\Jfz`zE N^NuNVB?<JBg/. /.NNO Jfz`zEN^NuNV(n * /(n* /(n* /z.0?pK?* #*#*#NA*y,y.y*(n8N^NuNVB?<LNNTJfz`zE N^NuNVB?<N(n* /?. NOPP*(n8N^NuNVB?<ONNT*(n8N^NuNVB?<VBg(n* /(n* /NNO -_N^NuNVJ.f&B?<WI * /?.BgNOrO -_N&B?<WI * /?.?<NOrO -_N^NuNNNVN^NX|pN>NV.  e. ~b| N^NuN B. N^NupNpN>NVJ.e . c . f| N^NuN B. N^NupNpN>NVB'.NWTJfB'.NWTJg| N^NuN B. N^NupNNWpN>NVN^N^pN>NVBn ncNLBn ncN.:.KE(n8.IIPB4@ ndRn` ndRn`N^NupN>NV:. Ed*:. Ed :. KE(n8. IIP@N^NupN>NV:. Edr:. Edh:. KE(n 8.IIP4@ f$:. KE(n 8.IIP@N":. KE(n 8.IIP@N^NupN>NV:.E((n 8:.E(n8N^NupN>NV:.(E((n 8:.E((n8N^NupHN>NV n Cp?Q?. ?.HnHnNZ O :. KEI8.IIPz4@ N,=|N=|NBnN N  ?<BNp\Bg?9?.NGX=_?9?.?.?<?<NMO ?<BNp\N^NupbN>NV nCp?Q?<BNp\Bg?9?<NGX=_=|=|=|T=|?9HnNJ\Bg?9?<ND*X=_=| nTcNF=n=|=n=|?9?<?< HnNHhO n-dn(`=| ncNF=|=n=|T=n?9?<?< HnNHhO ndn`?<BNp\Bn ncNbBn ncND:.KEI8.IIPJ4@gHn?.?.NZ>P ndRn` ndRn`N^Nup@N>NV n Cp?Q:. Ec":. ETd:. Ec:. Edz`zEN^NupNpN>NV:. Ed:. Edz`zE N^NupNpFN>NV n Cp?QBnBn ncNVBn ncN8:.KEI8.IIP4@.fRn ndRn` ndRn`=nN^NupNNXvpN>NVN^N_pN>NV(n n (n n(n BTN^NupN>NV nCpQn N^NupNpN>NV nCpQn N^NupNpN>NV nCpQ=n N^NupNpN>NV(n nN^NupN>NV(n nN^NupN>NV(n 8N^NuN]pN>NVN^N`NV(n* /p?NMN^NuNVz.0?p?NM*EE N^NuNVz.0?p?NM*EE N^NuNVz.0?p?NM*-E N^NuNV.?z. 0?p?NMN^NuNV0.?0. ?0. ? ./z.0?p?NM*-EN^NuNV ./0. ?p?NMN^NuNVp/0.?p?NM*-E N^NuNVp?NM*-EN^NuNV0.?p?NM*-E N^NuNV0.?p ?NM*E N^NuNVp ?NM*-EN^NuNVz.0?p ?NMN^NuNVp?p ?NM*EN^NuN_NbNVz(9fB'Hx@B'Nb^\JfpN(y:.gRn-l &n-S*. g2&n:+nf$n $$n$)n N^Nu-n-S`z:.(c&n &z:.۬N^Nu&n:+nc>:+n7Ez:+ڮ$n $:+ Ed$n$)S N)n N^Nu-n-S*. g`J,g z&n &N/ pN(_N^NuNV(y:.gRn&n -S:. Ee&n$l&7n&l&z&n &N^NuNVz(9gB'/9NUXJNq/. HnNUPJfB.N^Nu#(y*.xڄ)E*.ڮ ()l)l *,\)En&l& Bk|N^NuN`NVz#N^Ne8pN>NVz(n(N^NupN>NVz(n(g((n-T&n(S&n&FHn?<JNb\`N^NupLN>NV nCp?QHn?<JN`\(nGz(Q(n9n @(n9n B(n9nDz-E(n-Tz(.g (n:,@n o-n(n-lF`(n)nFz(.f (n(N (n)nFN^NupN>NVz(n(gT&n(S&nz&Q&n(S&n 6B&n(S&n6D(n-T&n(S&n&FHn?<JNb\N^NupN>NVz(.fz`zE N^NupNp N>NVBn(n -Tz(.g:.ng(n-lFRn`z(.g (n-lF(nz)EFHnNc(XN^NuNbpN>NVN^NvpN>NV:.n =E:.n=EB'?.?.N]2XJg$:.KE(n8.IIP4@. g B.N^NuN:.KE(n8.IIP4@. f8:.n =E:.n=EB'?.?.N]2XJfB.N^Nu`:.KE(n8.IIPJ4@gz`zEN^NupNpN>NV nCpQB'HnN^pX_:.KE(n8. IIPJ4@fJ.f B.N^NuN. f |N|B'(nHT?.?. .?NV nCpQBn ncNXBn ncN:B'(n HT?.?.HnNfHO JgB.N^Nu ndRn` ndRn`|N^NupNpN>NV:.n =E:.n =EB'?.?.N]2XJg$:.KE(n8.IIP4@.gN^NuN4(nHT?.?.NY>PJ.g(nHT?.?.NZ>PNrN^NupN>NVB'(nHT?.?. . ?NVB'(nHTN^pX_(nHT?.?..NXO (nHT?.?.NZ>PJ.g,(nHT?.?.B'(n HTN^pX<NiO Bg(nHT.N]h\=_(nHT?.N_\Bg(nHTB'(n HTN^pXN]h\=_(n HT?.N_\N^NupN>NV(n8 (n9n (n9nN^NupN>NVHn<<N^PHn<<N^PB'(nHTHnNhPJgB'(nHTHnNhPJgz`zE N^NupNpN>NVJ9 g|N^NuNv:. Ec@B'<N_JTJg.B<N_T* f |N^NuN,:.ygB'(n HTNmbXJg |N^NuB.N^NupNpN>NV:.g |N|BnBn ncNBn ncN:.KE(n 8.IIP4@.f`N:9 nJng:. EgJng :. Ef :9nJnfJng4Jnf :. Eg$:. EfJng:. Ef:. Ef :9n:. Ef(n :.KJ4Pg\:. Ef(n :.KI8J4Pg<:. Ef:.KE(n J4Pg:. Ef:.KE(n J4Pf`N :9n:. Ef:. Ef(n JgZ:. Ef:. Ef (n J,g<:. Ef:. Ef (n J,8g:. Ef:. Ef (n J,?f`N :9nN,:.KE(n 8.IIPJ4@g :9n ndRnN ndRnN=nN^NupNpN>NV(nHT?.?.B'(n HTN^pXNXO (nHT?.?.B'(nHTN^pXB'NiO N^NupTN>NV:.g,Hn<<N^PHn<<N^PN*Hn<<N^PHn<<N^PBnHnNcXBn noNBn noNB'(n HT?.?.HnNfHO Jg`Nh(n Gz&Q?.?.HnHnHnNpOBgHn?.Nn\=_HnHn?.?.?.NclORn nlRnNd nlRnND:.ycHn?9Nd\-nN^NupN <N>NVl nCp?QHn?<N`\=|p=|nB'Hn?. Nm\Jg6BgHn?. Nn\=_l(nHT?.l?NVB9 ?<BNp\B'(n HTN^pX f2RyB(nHT?<?<}?<NrO -_SyN"B(nHTBg?<}?<NrO -_(nJll(Hn?<Nb\BgBNp\B.N^NuNX(n?,(n?,(nHT(n HT(nHT<NlNOHn?<Nb\BgBNp\|N^NupNpN>NV3 3N^NupN>NV(n 8(n8N^NupN>NV3 333 3 3N^NupN>NV(n8 (n8(n8(n8(n 8(n8N^NuNe2pN>NVN^N[3][ | Flipper runs in | Medium resolution ][Sorry]PassBlack:White:The game is a tie!has won!is movingpN>NV:9 En :9 EXl$Bg?<?<2HyvNP=_B.N^NuBg?9?<NG2X=_Bg?9BgNGjX=_Bg?9?<ND*X=_Bg?9?<NBX=_?<?<NuX?<?< ?<2?<?<?<Nv O Nx|N^NupNpN>NVHyNXXHy?<?<<NXO Hy?<?<<NXO Hy?<?<<NXO Hy?<?<<NXO B9dB9`HyXB'<N^PHy\<<N^P3b/9?<?<NDP/9?<BgNDP/9?<BgNDP/9?<?<NPN^Nup N>NV?<BNp\Bg?9?<NGX=_=||=|=|=|2?9HnNM\?9HnNM^\?9?<?<+?<HyvNHO ?<BNp\N^NupN>NV?<BNp\Bg?9?<NGX=_=|=|3:9UE=E=|H?9HnNJ\?9?<|?<>?<HyvNHO ?9?<|?<H?<HyvNHO B'HyXN^pX f,BgHyXN^X=_BgHy\N^X=_N*BgHy\N^X=_BgHyXN^X=_?.?<?<HnN*rO ?9?<?<>?<HnNHO ?.?<?<HnN*rO ?9?<?<H?<HnNHO ?<BNp\N^Nup N>NVJybg`N?<BNp\Bg?9?<NGX=_=|:9TE=E=|T=|?9HnNJ\J9df&?9?<?<?<HyvNHO N9d fBg?9?<NGX=_NBg?9BgNGX=_?9?<(?<?<?<NMO ?9?<8?<?<Hyw NHO ?<BNp\N^NupN>NV nCpQJybgJ9`f`N?<BNp\B'HnN^pX fBg?9?<NGX=_NBg?9BgNGX=_?9?<(?<?<?<NMO ?9?<8?<?<HywNHO ?<BNp\NN{hN^Nup N>NV?<BNp\Bg?9?<NGX=_:9RE=E=y:9yUE=E:9ySE=E?9HnNJ\?<BNp\Ny.HyN[&XNyHyXN|XN^NupN>NV:. E|o":. El:. Eo:. E2lz`zE N^NupNpN>NVJ9`g|N^NuNB'HyNmbXJg`Nz`BgHy<N]h\=_BgHy<N]h\=_:.nc dN:.nd dNB9d|N^NuN B.N^NupNpN>NV(n Gz&Q(n&n z&QI&nz&QN^NupN>NVNyJybg B'N~~Jf`N(n HT(nHTNBP(n HTN|XB'(n HTN^BX f`B'Hy(n HT(nHTNtO JgNyB'N~~Jf&(n HT(nHTNBP(n HTN|XNN{hNN{hN^NupN>NVJybfD:. Ef:HyNXXHyXBgN_\Hy\BgN_\B9`N}~N^NupN>NVJybftB'Hy?. ?.N\PJgT?. ?.HnHnNYO ?.?.HyHyXHy\B'NlNOHyXN|XNyNJ9`f`NB'?. ?.N~4XJgBB'HyHyXNhPJgHyXHy\NPN<NPTNB'Hy?. ?.N\PJg`N|?. ?.HnHnNYO B'Hy?.?.HyXNfHO JgNVB'(n HTN^pX_(n HTB'(nHTN^pXN^\(nHT.N^\Bg(n HTN^X=_(n HTBg(nHTN^XN_\(nHT?.N_\N^NupN>NV:.H N:9b Egn3bHy\<N^\/9?<?<NDP/9?<BgNDP/9?<BgNDP/9?<?<NPNB:9b Egj3bHy\B'N^\/9?<BgNDP/9?<?<NDP/9?<BgNDP/9?<BgNPNJybg`NBybJ9`gVBg?9?<NGX=_=|:9TE=E=|T=|?9HnNJ\HyXN|XB9`Hy\B'N^\/9?<BgNDP/9?<BgNDP/9?<?<NDP/9?<?<NPNHnHnNuPHnHnN>P?.?.NuXNHnHnHnHnHnHnNvJOHnHnHnHnHnHnN@^O?.?.?.?.?.?.Nv O NJJybgHyXHy\N@PHyXHy\NPNN N^NupN>NVN^NuNvpN>NVN^N[3][No resource file][OK]flipper.rsc <N>NVrBgN(n8:.?(nHTN\Jyf*Bg?<?<HyNP=_tNVB.N^NuBgBg(nHTNP(n/?<N\Bnr n rcN$:.rK EI9P n rdRnr`=|Hn(n HTHnvNO 3v3x|N^NupNpN>NVBg?<HyHyHyHyNOBgBg?9?9?9?9NO =_?.?9?9?9?9N"O =nN^NupNpN>NVB'?< HyHyHyHyNOJg:BgN 3B'NwJg|N^NuNNB.N^NuN B.N^NupNpN>NV:. H Nz:. EfN=Nb:.H N.NxN}~N|N^NuN N *N?.NTN N f/. ?. ?<NPB.N^NupNpN>NV:. nl=n N^NuN =n N^NupNpN>NV:. no=n N^NuN =n N^NupNpN>NVBg(n:(n T?:.n?NX=_Bg(n:(nT?:.n?NX=_Bg(n??.NX=_Bg(n??.NX=_(n8(n8:.n(n 8:.n(n8:.no:.noz`zE N^NupNpN>NV?<NT?.?< HnHnHnHnNOJngJng`NB'?.?. ?. ?.HnHnHnHnNLOJgD=n=n:.nSE=E:.nSE=E?9?<HnN!pPN}~?.?< HnHnHnHnNONV=n=n =n =n?9BgHnN!pPBgNTN^Nup"N>NVBg/<Np\=|B.Bg?.?<?<?<BgBgBgBgBgBgBgBgBgBgI* /BgBgHnHnHnHnHnHnNO<=_:.H N?.NVTN?.?.NXN:.H N `B'/9?.?.N"P_NL:.yf ?9?.?.?.?.N*O NN \\\\\\\\\,N&N" 0J.fNN^NupN>NV?9NlT?9NT/9BgN\N?9N TNVN^NuNpN>NVB'NJgNJNNN^Nu  <N*nD.X`"4         (          (              "&(    &  6      0   . .   &&                    &     "                                     .  trv:^2D   ,F6,( ,& *   *P   *p * 0.0D   \    :nN$JF&  $$&$>H4$&$$&$&$$&$ $&$$&$  "                    &        " "  " "      :&"$"2&"($"""&&",,0*"2,&46(, .N000( 6<$ jD@4*,>  $ 6D T*R. *&&&  P N 4"b$\  ,F t6868686&N>,F&,$*&,$*&,$*&,$*$ , & r*J.6   <8 2  " 2 ",$*  :       v               $                     B    @       "             $""& 2  N *"..$&\ >6& \`   IF.F  $0. &4  6 Desk File Options About Flipper - Desk Accessory 1 Desk Accessory 2 Desk Accessory 3 Desk Accessory 4 Desk Accessory 5 Desk Accessory 6 New Game - Quit 1 Player 2 Player Set Up Board - Set Search ... Set Evaluation ...- Swap SidesFLIPPER by G.L. Lobe Written in TDI Modula-2 OKCIS 73637,1363 SET SEARCH PARAMETERS OK02 Search depth: __9905 Search width: __99 SET EVALUATION PARAMETERS Add for each pieceOK02of computer's colour : __9920on an edge : __9950in a corner : __99Subtract for each piece01of human's colour : __9910one away from edge : __9925one away from corner : __99                 0( X[ux{ - PP  $ + 2  P < M d y     )@Qf }!. 0(J     &# f(  . *AU!      (* F