home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / volume9 / othello2 / part03 < prev    next >
SHell self-extracting ARchive  |  1990-04-27  |  55.7 KB

view JSON data     |     view as text     |     open on a Mac     |     open on a PC

This file was processed as: SHell self-extracting ARchive (archive/shar).

You can browse this item here: part03

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert Newsgroup Content (archive/news) magic Supported
100% dexvert SHell self-extracting ARchive (archive/shar) magic Supported
100% dexvert Internet Message Format (text/imf) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file news, ASCII text default
100% checkBytes Printable ASCII default
100% dexmagic PrintFox/Pagefox WEAK default
100% perlTextCheck Likely Text (Perl) default
100% siegfried fmt/329 Shell Archive Format default
100% detectItEasy Format: plain text[LF] default (weak)
100% xdgMime message/news default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 50 61 74 68 3a 20 75 75 | 6e 65 74 21 7a 65 70 68 |Path: uu|net!zeph|
|00000010| 79 72 2e 65 6e 73 2e 74 | 65 6b 2e 63 6f 6d 21 74 |yr.ens.t|ek.com!t|
|00000020| 65 6b 72 65 64 21 73 61 | 61 62 21 62 69 6c 6c 72 |ekred!sa|ab!billr|
|00000030| 0a 46 72 6f 6d 3a 20 62 | 69 6c 6c 72 40 73 61 61 |.From: b|illr@saa|
|00000040| 62 2e 43 4e 41 2e 54 45 | 4b 2e 43 4f 4d 20 28 42 |b.CNA.TE|K.COM (B|
|00000050| 69 6c 6c 20 52 61 6e 64 | 6c 65 29 0a 4e 65 77 73 |ill Rand|le).News|
|00000060| 67 72 6f 75 70 73 3a 20 | 63 6f 6d 70 2e 73 6f 75 |groups: |comp.sou|
|00000070| 72 63 65 73 2e 67 61 6d | 65 73 0a 53 75 62 6a 65 |rces.gam|es.Subje|
|00000080| 63 74 3a 20 76 30 39 69 | 30 33 39 3a 20 20 6f 74 |ct: v09i|039: ot|
|00000090| 68 65 6c 6c 6f 32 20 2d | 20 6f 74 68 65 6c 6c 6f |hello2 -| othello|
|000000a0| 20 67 61 6d 65 20 66 6f | 72 20 53 75 6e 56 69 65 | game fo|r SunVie|
|000000b0| 77 2f 58 56 69 65 77 2f | 58 31 31 2f 63 75 72 73 |w/XView/|X11/curs|
|000000c0| 65 73 2c 20 50 61 72 74 | 30 33 2f 30 34 0a 4d 65 |es, Part|03/04.Me|
|000000d0| 73 73 61 67 65 2d 49 44 | 3a 20 3c 35 35 30 32 40 |ssage-ID|: <5502@|
|000000e0| 74 65 6b 72 65 64 2e 43 | 4e 41 2e 54 45 4b 2e 43 |tekred.C|NA.TEK.C|
|000000f0| 4f 4d 3e 0a 44 61 74 65 | 3a 20 32 34 20 41 70 72 |OM>.Date|: 24 Apr|
|00000100| 20 39 30 20 31 36 3a 33 | 34 3a 34 38 20 47 4d 54 | 90 16:3|4:48 GMT|
|00000110| 0a 53 65 6e 64 65 72 3a | 20 6e 65 77 73 40 74 65 |.Sender:| news@te|
|00000120| 6b 72 65 64 2e 43 4e 41 | 2e 54 45 4b 2e 43 4f 4d |kred.CNA|.TEK.COM|
|00000130| 0a 4c 69 6e 65 73 3a 20 | 31 38 37 39 0a 41 70 70 |.Lines: |1879.App|
|00000140| 72 6f 76 65 64 3a 20 62 | 69 6c 6c 72 40 73 61 61 |roved: b|illr@saa|
|00000150| 62 2e 43 4e 41 2e 54 45 | 4b 2e 43 4f 4d 0a 0a 53 |b.CNA.TE|K.COM..S|
|00000160| 75 62 6d 69 74 74 65 64 | 2d 62 79 3a 20 52 69 63 |ubmitted|-by: Ric|
|00000170| 68 20 42 75 72 72 69 64 | 67 65 20 3c 72 62 75 72 |h Burrid|ge <rbur|
|00000180| 72 69 64 67 65 40 73 75 | 6e 2e 43 4f 4d 3e 0a 50 |ridge@su|n.COM>.P|
|00000190| 6f 73 74 69 6e 67 2d 6e | 75 6d 62 65 72 3a 20 56 |osting-n|umber: V|
|000001a0| 6f 6c 75 6d 65 20 39 2c | 20 49 73 73 75 65 20 33 |olume 9,| Issue 3|
|000001b0| 39 0a 41 72 63 68 69 76 | 65 2d 6e 61 6d 65 3a 20 |9.Archiv|e-name: |
|000001c0| 6f 74 68 65 6c 6c 6f 32 | 2f 50 61 72 74 30 33 0a |othello2|/Part03.|
|000001d0| 0a 0a 0a 23 21 20 2f 62 | 69 6e 2f 73 68 0a 23 20 |...#! /b|in/sh.# |
|000001e0| 54 68 69 73 20 69 73 20 | 61 20 73 68 65 6c 6c 20 |This is |a shell |
|000001f0| 61 72 63 68 69 76 65 2e | 20 20 52 65 6d 6f 76 65 |archive.| Remove|
|00000200| 20 61 6e 79 74 68 69 6e | 67 20 62 65 66 6f 72 65 | anythin|g before|
|00000210| 20 74 68 69 73 20 6c 69 | 6e 65 2c 20 74 68 65 6e | this li|ne, then|
|00000220| 20 75 6e 70 61 63 6b 0a | 23 20 69 74 20 62 79 20 | unpack.|# it by |
|00000230| 73 61 76 69 6e 67 20 69 | 74 20 69 6e 74 6f 20 61 |saving i|t into a|
|00000240| 20 66 69 6c 65 20 61 6e | 64 20 74 79 70 69 6e 67 | file an|d typing|
|00000250| 20 22 73 68 20 66 69 6c | 65 22 2e 20 20 54 6f 20 | "sh fil|e". To |
|00000260| 6f 76 65 72 77 72 69 74 | 65 20 65 78 69 73 74 69 |overwrit|e existi|
|00000270| 6e 67 0a 23 20 66 69 6c | 65 73 2c 20 74 79 70 65 |ng.# fil|es, type|
|00000280| 20 22 73 68 20 66 69 6c | 65 20 2d 63 22 2e 20 20 | "sh fil|e -c". |
|00000290| 59 6f 75 20 63 61 6e 20 | 61 6c 73 6f 20 66 65 65 |You can |also fee|
|000002a0| 64 20 74 68 69 73 20 61 | 73 20 73 74 61 6e 64 61 |d this a|s standa|
|000002b0| 72 64 20 69 6e 70 75 74 | 20 76 69 61 0a 23 20 75 |rd input| via.# u|
|000002c0| 6e 73 68 61 72 2c 20 6f | 72 20 62 79 20 74 79 70 |nshar, o|r by typ|
|000002d0| 69 6e 67 20 22 73 68 20 | 3c 66 69 6c 65 22 2c 20 |ing "sh |<file", |
|000002e0| 65 2e 67 2e 2e 20 20 49 | 66 20 74 68 69 73 20 61 |e.g.. I|f this a|
|000002f0| 72 63 68 69 76 65 20 69 | 73 20 63 6f 6d 70 6c 65 |rchive i|s comple|
|00000300| 74 65 2c 20 79 6f 75 0a | 23 20 77 69 6c 6c 20 73 |te, you.|# will s|
|00000310| 65 65 20 74 68 65 20 66 | 6f 6c 6c 6f 77 69 6e 67 |ee the f|ollowing|
|00000320| 20 6d 65 73 73 61 67 65 | 20 61 74 20 74 68 65 20 | message| at the |
|00000330| 65 6e 64 3a 0a 23 09 09 | 22 45 6e 64 20 6f 66 20 |end:.#..|"End of |
|00000340| 61 72 63 68 69 76 65 20 | 33 20 28 6f 66 20 34 29 |archive |3 (of 4)|
|00000350| 2e 22 0a 23 20 43 6f 6e | 74 65 6e 74 73 3a 20 20 |.".# Con|tents: |
|00000360| 4d 61 6b 65 66 69 6c 65 | 20 54 4f 44 4f 20 62 6f |Makefile| TODO bo|
|00000370| 61 72 64 73 74 75 66 66 | 2e 63 20 65 76 65 6e 74 |ardstuff|.c event|
|00000380| 73 2e 63 20 68 67 6c 61 | 73 73 2e 63 75 72 73 6f |s.c hgla|ss.curso|
|00000390| 72 20 69 74 65 6d 73 2e | 63 0a 23 20 20 20 6e 6f |r items.|c.# no|
|000003a0| 63 75 72 2e 63 75 72 73 | 6f 72 20 6f 74 68 65 6c |cur.curs|or othel|
|000003b0| 6c 6f 2e 31 20 6f 74 68 | 65 6c 6c 6f 2e 68 20 70 |lo.1 oth|ello.h p|
|000003c0| 72 6f 63 73 2e 63 20 72 | 65 6d 61 72 6b 2e 63 0a |rocs.c r|emark.c.|
|000003d0| 23 20 57 72 61 70 70 65 | 64 20 62 79 20 62 69 6c |# Wrappe|d by bil|
|000003e0| 6c 72 40 73 61 61 62 20 | 6f 6e 20 54 75 65 20 41 |lr@saab |on Tue A|
|000003f0| 70 72 20 32 34 20 30 37 | 3a 35 37 3a 30 30 20 31 |pr 24 07|:57:00 1|
|00000400| 39 39 30 0a 50 41 54 48 | 3d 2f 62 69 6e 3a 2f 75 |990.PATH|=/bin:/u|
|00000410| 73 72 2f 62 69 6e 3a 2f | 75 73 72 2f 75 63 62 20 |sr/bin:/|usr/ucb |
|00000420| 3b 20 65 78 70 6f 72 74 | 20 50 41 54 48 0a 69 66 |; export| PATH.if|
|00000430| 20 74 65 73 74 20 2d 66 | 20 27 4d 61 6b 65 66 69 | test -f| 'Makefi|
|00000440| 6c 65 27 20 2d 61 20 22 | 24 7b 31 7d 22 20 21 3d |le' -a "|${1}" !=|
|00000450| 20 22 2d 63 22 20 3b 20 | 74 68 65 6e 20 0a 20 20 | "-c" ; |then . |
|00000460| 65 63 68 6f 20 73 68 61 | 72 3a 20 57 69 6c 6c 20 |echo sha|r: Will |
|00000470| 6e 6f 74 20 63 6c 6f 62 | 62 65 72 20 65 78 69 73 |not clob|ber exis|
|00000480| 74 69 6e 67 20 66 69 6c | 65 20 5c 22 27 4d 61 6b |ting fil|e \"'Mak|
|00000490| 65 66 69 6c 65 27 5c 22 | 0a 65 6c 73 65 0a 65 63 |efile'\"|.else.ec|
|000004a0| 68 6f 20 73 68 61 72 3a | 20 45 78 74 72 61 63 74 |ho shar:| Extract|
|000004b0| 69 6e 67 20 5c 22 27 4d | 61 6b 65 66 69 6c 65 27 |ing \"'M|akefile'|
|000004c0| 5c 22 20 5c 28 35 39 32 | 30 20 63 68 61 72 61 63 |\" \(592|0 charac|
|000004d0| 74 65 72 73 5c 29 0a 73 | 65 64 20 22 73 2f 5e 58 |ters\).s|ed "s/^X|
|000004e0| 2f 2f 22 20 3e 27 4d 61 | 6b 65 66 69 6c 65 27 20 |//" >'Ma|kefile' |
|000004f0| 3c 3c 27 45 4e 44 5f 4f | 46 5f 46 49 4c 45 27 0a |<<'END_O|F_FILE'.|
|00000500| 58 23 0a 58 23 20 20 4d | 61 6b 65 66 69 6c 65 20 |X#.X# M|akefile |
|00000510| 66 6f 72 20 74 68 65 20 | 6f 74 68 65 6c 6c 6f 20 |for the |othello |
|00000520| 67 61 6d 65 2e 0a 58 23 | 0a 58 23 20 20 47 72 61 |game..X#|.X# Gra|
|00000530| 70 68 69 63 73 20 76 65 | 72 73 69 6f 6e 73 20 66 |phics ve|rsions f|
|00000540| 6f 72 20 53 75 6e 56 69 | 65 77 2c 20 58 31 31 2c |or SunVi|ew, X11,|
|00000550| 20 58 56 69 65 77 20 61 | 6e 64 20 64 75 6d 62 20 | XView a|nd dumb |
|00000560| 74 65 72 6d 69 6e 61 6c | 73 2e 0a 58 23 0a 58 23 |terminal|s..X#.X#|
|00000570| 20 20 40 28 23 29 4d 61 | 6b 65 66 69 6c 65 20 31 | @(#)Ma|kefile 1|
|00000580| 2e 39 20 39 30 2f 30 34 | 2f 31 30 0a 58 23 0a 58 |.9 90/04|/10.X#.X|
|00000590| 23 20 20 4f 74 68 65 6c | 6c 6f 20 72 6f 75 74 69 |# Othel|lo routi|
|000005a0| 6e 65 73 20 6f 72 69 67 | 69 6e 61 6c 6c 79 20 77 |nes orig|inally w|
|000005b0| 72 69 74 74 65 6e 20 62 | 79 20 43 68 72 69 73 20 |ritten b|y Chris |
|000005c0| 4d 69 6c 6c 65 72 2e 0a | 58 23 20 20 4f 72 69 67 |Miller..|X# Orig|
|000005d0| 69 6e 61 6c 20 53 75 6e | 56 69 65 77 20 67 72 61 |inal Sun|View gra|
|000005e0| 70 68 69 63 73 20 62 79 | 0a 58 23 20 20 20 20 20 |phics by|.X# |
|000005f0| 20 20 20 20 20 20 45 64 | 20 46 61 6c 6b 20 2d 20 | Ed| Falk - |
|00000600| 53 75 6e 20 4d 69 63 72 | 6f 73 79 73 74 65 6d 73 |Sun Micr|osystems|
|00000610| 20 28 4d 6f 75 6e 74 61 | 69 6e 20 56 69 65 77 20 | (Mounta|in View |
|00000620| 43 41 2e 29 0a 58 23 0a | 58 23 20 20 4e 65 77 20 |CA.).X#.|X# New |
|00000630| 53 75 6e 56 69 65 77 2c | 20 58 31 31 2c 20 58 56 |SunView,| X11, XV|
|00000640| 69 65 77 20 61 6e 64 20 | 74 74 79 20 76 65 72 73 |iew and |tty vers|
|00000650| 69 6f 6e 73 20 61 6e 64 | 20 63 6f 6e 73 6f 6c 69 |ions and| consoli|
|00000660| 64 61 74 69 6f 6e 20 62 | 79 0a 58 23 20 20 20 20 |dation b|y.X# |
|00000670| 20 20 20 20 20 20 20 52 | 69 63 68 20 42 75 72 72 | R|ich Burr|
|00000680| 69 64 67 65 20 2d 20 53 | 75 6e 20 4d 69 63 72 6f |idge - S|un Micro|
|00000690| 73 79 73 74 65 6d 73 2c | 20 41 75 73 74 72 61 6c |systems,| Austral|
|000006a0| 69 61 2e 0a 58 23 0a 58 | 23 20 20 50 65 72 6d 69 |ia..X#.X|# Permi|
|000006b0| 73 73 69 6f 6e 20 69 73 | 20 67 69 76 65 6e 20 74 |ssion is| given t|
|000006c0| 6f 20 64 69 73 74 72 69 | 62 75 74 65 20 74 68 65 |o distri|bute the|
|000006d0| 73 65 20 73 6f 75 72 63 | 65 73 2c 20 61 73 20 6c |se sourc|es, as l|
|000006e0| 6f 6e 67 20 61 73 20 74 | 68 65 0a 58 23 20 20 69 |ong as t|he.X# i|
|000006f0| 6e 74 72 6f 64 75 63 74 | 6f 72 79 20 6d 65 73 73 |ntroduct|ory mess|
|00000700| 61 67 65 73 20 61 72 65 | 20 6e 6f 74 20 72 65 6d |ages are| not rem|
|00000710| 6f 76 65 64 2c 20 61 6e | 64 20 6e 6f 20 6d 6f 6e |oved, an|d no mon|
|00000720| 69 65 73 20 61 72 65 20 | 65 78 63 68 61 6e 67 65 |ies are |exchange|
|00000730| 64 2e 0a 58 23 0a 58 23 | 20 20 4e 6f 20 72 65 73 |d..X#.X#| No res|
|00000740| 70 6f 6e 73 69 62 69 6c | 69 74 79 20 69 73 20 74 |ponsibil|ity is t|
|00000750| 61 6b 65 6e 20 66 6f 72 | 20 61 6e 79 20 65 72 72 |aken for| any err|
|00000760| 6f 72 73 20 69 6e 68 65 | 72 65 6e 74 20 65 69 74 |ors inhe|rent eit|
|00000770| 68 65 72 0a 58 23 20 20 | 74 6f 20 74 68 65 20 63 |her.X# |to the c|
|00000780| 6f 6d 6d 65 6e 74 73 20 | 6f 72 20 74 68 65 20 63 |omments |or the c|
|00000790| 6f 64 65 20 6f 66 20 74 | 68 69 73 20 70 72 6f 67 |ode of t|his prog|
|000007a0| 72 61 6d 2c 20 62 75 74 | 20 69 66 20 72 65 70 6f |ram, but| if repo|
|000007b0| 72 74 65 64 0a 58 23 20 | 20 74 6f 20 6d 65 20 74 |rted.X# | to me t|
|000007c0| 68 65 6e 20 61 6e 20 61 | 74 74 65 6d 70 74 20 77 |hen an a|ttempt w|
|000007d0| 69 6c 6c 20 62 65 20 6d | 61 64 65 20 74 6f 20 66 |ill be m|ade to f|
|000007e0| 69 78 20 74 68 65 6d 2e | 0a 58 23 0a 58 23 3d 3d |ix them.|.X#.X#==|
|000007f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000800| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000810| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000820| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000830| 3d 3d 3d 3d 3d 3d 0a 58 | 23 0a 58 23 20 20 54 68 |======.X|#.X# Th|
|00000840| 65 72 65 20 61 72 65 20 | 76 61 72 69 6f 75 73 20 |ere are |various |
|00000850| 73 6d 61 6c 6c 20 63 68 | 61 6e 67 65 73 20 6e 65 |small ch|anges ne|
|00000860| 65 64 65 64 20 77 68 65 | 6e 20 63 6f 6d 70 69 6c |eded whe|n compil|
|00000870| 69 6e 67 20 6f 74 68 65 | 6c 6c 6f 20 6f 6e 0a 58 |ing othe|llo on.X|
|00000880| 23 20 20 64 69 66 66 65 | 72 65 6e 74 20 73 79 73 |# diffe|rent sys|
|00000890| 74 65 6d 73 2e 20 54 68 | 65 73 65 20 68 61 76 65 |tems. Th|ese have|
|000008a0| 20 62 65 65 6e 20 69 73 | 6f 6c 61 74 65 64 20 68 | been is|olated h|
|000008b0| 65 72 65 2c 20 61 6e 64 | 20 73 68 6f 75 6c 64 20 |ere, and| should |
|000008c0| 62 65 0a 58 23 20 20 75 | 6e 63 6f 6d 6d 65 6e 74 |be.X# u|ncomment|
|000008d0| 65 64 20 69 66 20 6e 65 | 65 64 65 64 2e 0a 58 23 |ed if ne|eded..X#|
|000008e0| 0a 58 23 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |.X#=====|========|
|000008f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000900| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000910| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000920| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 0a 58 23 20 20 46 |========|==.X# F|
|00000930| 75 6c 6c 20 70 61 74 68 | 6e 61 6d 65 20 6f 66 20 |ull path|name of |
|00000940| 74 68 65 20 6f 74 68 65 | 6c 6c 6f 20 72 65 6d 61 |the othe|llo rema|
|00000950| 72 6b 73 20 66 69 6c 65 | 2e 20 54 68 69 73 20 63 |rks file|. This c|
|00000960| 61 6e 20 61 6c 73 6f 20 | 62 65 20 6f 76 65 72 72 |an also |be overr|
|00000970| 69 64 64 65 6e 0a 58 23 | 20 20 77 69 74 68 20 61 |idden.X#| with a|
|00000980| 20 63 6f 6d 6d 61 6e 64 | 20 6c 69 6e 65 20 6f 70 | command| line op|
|00000990| 74 69 6f 6e 2e 0a 58 23 | 0a 58 23 52 45 4d 4e 41 |tion..X#|.X#REMNA|
|000009a0| 4d 45 46 49 4c 45 09 3d | 20 24 28 4c 49 42 44 49 |MEFILE.=| $(LIBDI|
|000009b0| 52 29 2f 6f 74 68 65 6c | 6c 6f 2e 72 65 6d 61 72 |R)/othel|lo.remar|
|000009c0| 6b 73 0a 58 23 52 45 4d | 4e 41 4d 45 09 3d 20 2d |ks.X#REM|NAME.= -|
|000009d0| 44 52 45 4d 4e 41 4d 45 | 3d 5c 22 24 28 52 45 4d |DREMNAME|=\"$(REM|
|000009e0| 4e 41 4d 45 46 49 4c 45 | 29 5c 22 0a 58 23 2d 2d |NAMEFILE|)\".X#--|
|000009f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000a00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000a10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000a20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000a30| 2d 2d 2d 2d 2d 0a 58 23 | 20 20 49 66 20 79 6f 75 |-----.X#| If you|
|00000a40| 20 61 72 65 20 6e 6f 74 | 20 72 75 6e 6e 69 6e 67 | are not| running|
|00000a50| 20 75 6e 64 65 72 20 61 | 20 42 53 44 34 2e 33 20 | under a| BSD4.3 |
|00000a60| 64 65 72 69 76 65 64 20 | 73 79 73 74 65 6d 2c 20 |derived |system, |
|00000a70| 74 68 65 6e 20 74 68 65 | 0a 58 23 20 20 73 65 63 |then the|.X# sec|
|00000a80| 6f 6e 64 20 70 61 72 61 | 6d 65 74 65 72 20 74 6f |ond para|meter to|
|00000a90| 20 61 20 73 65 6c 65 63 | 74 20 63 61 6c 6c 20 69 | a selec|t call i|
|00000aa0| 73 20 61 20 70 6f 69 6e | 74 65 72 20 74 6f 20 61 |s a poin|ter to a|
|00000ab0| 6e 20 69 6e 74 65 67 65 | 72 20 66 75 6e 63 74 69 |n intege|r functi|
|00000ac0| 6f 6e 2c 0a 58 23 20 20 | 61 6e 64 20 74 68 69 73 |on,.X# |and this|
|00000ad0| 20 64 65 66 69 6e 69 74 | 69 6f 6e 20 6e 65 65 64 | definit|ion need|
|00000ae0| 73 20 74 6f 20 62 65 20 | 75 6e 63 6f 6d 6d 65 6e |s to be |uncommen|
|00000af0| 74 65 64 2e 20 59 6f 75 | 20 6e 65 65 64 20 74 6f |ted. You| need to|
|00000b00| 20 75 6e 63 6f 6d 6d 65 | 6e 74 20 74 68 69 73 0a | uncomme|nt this.|
|00000b10| 58 23 20 20 66 6f 72 20 | 53 75 6e 4f 53 20 76 33 |X# for |SunOS v3|
|00000b20| 2e 78 2e 0a 58 23 0a 58 | 23 53 49 47 52 45 54 20 |.x..X#.X|#SIGRET |
|00000b30| 20 20 20 20 20 20 20 20 | 3d 20 2d 44 4e 4f 5f 34 | |= -DNO_4|
|00000b40| 5f 33 53 49 47 4e 41 4c | 0a 58 23 2d 2d 2d 2d 2d |_3SIGNAL|.X#-----|
|00000b50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000b60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000b70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000b80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000b90| 2d 2d 0a 58 23 20 20 49 | 66 20 79 6f 75 20 61 72 |--.X# I|f you ar|
|00000ba0| 65 20 63 6f 6d 70 69 6c | 69 6e 67 20 74 68 65 20 |e compil|ing the |
|00000bb0| 58 31 31 20 76 65 72 73 | 69 6f 6e 20 61 6e 64 20 |X11 vers|ion and |
|00000bc0| 74 68 65 20 58 31 31 20 | 69 6e 63 6c 75 64 65 20 |the X11 |include |
|00000bd0| 61 6e 64 0a 58 23 20 20 | 6c 69 62 72 61 72 79 20 |and.X# |library |
|00000be0| 66 69 6c 65 73 20 61 72 | 65 20 6e 6f 74 20 69 6e |files ar|e not in|
|00000bf0| 20 61 20 73 74 61 6e 64 | 61 72 64 20 70 6c 61 63 | a stand|ard plac|
|00000c00| 65 2c 20 74 68 65 6e 20 | 74 68 65 20 66 6f 6c 6c |e, then |the foll|
|00000c10| 6f 77 69 6e 67 0a 58 23 | 20 20 74 77 6f 20 6c 69 |owing.X#| two li|
|00000c20| 6e 65 73 20 73 68 6f 75 | 6c 64 20 62 65 20 75 6e |nes shou|ld be un|
|00000c30| 63 6f 6d 6d 65 6e 74 65 | 64 2c 20 61 6e 64 20 73 |commente|d, and s|
|00000c40| 65 74 20 61 70 70 72 6f | 70 72 69 61 74 65 6c 79 |et appro|priately|
|00000c50| 2e 0a 58 23 0a 58 23 58 | 31 31 49 4e 43 44 49 52 |..X#.X#X|11INCDIR|
|00000c60| 20 20 20 20 20 20 20 20 | 20 3d 20 2d 49 24 28 4f | | = -I$(O|
|00000c70| 50 45 4e 57 49 4e 48 4f | 4d 45 29 2f 69 6e 63 6c |PENWINHO|ME)/incl|
|00000c80| 75 64 65 0a 58 23 58 31 | 31 4c 49 42 44 49 52 20 |ude.X#X1|1LIBDIR |
|00000c90| 20 20 20 20 20 20 20 20 | 3d 20 2d 4c 24 28 4f 50 | |= -L$(OP|
|00000ca0| 45 4e 57 49 4e 48 4f 4d | 45 29 2f 6c 69 62 0a 58 |ENWINHOM|E)/lib.X|
|00000cb0| 23 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |#-------|--------|
|00000cc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000cd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ce0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000cf0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0a 58 23 20 20 49 66 |--------|-.X# If|
|00000d00| 20 79 6f 75 20 61 72 65 | 20 63 6f 6d 70 69 6c 69 | you are| compili|
|00000d10| 6e 67 20 74 68 65 20 58 | 56 69 65 77 20 76 65 72 |ng the X|View ver|
|00000d20| 73 69 6f 6e 2c 20 74 68 | 65 6e 20 74 68 65 20 66 |sion, th|en the f|
|00000d30| 6f 6c 6c 6f 77 69 6e 67 | 20 74 77 6f 20 6c 69 6e |ollowing| two lin|
|00000d40| 65 73 0a 58 23 20 20 73 | 68 6f 75 6c 64 20 62 65 |es.X# s|hould be|
|00000d50| 20 75 6e 63 6f 6d 6d 65 | 6e 74 65 64 2c 20 61 6e | uncomme|nted, an|
|00000d60| 64 20 73 65 74 20 61 70 | 70 72 6f 70 72 69 61 74 |d set ap|propriat|
|00000d70| 65 6c 79 2e 0a 58 23 0a | 58 23 58 56 49 45 57 49 |ely..X#.|X#XVIEWI|
|00000d80| 4e 43 44 49 52 20 20 20 | 20 20 20 3d 20 2d 49 24 |NCDIR | = -I$|
|00000d90| 28 4f 50 45 4e 57 49 4e | 48 4f 4d 45 29 2f 69 6e |(OPENWIN|HOME)/in|
|00000da0| 63 6c 75 64 65 0a 58 23 | 58 56 49 45 57 4c 49 42 |clude.X#|XVIEWLIB|
|00000db0| 44 49 52 20 20 20 20 20 | 20 3d 20 2d 4c 24 28 4f |DIR | = -L$(O|
|00000dc0| 50 45 4e 57 49 4e 48 4f | 4d 45 29 2f 6c 69 62 0a |PENWINHO|ME)/lib.|
|00000dd0| 58 23 0a 58 23 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |X#.X#===|========|
|00000de0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000df0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000e00| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000e10| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000e20| 0a 58 23 0a 58 23 20 20 | 44 65 66 61 75 6c 74 20 |.X#.X# |Default |
|00000e30| 6c 6f 63 61 74 69 6f 6e | 73 20 77 68 65 72 65 20 |location|s where |
|00000e40| 4f 74 68 65 6c 6c 6f 20 | 66 69 6c 65 73 20 77 69 |Othello |files wi|
|00000e50| 6c 6c 20 62 65 20 69 6e | 73 74 61 6c 6c 65 64 2e |ll be in|stalled.|
|00000e60| 0a 58 23 20 20 59 6f 75 | 20 6d 69 67 68 74 20 77 |.X# You| might w|
|00000e70| 69 73 68 20 74 6f 20 61 | 6c 74 65 72 20 74 68 65 |ish to a|lter the|
|00000e80| 73 65 20 76 61 6c 75 65 | 73 2e 0a 58 23 0a 58 42 |se value|s..X#.XB|
|00000e90| 49 4e 44 49 52 20 20 20 | 20 20 20 20 20 20 20 3d |INDIR | =|
|00000ea0| 20 2f 75 73 72 2f 6c 6f | 63 61 6c 2f 67 61 6d 65 | /usr/lo|cal/game|
|00000eb0| 73 0a 58 4c 49 42 44 49 | 52 20 20 20 20 20 20 20 |s.XLIBDI|R |
|00000ec0| 20 20 20 3d 20 2f 75 73 | 72 2f 6c 6f 63 61 6c 2f | = /us|r/local/|
|00000ed0| 6c 69 62 0a 58 4d 41 4e | 44 49 52 20 20 20 20 20 |lib.XMAN|DIR |
|00000ee0| 20 20 20 20 20 3d 20 2f | 75 73 72 2f 6d 61 6e 2f | = /|usr/man/|
|00000ef0| 6d 61 6e 24 28 4d 41 4e | 53 45 43 54 29 0a 58 4d |man$(MAN|SECT).XM|
|00000f00| 41 4e 53 45 43 54 20 20 | 20 20 20 20 20 20 20 3d |ANSECT | =|
|00000f10| 20 6c 0a 58 23 0a 58 23 | 20 20 43 6f 6d 70 69 6c | l.X#.X#| Compil|
|00000f20| 61 74 69 6f 6e 20 66 6c | 61 67 73 20 61 6e 64 20 |ation fl|ags and |
|00000f30| 73 74 61 6e 64 61 72 64 | 20 6d 61 63 72 6f 20 64 |standard| macro d|
|00000f40| 65 66 69 6e 69 74 69 6f | 6e 73 2e 0a 58 23 0a 58 |efinitio|ns..X#.X|
|00000f50| 43 46 4c 41 47 53 20 20 | 20 20 20 20 20 20 20 20 |CFLAGS | |
|00000f60| 3d 20 2d 67 20 24 28 52 | 45 4d 4e 41 4d 45 29 20 |= -g $(R|EMNAME) |
|00000f70| 24 28 53 49 47 52 45 54 | 29 20 24 28 58 31 31 49 |$(SIGRET|) $(X11I|
|00000f80| 4e 43 44 49 52 29 20 24 | 28 58 56 49 45 57 49 4e |NCDIR) $|(XVIEWIN|
|00000f90| 43 44 49 52 29 0a 58 23 | 0a 58 23 3d 3d 3d 3d 3d |CDIR).X#|.X#=====|
|00000fa0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000fb0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000fc0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000fd0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000fe0| 3d 3d 3d 3d 3d 0a 58 0a | 58 42 49 4e 41 52 49 45 |=====.X.|XBINARIE|
|00000ff0| 53 20 20 20 20 20 20 20 | 20 3d 20 73 76 5f 6f 74 |S | = sv_ot|
|00001000| 68 65 6c 6c 6f 20 74 74 | 79 5f 6f 74 68 65 6c 6c |hello tt|y_othell|
|00001010| 6f 20 78 6f 74 68 65 6c | 6c 6f 20 78 76 5f 6f 74 |o xothel|lo xv_ot|
|00001020| 68 65 6c 6c 6f 0a 58 0a | 58 43 43 09 09 3d 20 63 |hello.X.|XCC..= c|
|00001030| 63 0a 58 0a 58 53 54 44 | 53 52 43 53 20 20 20 20 |c.X.XSTD|SRCS |
|00001040| 20 20 20 20 20 3d 20 62 | 6f 61 72 64 73 74 75 66 | = b|oardstuf|
|00001050| 66 2e 63 20 65 76 65 6e | 74 73 2e 63 20 69 74 65 |f.c even|ts.c ite|
|00001060| 6d 73 2e 63 20 6d 61 6b | 65 6d 6f 76 65 2e 63 20 |ms.c mak|emove.c |
|00001070| 6f 74 68 65 6c 6c 6f 2e | 63 20 5c 0a 58 09 09 20 |othello.|c \.X.. |
|00001080| 20 70 72 6f 63 73 2e 63 | 20 72 65 6d 61 72 6b 2e | procs.c| remark.|
|00001090| 63 0a 58 53 54 44 4f 42 | 4a 53 20 20 20 20 20 20 |c.XSTDOB|JS |
|000010a0| 20 20 20 3d 20 62 6f 61 | 72 64 73 74 75 66 66 2e | = boa|rdstuff.|
|000010b0| 6f 20 65 76 65 6e 74 73 | 2e 6f 20 69 74 65 6d 73 |o events|.o items|
|000010c0| 2e 6f 20 6d 61 6b 65 6d | 6f 76 65 2e 6f 20 6f 74 |.o makem|ove.o ot|
|000010d0| 68 65 6c 6c 6f 2e 6f 20 | 5c 0a 58 09 09 20 20 70 |hello.o |\.X.. p|
|000010e0| 72 6f 63 73 2e 6f 20 72 | 65 6d 61 72 6b 2e 6f 0a |rocs.o r|emark.o.|
|000010f0| 58 0a 58 47 53 52 43 53 | 20 20 20 20 20 20 20 20 |X.XGSRCS| |
|00001100| 20 20 20 3d 20 73 75 6e | 76 69 65 77 2e 63 20 74 | = sun|view.c t|
|00001110| 74 79 2e 63 20 78 31 31 | 2e 63 20 78 76 69 65 77 |ty.c x11|.c xview|
|00001120| 2e 63 0a 58 48 44 52 53 | 20 20 20 20 20 20 20 20 |.c.XHDRS| |
|00001130| 20 20 20 20 3d 20 63 6f | 6c 6f 72 2e 68 20 65 78 | = co|lor.h ex|
|00001140| 74 65 72 6e 2e 68 20 69 | 6d 61 67 65 73 2e 68 20 |tern.h i|mages.h |
|00001150| 6f 74 68 65 6c 6c 6f 2e | 68 20 70 61 74 63 68 6c |othello.|h patchl|
|00001160| 65 76 65 6c 2e 68 0a 58 | 49 4d 41 47 45 53 20 20 |evel.h.X|IMAGES |
|00001170| 20 20 20 20 20 20 20 20 | 3d 20 62 6c 61 63 6b 2e | |= black.|
|00001180| 69 63 6f 6e 20 6f 74 68 | 65 6c 6c 6f 2e 69 63 6f |icon oth|ello.ico|
|00001190| 6e 20 6f 74 68 65 6c 6c | 6f 2e 63 6f 6c 6f 72 2e |n othell|o.color.|
|000011a0| 69 63 6f 6e 20 77 68 69 | 74 65 2e 69 63 6f 6e 20 |icon whi|te.icon |
|000011b0| 5c 0a 58 09 09 20 20 62 | 75 74 74 6f 6e 2e 69 6e |\.X.. b|utton.in|
|000011c0| 76 65 72 74 2e 69 63 6f | 6e 20 62 75 74 74 6f 6e |vert.ico|n button|
|000011d0| 2e 6e 6f 72 6d 61 6c 2e | 69 63 6f 6e 20 62 75 74 |.normal.|icon but|
|000011e0| 74 6f 6e 2e 73 74 65 6e | 63 69 6c 2e 69 63 6f 6e |ton.sten|cil.icon|
|000011f0| 20 5c 0a 58 09 09 20 20 | 63 79 63 6c 65 2e 67 6c | \.X.. |cycle.gl|
|00001200| 79 70 68 2e 69 63 6f 6e | 20 63 79 63 6c 65 2e 6c |yph.icon| cycle.l|
|00001210| 69 6e 76 65 72 74 2e 69 | 63 6f 6e 20 63 79 63 6c |invert.i|con cycl|
|00001220| 65 2e 72 69 6e 76 65 72 | 74 2e 69 63 6f 6e 20 5c |e.rinver|t.icon \|
|00001230| 0a 58 09 09 20 20 63 79 | 63 6c 65 2e 73 74 65 6e |.X.. cy|cle.sten|
|00001240| 63 69 6c 2e 69 63 6f 6e | 20 68 67 6c 61 73 73 2e |cil.icon| hglass.|
|00001250| 63 75 72 73 6f 72 20 6e | 6f 63 75 72 2e 63 75 72 |cursor n|ocur.cur|
|00001260| 73 6f 72 0a 58 4f 54 48 | 45 52 53 20 20 20 20 20 |sor.XOTH|ERS |
|00001270| 20 20 20 20 20 3d 20 43 | 48 41 4e 47 45 53 20 52 | = C|HANGES R|
|00001280| 45 41 44 4d 45 20 54 4f | 44 4f 20 6f 74 68 65 6c |EADME TO|DO othel|
|00001290| 6c 6f 2e 31 20 6f 74 68 | 65 6c 6c 6f 2e 72 65 6d |lo.1 oth|ello.rem|
|000012a0| 61 72 6b 73 20 4d 61 6b | 65 66 69 6c 65 0a 58 0a |arks Mak|efile.X.|
|000012b0| 58 53 46 49 4c 45 53 31 | 20 20 20 20 20 20 20 20 |XSFILES1| |
|000012c0| 20 3d 20 24 28 53 54 44 | 53 52 43 53 29 0a 58 53 | = $(STD|SRCS).XS|
|000012d0| 46 49 4c 45 53 32 20 20 | 20 20 20 20 20 20 20 3d |FILES2 | =|
|000012e0| 20 24 28 48 44 52 53 29 | 20 24 28 4f 54 48 45 52 | $(HDRS)| $(OTHER|
|000012f0| 53 29 0a 58 53 46 49 4c | 45 53 33 20 20 20 20 20 |S).XSFIL|ES3 |
|00001300| 20 20 20 20 3d 20 24 28 | 47 53 52 43 53 29 0a 58 | = $(|GSRCS).X|
|00001310| 53 46 49 4c 45 53 34 09 | 09 3d 20 24 28 49 4d 41 |SFILES4.|.= $(IMA|
|00001320| 47 45 53 29 0a 58 0a 58 | 53 56 49 45 57 4c 49 42 |GES).X.X|SVIEWLIB|
|00001330| 53 20 20 20 20 20 20 20 | 3d 20 2d 6c 73 75 6e 74 |S |= -lsunt|
|00001340| 6f 6f 6c 20 2d 6c 73 75 | 6e 77 69 6e 64 6f 77 20 |ool -lsu|nwindow |
|00001350| 2d 6c 70 69 78 72 65 63 | 74 0a 58 54 54 59 4c 49 |-lpixrec|t.XTTYLI|
|00001360| 42 53 20 20 20 20 20 20 | 20 20 20 3d 20 2d 6c 74 |BS | = -lt|
|00001370| 65 72 6d 63 61 70 0a 58 | 58 31 31 4c 49 42 53 20 |ermcap.X|X11LIBS |
|00001380| 20 20 20 20 20 20 20 20 | 3d 20 2d 6c 58 31 31 0a | |= -lX11.|
|00001390| 58 58 56 49 45 57 4c 49 | 42 53 20 20 20 20 20 20 |XXVIEWLI|BS |
|000013a0| 20 3d 20 2d 6c 78 76 69 | 65 77 20 2d 6c 6f 6c 67 | = -lxvi|ew -lolg|
|000013b0| 78 20 2d 6c 58 31 31 0a | 58 0a 58 68 65 6c 70 3a |x -lX11.|X.Xhelp:|
|000013c0| 0a 58 09 09 40 65 63 68 | 6f 0a 58 09 09 40 65 63 |.X..@ech|o.X..@ec|
|000013d0| 68 6f 20 22 59 6f 75 20 | 6e 65 65 64 20 74 6f 20 |ho "You |need to |
|000013e0| 73 70 65 63 69 66 79 20 | 6f 6e 65 20 6f 66 20 74 |specify |one of t|
|000013f0| 68 65 20 66 6f 6c 6c 6f | 77 69 6e 67 20 6f 70 74 |he follo|wing opt|
|00001400| 69 6f 6e 73 3a 22 0a 58 | 09 09 40 65 63 68 6f 0a |ions:".X|..@echo.|
|00001410| 58 09 09 40 65 63 68 6f | 20 22 20 20 6d 61 6b 65 |X..@echo| " make|
|00001420| 20 73 75 6e 76 69 65 77 | 20 20 20 20 2d 20 74 6f | sunview| - to|
|00001430| 20 6d 61 6b 65 20 74 68 | 65 20 53 75 6e 56 69 65 | make th|e SunVie|
|00001440| 77 20 76 65 72 73 69 6f | 6e 2e 22 0a 58 09 09 40 |w versio|n.".X..@|
|00001450| 65 63 68 6f 20 22 20 20 | 6d 61 6b 65 20 74 74 79 |echo " |make tty|
|00001460| 20 20 20 20 20 20 20 20 | 2d 20 74 6f 20 6d 61 6b | |- to mak|
|00001470| 65 20 74 68 65 20 64 75 | 6d 62 20 74 74 79 20 76 |e the du|mb tty v|
|00001480| 65 72 73 69 6f 6e 2e 22 | 0a 58 09 09 40 65 63 68 |ersion."|.X..@ech|
|00001490| 6f 20 22 20 20 6d 61 6b | 65 20 78 31 31 20 20 20 |o " mak|e x11 |
|000014a0| 20 20 20 20 20 2d 20 74 | 6f 20 6d 61 6b 65 20 74 | - t|o make t|
|000014b0| 68 65 20 58 31 31 20 76 | 65 72 73 69 6f 6e 2e 22 |he X11 v|ersion."|
|000014c0| 0a 58 09 09 40 65 63 68 | 6f 20 22 20 20 6d 61 6b |.X..@ech|o " mak|
|000014d0| 65 20 78 76 69 65 77 20 | 20 20 20 20 20 2d 20 74 |e xview | - t|
|000014e0| 6f 20 6d 61 6b 65 20 74 | 68 65 20 58 56 69 65 77 |o make t|he XView|
|000014f0| 20 76 65 72 73 69 6f 6e | 2e 22 0a 58 09 09 40 65 | version|.".X..@e|
|00001500| 63 68 6f 0a 58 09 09 40 | 65 63 68 6f 20 22 54 68 |cho.X..@|echo "Th|
|00001510| 69 73 20 73 68 6f 75 6c | 64 20 62 65 20 66 6f 6c |is shoul|d be fol|
|00001520| 6c 6f 77 65 64 20 62 79 | 3a 22 0a 58 09 09 40 65 |lowed by|:".X..@e|
|00001530| 63 68 6f 0a 58 09 09 40 | 65 63 68 6f 20 22 20 20 |cho.X..@|echo " |
|00001540| 6d 61 6b 65 20 69 6e 73 | 74 61 6c 6c 22 0a 58 09 |make ins|tall".X.|
|00001550| 09 40 65 63 68 6f 20 22 | 20 20 6d 61 6b 65 20 63 |.@echo "| make c|
|00001560| 6c 65 61 6e 22 0a 58 09 | 09 40 65 63 68 6f 0a 58 |lean".X.|.@echo.X|
|00001570| 0a 58 61 6c 6c 3a 20 20 | 20 20 20 20 20 20 20 20 |.Xall: | |
|00001580| 20 20 24 28 42 49 4e 41 | 52 49 45 53 29 0a 58 0a | $(BINA|RIES).X.|
|00001590| 58 73 75 6e 76 69 65 77 | 3a 20 20 20 20 20 20 20 |Xsunview|: |
|000015a0| 20 24 28 53 54 44 4f 42 | 4a 53 29 20 73 75 6e 76 | $(STDOB|JS) sunv|
|000015b0| 69 65 77 2e 6f 0a 58 09 | 09 24 28 43 43 29 20 2d |iew.o.X.|.$(CC) -|
|000015c0| 6f 20 73 76 5f 6f 74 68 | 65 6c 6c 6f 20 24 28 43 |o sv_oth|ello $(C|
|000015d0| 46 4c 41 47 53 29 20 24 | 28 53 54 44 4f 42 4a 53 |FLAGS) $|(STDOBJS|
|000015e0| 29 20 73 75 6e 76 69 65 | 77 2e 6f 20 24 28 53 56 |) sunvie|w.o $(SV|
|000015f0| 49 45 57 4c 49 42 53 29 | 0a 58 09 09 2d 63 70 20 |IEWLIBS)|.X..-cp |
|00001600| 73 76 5f 6f 74 68 65 6c | 6c 6f 20 6f 74 68 65 6c |sv_othel|lo othel|
|00001610| 6c 6f 0a 58 0a 58 74 74 | 79 3a 20 20 20 20 20 20 |lo.X.Xtt|y: |
|00001620| 20 20 20 20 20 20 24 28 | 53 54 44 4f 42 4a 53 29 | $(|STDOBJS)|
|00001630| 20 74 74 79 2e 6f 0a 58 | 09 09 24 28 43 43 29 20 | tty.o.X|..$(CC) |
|00001640| 2d 6f 20 74 74 79 5f 6f | 74 68 65 6c 6c 6f 20 24 |-o tty_o|thello $|
|00001650| 28 43 46 4c 41 47 53 29 | 20 24 28 53 54 44 4f 42 |(CFLAGS)| $(STDOB|
|00001660| 4a 53 29 20 74 74 79 2e | 6f 20 24 28 54 54 59 4c |JS) tty.|o $(TTYL|
|00001670| 49 42 53 29 0a 58 09 09 | 2d 63 70 20 74 74 79 5f |IBS).X..|-cp tty_|
|00001680| 6f 74 68 65 6c 6c 6f 20 | 6f 74 68 65 6c 6c 6f 0a |othello |othello.|
|00001690| 58 0a 58 78 31 31 3a 20 | 20 20 20 20 20 20 20 20 |X.Xx11: | |
|000016a0| 20 20 20 24 28 53 54 44 | 4f 42 4a 53 29 20 78 31 | $(STD|OBJS) x1|
|000016b0| 31 2e 6f 0a 58 09 09 24 | 28 43 43 29 20 2d 6f 20 |1.o.X..$|(CC) -o |
|000016c0| 78 6f 74 68 65 6c 6c 6f | 20 24 28 58 31 31 4c 49 |xothello| $(X11LI|
|000016d0| 42 44 49 52 29 20 24 28 | 43 46 4c 41 47 53 29 20 |BDIR) $(|CFLAGS) |
|000016e0| 24 28 53 54 44 4f 42 4a | 53 29 20 78 31 31 2e 6f |$(STDOBJ|S) x11.o|
|000016f0| 20 5c 0a 58 09 09 09 20 | 20 20 20 20 20 20 24 28 | \.X... | $(|
|00001700| 58 31 31 4c 49 42 53 29 | 0a 58 09 09 2d 63 70 20 |X11LIBS)|.X..-cp |
|00001710| 78 6f 74 68 65 6c 6c 6f | 20 6f 74 68 65 6c 6c 6f |xothello| othello|
|00001720| 0a 58 0a 58 78 76 69 65 | 77 3a 20 20 20 20 20 20 |.X.Xxvie|w: |
|00001730| 20 20 20 20 24 28 53 54 | 44 4f 42 4a 53 29 20 78 | $(ST|DOBJS) x|
|00001740| 76 69 65 77 2e 6f 0a 58 | 09 09 24 28 43 43 29 20 |view.o.X|..$(CC) |
|00001750| 2d 6f 20 78 76 5f 6f 74 | 68 65 6c 6c 6f 20 24 28 |-o xv_ot|hello $(|
|00001760| 58 56 49 45 57 4c 49 42 | 44 49 52 29 20 24 28 43 |XVIEWLIB|DIR) $(C|
|00001770| 46 4c 41 47 53 29 20 24 | 28 53 54 44 4f 42 4a 53 |FLAGS) $|(STDOBJS|
|00001780| 29 20 5c 0a 58 09 09 09 | 09 78 76 69 65 77 2e 6f |) \.X...|.xview.o|
|00001790| 20 24 28 58 56 49 45 57 | 4c 49 42 53 29 0a 58 09 | $(XVIEW|LIBS).X.|
|000017a0| 09 2d 63 70 20 78 76 5f | 6f 74 68 65 6c 6c 6f 20 |.-cp xv_|othello |
|000017b0| 6f 74 68 65 6c 6c 6f 0a | 58 0a 58 69 6e 73 74 61 |othello.|X.Xinsta|
|000017c0| 6c 6c 3a 0a 58 09 09 69 | 6e 73 74 61 6c 6c 20 2d |ll:.X..i|nstall -|
|000017d0| 73 20 2d 6d 20 37 35 31 | 20 6f 74 68 65 6c 6c 6f |s -m 751| othello|
|000017e0| 20 24 28 42 49 4e 44 49 | 52 29 0a 58 09 09 69 6e | $(BINDI|R).X..in|
|000017f0| 73 74 61 6c 6c 20 2d 63 | 20 2d 6d 20 36 34 34 20 |stall -c| -m 644 |
|00001800| 6f 74 68 65 6c 6c 6f 2e | 72 65 6d 61 72 6b 73 20 |othello.|remarks |
|00001810| 24 28 4c 49 42 44 49 52 | 29 0a 58 09 09 69 6e 73 |$(LIBDIR|).X..ins|
|00001820| 74 61 6c 6c 20 2d 63 20 | 2d 6d 20 36 34 34 20 6f |tall -c |-m 644 o|
|00001830| 74 68 65 6c 6c 6f 2e 31 | 20 24 28 4d 41 4e 44 49 |thello.1| $(MANDI|
|00001840| 52 29 2f 6f 74 68 65 6c | 6c 6f 2e 24 28 4d 41 4e |R)/othel|lo.$(MAN|
|00001850| 53 45 43 54 29 0a 58 0a | 58 63 6c 65 61 6e 3a 3b |SECT).X.|Xclean:;|
|00001860| 20 20 20 20 20 20 20 20 | 20 72 6d 20 2d 66 20 2a | | rm -f *|
|00001870| 2e 6f 20 50 61 72 74 2a | 20 2a 7e 20 24 28 42 49 |.o Part*| *~ $(BI|
|00001880| 4e 41 52 49 45 53 29 20 | 63 6f 72 65 0a 58 0a 58 |NARIES) |core.X.X|
|00001890| 6c 69 6e 74 3a 3b 20 20 | 20 20 20 20 20 20 20 20 |lint:; | |
|000018a0| 6c 69 6e 74 20 24 28 53 | 54 44 53 52 43 53 29 20 |lint $(S|TDSRCS) |
|000018b0| 73 75 6e 76 69 65 77 2e | 63 20 24 28 53 56 49 45 |sunview.|c $(SVIE|
|000018c0| 57 4c 49 42 53 29 0a 58 | 09 09 6c 69 6e 74 20 24 |WLIBS).X|..lint $|
|000018d0| 28 53 54 44 53 52 43 53 | 29 20 74 74 79 2e 63 20 |(STDSRCS|) tty.c |
|000018e0| 24 28 54 54 59 4c 49 42 | 53 29 0a 58 09 09 6c 69 |$(TTYLIB|S).X..li|
|000018f0| 6e 74 20 24 28 53 54 44 | 53 52 43 53 29 20 78 76 |nt $(STD|SRCS) xv|
|00001900| 69 65 77 2e 63 20 24 28 | 58 56 49 45 57 4c 49 42 |iew.c $(|XVIEWLIB|
|00001910| 53 29 20 0a 58 09 09 6c | 69 6e 74 20 24 28 53 54 |S) .X..l|int $(ST|
|00001920| 44 53 52 43 53 29 20 78 | 31 31 2e 63 20 24 28 58 |DSRCS) x|11.c $(X|
|00001930| 31 31 4c 49 42 53 29 20 | 0a 58 0a 58 73 68 61 72 |11LIBS) |.X.Xshar|
|00001940| 3a 3b 20 20 20 20 20 20 | 20 20 20 20 73 68 61 72 |:; | shar|
|00001950| 2e 73 63 72 69 70 74 20 | 24 28 53 46 49 4c 45 53 |.script |$(SFILES|
|00001960| 31 29 20 3e 20 50 61 72 | 74 31 0a 58 09 09 73 68 |1) > Par|t1.X..sh|
|00001970| 61 72 2e 73 63 72 69 70 | 74 20 24 28 53 46 49 4c |ar.scrip|t $(SFIL|
|00001980| 45 53 32 29 20 3e 20 50 | 61 72 74 32 0a 58 09 09 |ES2) > P|art2.X..|
|00001990| 73 68 61 72 2e 73 63 72 | 69 70 74 20 24 28 53 46 |shar.scr|ipt $(SF|
|000019a0| 49 4c 45 53 33 29 20 3e | 20 50 61 72 74 33 0a 58 |ILES3) >| Part3.X|
|000019b0| 09 09 73 68 61 72 2e 73 | 63 72 69 70 74 20 24 28 |..shar.s|cript $(|
|000019c0| 53 46 49 4c 45 53 34 29 | 20 3e 20 50 61 72 74 34 |SFILES4)| > Part4|
|000019d0| 0a 58 0a 58 63 72 65 61 | 74 65 3a 20 20 20 20 20 |.X.Xcrea|te: |
|000019e0| 20 20 20 20 53 43 43 53 | 0a 58 09 09 2d 73 63 63 | SCCS|.X..-scc|
|000019f0| 73 20 63 72 65 61 74 65 | 20 24 28 53 54 44 53 52 |s create| $(STDSR|
|00001a00| 43 53 29 20 24 28 47 53 | 52 43 53 29 20 24 28 48 |CS) $(GS|RCS) $(H|
|00001a10| 44 52 53 29 20 24 28 49 | 4d 41 47 45 53 29 20 24 |DRS) $(I|MAGES) $|
|00001a20| 28 4f 54 48 45 52 53 29 | 0a 58 0a 58 53 43 43 53 |(OTHERS)|.X.XSCCS|
|00001a30| 3a 0a 58 09 09 6d 6b 64 | 69 72 20 53 43 43 53 0a |:.X..mkd|ir SCCS.|
|00001a40| 58 09 09 63 68 6d 6f 64 | 20 37 35 35 20 53 43 43 |X..chmod| 755 SCC|
|00001a50| 53 0a 58 0a 58 62 6f 61 | 72 64 73 74 75 66 66 2e |S.X.Xboa|rdstuff.|
|00001a60| 6f 3a 20 20 20 62 6f 61 | 72 64 73 74 75 66 66 2e |o: boa|rdstuff.|
|00001a70| 63 20 63 6f 6c 6f 72 2e | 68 20 6f 74 68 65 6c 6c |c color.|h othell|
|00001a80| 6f 2e 68 20 65 78 74 65 | 72 6e 2e 68 0a 58 65 76 |o.h exte|rn.h.Xev|
|00001a90| 65 6e 74 73 2e 6f 3a 20 | 20 20 20 20 20 20 65 76 |ents.o: | ev|
|00001aa0| 65 6e 74 73 2e 63 20 6f | 74 68 65 6c 6c 6f 2e 68 |ents.c o|thello.h|
|00001ab0| 20 63 6f 6c 6f 72 2e 68 | 20 65 78 74 65 72 6e 2e | color.h| extern.|
|00001ac0| 68 0a 58 69 74 65 6d 73 | 2e 6f 3a 20 20 20 20 20 |h.Xitems|.o: |
|00001ad0| 20 20 20 69 74 65 6d 73 | 2e 63 20 63 6f 6c 6f 72 | items|.c color|
|00001ae0| 2e 68 20 6f 74 68 65 6c | 6c 6f 2e 68 20 65 78 74 |.h othel|lo.h ext|
|00001af0| 65 72 6e 2e 68 0a 58 6d | 61 6b 65 6d 6f 76 65 2e |ern.h.Xm|akemove.|
|00001b00| 6f 3a 20 20 20 20 20 6d | 61 6b 65 6d 6f 76 65 2e |o: m|akemove.|
|00001b10| 63 20 6f 74 68 65 6c 6c | 6f 2e 68 20 65 78 74 65 |c othell|o.h exte|
|00001b20| 72 6e 2e 68 0a 58 6f 74 | 68 65 6c 6c 6f 2e 6f 3a |rn.h.Xot|hello.o:|
|00001b30| 20 20 20 20 20 20 6f 74 | 68 65 6c 6c 6f 2e 63 20 | ot|hello.c |
|00001b40| 6f 74 68 65 6c 6c 6f 2e | 68 20 63 6f 6c 6f 72 2e |othello.|h color.|
|00001b50| 68 20 70 61 74 63 68 6c | 65 76 65 6c 2e 68 0a 58 |h patchl|evel.h.X|
|00001b60| 70 72 6f 63 73 2e 6f 3a | 20 20 20 20 20 20 20 20 |procs.o:| |
|00001b70| 70 72 6f 63 73 2e 63 20 | 63 6f 6c 6f 72 2e 68 20 |procs.c |color.h |
|00001b80| 6f 74 68 65 6c 6c 6f 2e | 68 20 65 78 74 65 72 6e |othello.|h extern|
|00001b90| 2e 68 0a 58 72 65 6d 61 | 72 6b 2e 6f 3a 20 20 20 |.h.Xrema|rk.o: |
|00001ba0| 20 20 20 20 72 65 6d 61 | 72 6b 2e 63 20 6f 74 68 | rema|rk.c oth|
|00001bb0| 65 6c 6c 6f 2e 68 20 65 | 78 74 65 72 6e 2e 68 0a |ello.h e|xtern.h.|
|00001bc0| 58 73 75 6e 76 69 65 77 | 2e 6f 3a 20 20 20 20 20 |Xsunview|.o: |
|00001bd0| 20 73 75 6e 76 69 65 77 | 2e 63 20 6f 74 68 65 6c | sunview|.c othel|
|00001be0| 6c 6f 2e 68 20 63 6f 6c | 6f 72 2e 68 20 65 78 74 |lo.h col|or.h ext|
|00001bf0| 65 72 6e 2e 68 20 69 6d | 61 67 65 73 2e 68 20 24 |ern.h im|ages.h $|
|00001c00| 28 49 4d 41 47 45 53 29 | 0a 58 74 74 79 2e 6f 3a |(IMAGES)|.Xtty.o:|
|00001c10| 20 20 20 20 20 20 20 20 | 20 20 74 74 79 2e 63 20 | | tty.c |
|00001c20| 6f 74 68 65 6c 6c 6f 2e | 68 20 63 6f 6c 6f 72 2e |othello.|h color.|
|00001c30| 68 20 65 78 74 65 72 6e | 2e 68 0a 58 78 31 31 2e |h extern|.h.Xx11.|
|00001c40| 6f 3a 20 20 20 20 20 20 | 20 20 20 20 78 31 31 2e |o: | x11.|
|00001c50| 63 20 6f 74 68 65 6c 6c | 6f 2e 68 20 63 6f 6c 6f |c othell|o.h colo|
|00001c60| 72 2e 68 20 65 78 74 65 | 72 6e 2e 68 20 69 6d 61 |r.h exte|rn.h ima|
|00001c70| 67 65 73 2e 68 20 24 28 | 49 4d 41 47 45 53 29 0a |ges.h $(|IMAGES).|
|00001c80| 58 78 76 69 65 77 2e 6f | 3a 20 20 20 20 20 20 20 |Xxview.o|: |
|00001c90| 20 78 76 69 65 77 2e 63 | 20 6f 74 68 65 6c 6c 6f | xview.c| othello|
|00001ca0| 2e 68 20 63 6f 6c 6f 72 | 2e 68 20 65 78 74 65 72 |.h color|.h exter|
|00001cb0| 6e 2e 68 20 69 6d 61 67 | 65 73 2e 68 20 24 28 49 |n.h imag|es.h $(I|
|00001cc0| 4d 41 47 45 53 29 0a 45 | 4e 44 5f 4f 46 5f 46 49 |MAGES).E|ND_OF_FI|
|00001cd0| 4c 45 0a 69 66 20 74 65 | 73 74 20 35 39 32 30 20 |LE.if te|st 5920 |
|00001ce0| 2d 6e 65 20 60 77 63 20 | 2d 63 20 3c 27 4d 61 6b |-ne `wc |-c <'Mak|
|00001cf0| 65 66 69 6c 65 27 60 3b | 20 74 68 65 6e 0a 20 20 |efile'`;| then. |
|00001d00| 20 20 65 63 68 6f 20 73 | 68 61 72 3a 20 5c 22 27 | echo s|har: \"'|
|00001d10| 4d 61 6b 65 66 69 6c 65 | 27 5c 22 20 75 6e 70 61 |Makefile|'\" unpa|
|00001d20| 63 6b 65 64 20 77 69 74 | 68 20 77 72 6f 6e 67 20 |cked wit|h wrong |
|00001d30| 73 69 7a 65 21 0a 66 69 | 0a 23 20 65 6e 64 20 6f |size!.fi|.# end o|
|00001d40| 66 20 27 4d 61 6b 65 66 | 69 6c 65 27 0a 66 69 0a |f 'Makef|ile'.fi.|
|00001d50| 69 66 20 74 65 73 74 20 | 2d 66 20 27 54 4f 44 4f |if test |-f 'TODO|
|00001d60| 27 20 2d 61 20 22 24 7b | 31 7d 22 20 21 3d 20 22 |' -a "${|1}" != "|
|00001d70| 2d 63 22 20 3b 20 74 68 | 65 6e 20 0a 20 20 65 63 |-c" ; th|en . ec|
|00001d80| 68 6f 20 73 68 61 72 3a | 20 57 69 6c 6c 20 6e 6f |ho shar:| Will no|
|00001d90| 74 20 63 6c 6f 62 62 65 | 72 20 65 78 69 73 74 69 |t clobbe|r existi|
|00001da0| 6e 67 20 66 69 6c 65 20 | 5c 22 27 54 4f 44 4f 27 |ng file |\"'TODO'|
|00001db0| 5c 22 0a 65 6c 73 65 0a | 65 63 68 6f 20 73 68 61 |\".else.|echo sha|
|00001dc0| 72 3a 20 45 78 74 72 61 | 63 74 69 6e 67 20 5c 22 |r: Extra|cting \"|
|00001dd0| 27 54 4f 44 4f 27 5c 22 | 20 5c 28 38 31 20 63 68 |'TODO'\"| \(81 ch|
|00001de0| 61 72 61 63 74 65 72 73 | 5c 29 0a 73 65 64 20 22 |aracters|\).sed "|
|00001df0| 73 2f 5e 58 2f 2f 22 20 | 3e 27 54 4f 44 4f 27 20 |s/^X//" |>'TODO' |
|00001e00| 3c 3c 27 45 4e 44 5f 4f | 46 5f 46 49 4c 45 27 0a |<<'END_O|F_FILE'.|
|00001e10| 58 31 2f 20 54 68 65 20 | 63 6f 6c 6f 72 20 69 63 |X1/ The |color ic|
|00001e20| 6f 6e 20 64 6f 65 73 6e | 27 74 20 77 61 6e 74 20 |on doesn|'t want |
|00001e30| 74 6f 20 62 65 20 64 69 | 73 70 6c 61 79 65 64 20 |to be di|splayed |
|00001e40| 63 6f 72 72 65 63 74 6c | 79 20 77 69 74 68 20 74 |correctl|y with t|
|00001e50| 68 65 20 58 56 69 65 77 | 20 76 65 72 73 69 6f 6e |he XView| version|
|00001e60| 2e 0a 45 4e 44 5f 4f 46 | 5f 46 49 4c 45 0a 69 66 |..END_OF|_FILE.if|
|00001e70| 20 74 65 73 74 20 38 31 | 20 2d 6e 65 20 60 77 63 | test 81| -ne `wc|
|00001e80| 20 2d 63 20 3c 27 54 4f | 44 4f 27 60 3b 20 74 68 | -c <'TO|DO'`; th|
|00001e90| 65 6e 0a 20 20 20 20 65 | 63 68 6f 20 73 68 61 72 |en. e|cho shar|
|00001ea0| 3a 20 5c 22 27 54 4f 44 | 4f 27 5c 22 20 75 6e 70 |: \"'TOD|O'\" unp|
|00001eb0| 61 63 6b 65 64 20 77 69 | 74 68 20 77 72 6f 6e 67 |acked wi|th wrong|
|00001ec0| 20 73 69 7a 65 21 0a 66 | 69 0a 23 20 65 6e 64 20 | size!.f|i.# end |
|00001ed0| 6f 66 20 27 54 4f 44 4f | 27 0a 66 69 0a 69 66 20 |of 'TODO|'.fi.if |
|00001ee0| 74 65 73 74 20 2d 66 20 | 27 62 6f 61 72 64 73 74 |test -f |'boardst|
|00001ef0| 75 66 66 2e 63 27 20 2d | 61 20 22 24 7b 31 7d 22 |uff.c' -|a "${1}"|
|00001f00| 20 21 3d 20 22 2d 63 22 | 20 3b 20 74 68 65 6e 20 | != "-c"| ; then |
|00001f10| 0a 20 20 65 63 68 6f 20 | 73 68 61 72 3a 20 57 69 |. echo |shar: Wi|
|00001f20| 6c 6c 20 6e 6f 74 20 63 | 6c 6f 62 62 65 72 20 65 |ll not c|lobber e|
|00001f30| 78 69 73 74 69 6e 67 20 | 66 69 6c 65 20 5c 22 27 |xisting |file \"'|
|00001f40| 62 6f 61 72 64 73 74 75 | 66 66 2e 63 27 5c 22 0a |boardstu|ff.c'\".|
|00001f50| 65 6c 73 65 0a 65 63 68 | 6f 20 73 68 61 72 3a 20 |else.ech|o shar: |
|00001f60| 45 78 74 72 61 63 74 69 | 6e 67 20 5c 22 27 62 6f |Extracti|ng \"'bo|
|00001f70| 61 72 64 73 74 75 66 66 | 2e 63 27 5c 22 20 5c 28 |ardstuff|.c'\" \(|
|00001f80| 37 30 35 36 20 63 68 61 | 72 61 63 74 65 72 73 5c |7056 cha|racters\|
|00001f90| 29 0a 73 65 64 20 22 73 | 2f 5e 58 2f 2f 22 20 3e |).sed "s|/^X//" >|
|00001fa0| 27 62 6f 61 72 64 73 74 | 75 66 66 2e 63 27 20 3c |'boardst|uff.c' <|
|00001fb0| 3c 27 45 4e 44 5f 4f 46 | 5f 46 49 4c 45 27 0a 58 |<'END_OF|_FILE'.X|
|00001fc0| 2f 2a 4c 49 4e 54 4c 49 | 42 52 41 52 59 2a 2f 0a |/*LINTLI|BRARY*/.|
|00001fd0| 58 0a 58 2f 2a 20 20 40 | 28 23 29 62 6f 61 72 64 |X.X/* @|(#)board|
|00001fe0| 73 74 75 66 66 2e 63 20 | 31 2e 34 20 39 30 2f 30 |stuff.c |1.4 90/0|
|00001ff0| 34 2f 30 35 0a 58 20 2a | 0a 58 20 2a 20 20 56 61 |4/05.X *|.X * Va|
|00002000| 72 69 6f 75 73 20 62 6f | 61 72 64 20 72 6f 75 74 |rious bo|ard rout|
|00002010| 69 6e 65 73 20 75 73 65 | 64 20 62 79 20 74 68 65 |ines use|d by the|
|00002020| 20 6f 74 68 65 6c 6c 6f | 20 67 61 6d 65 2e 0a 58 | othello| game..X|
|00002030| 20 2a 0a 58 20 2a 20 20 | 4f 72 69 67 69 6e 61 6c | *.X * |Original|
|00002040| 20 53 75 6e 56 69 65 77 | 20 76 65 72 73 69 6f 6e | SunView| version|
|00002050| 20 62 79 20 45 64 20 46 | 61 6c 6b 20 2d 20 53 75 | by Ed F|alk - Su|
|00002060| 6e 20 4d 69 63 72 6f 73 | 79 73 74 65 6d 73 20 49 |n Micros|ystems I|
|00002070| 6e 63 2e 0a 58 20 2a 0a | 58 20 2a 20 20 52 65 77 |nc..X *.|X * Rew|
|00002080| 72 69 74 74 65 6e 20 66 | 6f 72 20 69 6e 64 65 70 |ritten f|or indep|
|00002090| 65 6e 64 65 6e 74 20 75 | 73 65 20 62 79 0a 58 20 |endent u|se by.X |
|000020a0| 2a 20 20 20 20 20 20 20 | 20 20 20 52 69 63 68 20 |* | Rich |
|000020b0| 42 75 72 72 69 64 67 65 | 2c 20 53 75 6e 20 4d 69 |Burridge|, Sun Mi|
|000020c0| 63 72 6f 73 79 73 74 65 | 6d 73 2c 20 41 75 73 74 |crosyste|ms, Aust|
|000020d0| 72 61 6c 69 61 0a 58 20 | 2a 0a 58 20 2a 20 20 43 |ralia.X |*.X * C|
|000020e0| 6f 70 79 72 69 67 68 74 | 20 28 63 29 20 45 64 20 |opyright| (c) Ed |
|000020f0| 46 61 6c 6b 20 26 20 52 | 69 63 68 20 42 75 72 72 |Falk & R|ich Burr|
|00002100| 69 64 67 65 20 2d 20 53 | 75 6e 20 4d 69 63 72 6f |idge - S|un Micro|
|00002110| 73 79 73 74 65 6d 73 2e | 0a 58 20 2a 20 20 20 20 |systems.|.X * |
|00002120| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002130| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002140| 20 20 20 20 20 20 41 6c | 6c 20 72 69 67 68 74 73 | Al|l rights|
|00002150| 20 72 65 73 65 72 76 65 | 64 2e 0a 58 20 2a 0a 58 | reserve|d..X *.X|
|00002160| 20 2a 20 20 50 65 72 6d | 69 73 73 69 6f 6e 20 69 | * Perm|ission i|
|00002170| 73 20 67 69 76 65 6e 20 | 74 6f 20 64 69 73 74 72 |s given |to distr|
|00002180| 69 62 75 74 65 20 74 68 | 65 73 65 20 73 6f 75 72 |ibute th|ese sour|
|00002190| 63 65 73 2c 20 61 73 20 | 6c 6f 6e 67 20 61 73 20 |ces, as |long as |
|000021a0| 74 68 65 0a 58 20 2a 20 | 20 69 6e 74 72 6f 64 75 |the.X * | introdu|
|000021b0| 63 74 6f 72 79 20 6d 65 | 73 73 61 67 65 73 20 61 |ctory me|ssages a|
|000021c0| 72 65 20 6e 6f 74 20 72 | 65 6d 6f 76 65 64 2c 20 |re not r|emoved, |
|000021d0| 61 6e 64 20 6e 6f 20 6d | 6f 6e 69 65 73 20 61 72 |and no m|onies ar|
|000021e0| 65 20 65 78 63 68 61 6e | 67 65 64 2e 0a 58 20 2a |e exchan|ged..X *|
|000021f0| 0a 58 20 2a 20 20 4e 6f | 20 72 65 73 70 6f 6e 73 |.X * No| respons|
|00002200| 69 62 69 6c 69 74 79 20 | 69 73 20 74 61 6b 65 6e |ibility |is taken|
|00002210| 20 66 6f 72 20 61 6e 79 | 20 65 72 72 6f 72 73 20 | for any| errors |
|00002220| 6f 6e 20 69 6e 61 63 63 | 75 72 61 63 69 65 73 20 |on inacc|uracies |
|00002230| 69 6e 68 65 72 65 6e 74 | 0a 58 20 2a 20 20 65 69 |inherent|.X * ei|
|00002240| 74 68 65 72 20 74 6f 20 | 74 68 65 20 63 6f 6d 6d |ther to |the comm|
|00002250| 65 6e 74 73 20 6f 72 20 | 74 68 65 20 63 6f 64 65 |ents or |the code|
|00002260| 20 6f 66 20 74 68 69 73 | 20 70 72 6f 67 72 61 6d | of this| program|
|00002270| 2c 20 62 75 74 20 69 66 | 20 72 65 70 6f 72 74 65 |, but if| reporte|
|00002280| 64 0a 58 20 2a 20 20 74 | 6f 20 6d 65 2c 20 74 68 |d.X * t|o me, th|
|00002290| 65 6e 20 61 6e 20 61 74 | 74 65 6d 70 74 20 77 69 |en an at|tempt wi|
|000022a0| 6c 6c 20 62 65 20 6d 61 | 64 65 20 74 6f 20 66 69 |ll be ma|de to fi|
|000022b0| 78 20 74 68 65 6d 2e 0a | 58 20 2a 2f 0a 58 0a 58 |x them..|X */.X.X|
|000022c0| 23 69 6e 63 6c 75 64 65 | 20 22 63 6f 6c 6f 72 2e |#include| "color.|
|000022d0| 68 22 0a 58 23 69 6e 63 | 6c 75 64 65 20 22 6f 74 |h".X#inc|lude "ot|
|000022e0| 68 65 6c 6c 6f 2e 68 22 | 0a 58 23 69 6e 63 6c 75 |hello.h"|.X#inclu|
|000022f0| 64 65 20 22 65 78 74 65 | 72 6e 2e 68 22 0a 58 0a |de "exte|rn.h".X.|
|00002300| 58 0a 58 61 6e 69 6d 61 | 74 65 5f 6d 6f 76 65 28 |X.Xanima|te_move(|
|00002310| 6d 6f 76 65 29 0a 58 69 | 6e 74 20 6d 6f 76 65 20 |move).Xi|nt move |
|00002320| 3b 0a 58 7b 0a 58 20 20 | 69 6e 74 20 78 30 2c 20 |;.X{.X |int x0, |
|00002330| 79 30 2c 20 78 31 2c 20 | 79 31 2c 20 78 2c 20 79 |y0, x1, |y1, x, y|
|00002340| 2c 20 64 78 2c 20 64 79 | 2c 20 63 74 72 20 3b 0a |, dx, dy|, ctr ;.|
|00002350| 58 0a 58 20 20 6c 6f 63 | 6b 28 49 53 5f 4f 4e 29 |X.X loc|k(IS_ON)|
|00002360| 20 3b 0a 58 20 20 67 65 | 74 5f 78 79 28 6d 6f 76 | ;.X ge|t_xy(mov|
|00002370| 65 2c 20 26 78 31 2c 20 | 26 79 31 29 20 3b 0a 58 |e, &x1, |&y1) ;.X|
|00002380| 20 20 64 78 20 3d 20 78 | 31 20 3b 0a 58 20 20 64 | dx = x|1 ;.X d|
|00002390| 79 20 3d 20 79 31 20 3b | 0a 58 20 20 69 66 20 28 |y = y1 ;|.X if (|
|000023a0| 78 31 20 3e 20 79 31 29 | 0a 58 20 20 20 20 7b 0a |x1 > y1)|.X {.|
|000023b0| 58 20 20 20 20 20 20 63 | 74 72 20 3d 20 64 78 20 |X c|tr = dx |
|000023c0| 2f 20 32 20 3b 0a 58 20 | 20 20 20 20 20 78 20 3d |/ 2 ;.X | x =|
|000023d0| 20 42 42 4f 52 44 45 52 | 20 3b 0a 58 20 20 20 20 | BBORDER| ;.X |
|000023e0| 20 20 79 20 3d 20 42 42 | 4f 52 44 45 52 20 3b 0a | y = BB|ORDER ;.|
|000023f0| 58 20 20 20 20 20 20 64 | 72 61 77 5f 70 69 65 63 |X d|raw_piec|
|00002400| 65 28 57 48 49 54 45 2c | 20 78 2c 20 43 59 2b 79 |e(WHITE,| x, CY+y|
|00002410| 2c 20 52 49 4e 56 29 20 | 3b 0a 58 20 20 20 20 20 |, RINV) |;.X |
|00002420| 20 77 68 69 6c 65 20 28 | 78 20 3c 20 78 31 29 0a | while (|x < x1).|
|00002430| 58 20 20 20 20 20 20 20 | 20 7b 0a 58 20 20 20 20 |X | {.X |
|00002440| 20 20 20 20 20 20 73 65 | 74 5f 74 69 6d 65 72 28 | se|t_timer(|
|00002450| 29 20 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 78 |) ;.X | x|
|00002460| 30 20 3d 20 78 20 3b 0a | 58 20 20 20 20 20 20 20 |0 = x ;.|X |
|00002470| 20 20 20 79 30 20 3d 20 | 79 20 3b 0a 58 20 20 20 | y0 = |y ;.X |
|00002480| 20 20 20 20 20 20 20 78 | 20 2b 3d 20 6d 6f 76 65 | x| += move|
|00002490| 5f 64 65 6c 74 61 20 3b | 0a 58 20 20 20 20 20 20 |_delta ;|.X |
|000024a0| 20 20 20 20 69 66 20 28 | 28 63 74 72 20 2d 3d 20 | if (|(ctr -= |
|000024b0| 64 79 29 20 3c 20 30 29 | 0a 58 20 20 20 20 20 20 |dy) < 0)|.X |
|000024c0| 20 20 20 20 20 20 7b 0a | 58 20 20 20 20 20 20 20 | {.|X |
|000024d0| 20 20 20 20 20 20 20 63 | 74 72 20 2b 3d 20 64 78 | c|tr += dx|
|000024e0| 20 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 | ;.X | |
|000024f0| 20 20 79 20 2b 3d 20 6d | 6f 76 65 5f 64 65 6c 74 | y += m|ove_delt|
|00002500| 61 20 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 |a ;.X | |
|00002510| 20 7d 0a 58 20 20 20 20 | 20 20 20 20 20 20 64 72 | }.X | dr|
|00002520| 61 77 5f 70 69 65 63 65 | 28 57 48 49 54 45 2c 20 |aw_piece|(WHITE, |
|00002530| 78 2c 20 43 59 2b 79 2c | 20 52 49 4e 56 29 20 3b |x, CY+y,| RINV) ;|
|00002540| 0a 58 20 20 20 20 20 20 | 20 20 20 20 64 72 61 77 |.X | draw|
|00002550| 5f 70 69 65 63 65 28 57 | 48 49 54 45 2c 20 78 30 |_piece(W|HITE, x0|
|00002560| 2c 20 43 59 2b 79 30 2c | 20 52 49 4e 56 29 20 3b |, CY+y0,| RINV) ;|
|00002570| 0a 58 20 20 20 20 20 20 | 20 20 20 20 6e 61 70 5f |.X | nap_|
|00002580| 75 70 74 6f 28 31 29 20 | 3b 0a 58 20 20 20 20 20 |upto(1) |;.X |
|00002590| 20 20 20 7d 0a 58 20 20 | 20 20 20 20 64 72 61 77 | }.X | draw|
|000025a0| 5f 70 69 65 63 65 28 57 | 48 49 54 45 2c 20 78 2c |_piece(W|HITE, x,|
|000025b0| 20 43 59 2b 79 2c 20 52 | 49 4e 56 29 20 3b 0a 58 | CY+y, R|INV) ;.X|
|000025c0| 20 20 20 20 7d 0a 58 20 | 20 65 6c 73 65 0a 58 20 | }.X | else.X |
|000025d0| 20 20 20 7b 20 0a 58 20 | 20 20 20 20 20 63 74 72 | { .X | ctr|
|000025e0| 20 3d 20 64 79 20 2f 20 | 32 20 3b 0a 58 20 20 20 | = dy / |2 ;.X |
|000025f0| 20 20 20 78 20 3d 20 42 | 42 4f 52 44 45 52 20 3b | x = B|BORDER ;|
|00002600| 0a 58 20 20 20 20 20 20 | 79 20 3d 20 42 42 4f 52 |.X |y = BBOR|
|00002610| 44 45 52 20 3b 0a 58 20 | 20 20 20 20 20 64 72 61 |DER ;.X | dra|
|00002620| 77 5f 70 69 65 63 65 28 | 57 48 49 54 45 2c 20 78 |w_piece(|WHITE, x|
|00002630| 2c 20 43 59 2b 79 2c 20 | 52 49 4e 56 29 20 3b 0a |, CY+y, |RINV) ;.|
|00002640| 58 20 20 20 20 20 20 77 | 68 69 6c 65 20 28 79 20 |X w|hile (y |
|00002650| 3c 20 79 31 29 0a 58 20 | 20 20 20 20 20 20 20 7b |< y1).X | {|
|00002660| 0a 58 20 20 20 20 20 20 | 20 20 20 20 73 65 74 5f |.X | set_|
|00002670| 74 69 6d 65 72 28 29 20 | 3b 0a 58 20 20 20 20 20 |timer() |;.X |
|00002680| 20 20 20 20 20 78 30 20 | 3d 20 78 20 3b 0a 58 20 | x0 |= x ;.X |
|00002690| 20 20 20 20 20 20 20 20 | 20 79 30 20 3d 20 79 20 | | y0 = y |
|000026a0| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 20 79 20 2b |;.X | y +|
|000026b0| 3d 20 6d 6f 76 65 5f 64 | 65 6c 74 61 20 3b 0a 58 |= move_d|elta ;.X|
|000026c0| 20 20 20 20 20 20 20 20 | 20 20 69 66 20 28 28 63 | | if ((c|
|000026d0| 74 72 20 2d 3d 20 64 78 | 29 20 3c 20 30 29 0a 58 |tr -= dx|) < 0).X|
|000026e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 7b 0a 58 20 | | {.X |
|000026f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 63 74 72 | | ctr|
|00002700| 20 2b 3d 20 64 79 20 3b | 0a 58 20 20 20 20 20 20 | += dy ;|.X |
|00002710| 20 20 20 20 20 20 20 20 | 78 20 2b 3d 20 6d 6f 76 | |x += mov|
|00002720| 65 5f 64 65 6c 74 61 20 | 3b 0a 58 20 20 20 20 20 |e_delta |;.X |
|00002730| 20 20 20 20 20 20 20 7d | 0a 58 20 20 20 20 20 20 | }|.X |
|00002740| 20 20 20 20 64 72 61 77 | 5f 70 69 65 63 65 28 57 | draw|_piece(W|
|00002750| 48 49 54 45 2c 20 78 2c | 20 43 59 2b 79 2c 20 52 |HITE, x,| CY+y, R|
|00002760| 49 4e 56 29 20 3b 0a 58 | 20 20 20 20 20 20 20 20 |INV) ;.X| |
|00002770| 20 20 64 72 61 77 5f 70 | 69 65 63 65 28 57 48 49 | draw_p|iece(WHI|
|00002780| 54 45 2c 20 78 30 2c 20 | 43 59 2b 79 30 2c 20 52 |TE, x0, |CY+y0, R|
|00002790| 49 4e 56 29 20 3b 0a 58 | 20 20 20 20 20 20 20 20 |INV) ;.X| |
|000027a0| 20 20 6e 61 70 5f 75 70 | 74 6f 28 31 29 20 3b 0a | nap_up|to(1) ;.|
|000027b0| 58 20 20 20 20 20 20 20 | 20 7d 0a 58 20 20 20 20 |X | }.X |
|000027c0| 20 20 64 72 61 77 5f 70 | 69 65 63 65 28 57 48 49 | draw_p|iece(WHI|
|000027d0| 54 45 2c 20 78 2c 20 43 | 59 2b 79 2c 20 52 49 4e |TE, x, C|Y+y, RIN|
|000027e0| 56 29 20 3b 0a 58 20 20 | 20 20 7d 0a 58 20 20 6c |V) ;.X | }.X l|
|000027f0| 6f 63 6b 28 49 53 5f 4f | 46 46 29 20 3b 0a 58 7d |ock(IS_O|FF) ;.X}|
|00002800| 0a 58 0a 58 0a 58 2f 2a | 20 20 54 68 69 73 20 72 |.X.X.X/*| This r|
|00002810| 6f 75 74 69 6e 65 20 63 | 68 65 63 6b 73 20 74 6f |outine c|hecks to|
|00002820| 20 73 65 65 20 69 66 20 | 61 20 6d 6f 76 65 20 63 | see if |a move c|
|00002830| 61 6e 20 62 65 20 6d 61 | 64 65 20 66 6f 72 20 74 |an be ma|de for t|
|00002840| 68 69 73 20 70 6c 61 79 | 65 72 2e 0a 58 20 2a 20 |his play|er..X * |
|00002850| 20 49 66 20 6e 6f 74 2c | 20 76 61 72 69 6f 75 73 | If not,| various|
|00002860| 20 63 68 65 63 6b 73 20 | 61 72 65 20 6d 61 64 65 | checks |are made|
|00002870| 20 74 6f 20 73 65 65 20 | 69 66 20 74 68 65 20 67 | to see |if the g|
|00002880| 61 6d 65 20 69 73 20 66 | 69 6e 69 73 68 65 64 2e |ame is f|inished.|
|00002890| 0a 58 20 2a 20 20 52 65 | 74 75 72 6e 20 76 61 6c |.X * Re|turn val|
|000028a0| 75 65 20 69 6e 64 69 63 | 61 74 65 73 20 69 66 20 |ue indic|ates if |
|000028b0| 61 20 6d 6f 76 65 20 63 | 61 6e 20 62 65 20 6d 61 |a move c|an be ma|
|000028c0| 64 65 2e 0a 58 20 2a 2f | 0a 58 0a 58 63 68 65 63 |de..X */|.X.Xchec|
|000028d0| 6b 28 70 6c 61 79 65 72 | 2c 20 77 68 6f 2c 20 62 |k(player|, who, b|
|000028e0| 65 29 0a 58 69 6e 74 20 | 70 6c 61 79 65 72 20 3b |e).Xint |player ;|
|000028f0| 0a 58 63 68 61 72 20 2a | 77 68 6f 5b 5d 2c 20 2a |.Xchar *|who[], *|
|00002900| 62 65 5b 5d 20 3b 0a 58 | 7b 0a 58 20 20 69 66 20 |be[] ;.X|{.X if |
|00002910| 28 28 21 63 6f 75 6e 74 | 28 62 6f 61 72 64 2c 20 |((!count|(board, |
|00002920| 42 4c 41 43 4b 29 29 20 | 7c 7c 20 28 21 63 6f 75 |BLACK)) ||| (!cou|
|00002930| 6e 74 28 62 6f 61 72 64 | 2c 20 57 48 49 54 45 29 |nt(board|, WHITE)|
|00002940| 29 20 7c 7c 0a 58 20 20 | 20 20 20 20 28 28 63 6f |) ||.X | ((co|
|00002950| 75 6e 74 28 62 6f 61 72 | 64 2c 20 42 4c 41 43 4b |unt(boar|d, BLACK|
|00002960| 29 20 2b 20 63 6f 75 6e | 74 28 62 6f 61 72 64 2c |) + coun|t(board,|
|00002970| 20 57 48 49 54 45 29 29 | 20 3d 3d 20 36 34 29 29 | WHITE))| == 64))|
|00002980| 0a 58 20 20 20 20 7b 0a | 58 20 20 20 20 20 20 77 |.X {.|X w|
|00002990| 68 6f 5f 77 69 6e 73 28 | 29 20 3b 0a 58 20 20 20 |ho_wins(|) ;.X |
|000029a0| 20 20 20 63 6d 6f 64 65 | 20 3d 20 47 41 4d 45 5f | cmode| = GAME_|
|000029b0| 4f 56 45 52 20 3b 0a 58 | 20 20 20 20 20 20 6d 65 |OVER ;.X| me|
|000029c0| 73 73 61 67 65 28 50 41 | 4e 45 4c 5f 4d 45 53 2c |ssage(PA|NEL_MES,|
|000029d0| 20 22 47 61 6d 65 20 6f | 76 65 72 22 29 20 3b 0a | "Game o|ver") ;.|
|000029e0| 58 20 20 20 20 20 20 72 | 65 74 75 72 6e 28 46 41 |X r|eturn(FA|
|000029f0| 4c 53 45 29 20 3b 0a 58 | 20 20 20 20 7d 0a 58 20 |LSE) ;.X| }.X |
|00002a00| 20 69 66 20 28 28 6d 6f | 76 65 20 3d 20 6d 61 6b | if ((mo|ve = mak|
|00002a10| 65 6d 6f 76 65 28 62 6f | 61 72 64 2c 20 70 6c 61 |emove(bo|ard, pla|
|00002a20| 79 65 72 2c 20 30 29 29 | 20 3d 3d 20 4e 4f 4d 4f |yer, 0))| == NOMO|
|00002a30| 56 45 29 0a 58 20 20 20 | 20 7b 0a 58 20 20 20 20 |VE).X | {.X |
|00002a40| 20 20 6d 65 73 73 61 67 | 65 28 50 41 4e 45 4c 5f | messag|e(PANEL_|
|00002a50| 4d 45 53 2c 20 73 70 72 | 69 6e 74 66 28 6c 69 6e |MES, spr|intf(lin|
|00002a60| 65 2c 22 25 73 20 25 73 | 20 66 6f 72 63 65 64 20 |e,"%s %s| forced |
|00002a70| 74 6f 20 70 61 73 73 22 | 2c 0a 58 20 20 20 20 20 |to pass"|,.X |
|00002a80| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002a90| 20 20 20 77 68 6f 5b 28 | 69 6e 74 29 20 70 6c 61 | who[(|int) pla|
|00002aa0| 79 5f 6d 6f 64 65 5d 2c | 20 62 65 5b 28 69 6e 74 |y_mode],| be[(int|
|00002ab0| 29 20 70 6c 61 79 5f 6d | 6f 64 65 5d 29 29 20 3b |) play_m|ode])) ;|
|00002ac0| 0a 58 20 20 20 20 20 20 | 69 66 20 28 28 6d 6f 76 |.X |if ((mov|
|00002ad0| 65 20 3d 20 6d 61 6b 65 | 6d 6f 76 65 28 62 6f 61 |e = make|move(boa|
|00002ae0| 72 64 2c 20 4f 50 50 4f | 4e 45 4e 54 28 70 6c 61 |rd, OPPO|NENT(pla|
|00002af0| 79 65 72 29 2c 20 30 29 | 29 20 3d 3d 20 4e 4f 4d |yer), 0)|) == NOM|
|00002b00| 4f 56 45 29 0a 58 20 20 | 20 20 20 20 20 20 7b 0a |OVE).X | {.|
|00002b10| 58 20 20 20 20 20 20 20 | 20 20 20 77 68 6f 5f 77 |X | who_w|
|00002b20| 69 6e 73 28 29 20 3b 0a | 58 20 20 20 20 20 20 20 |ins() ;.|X |
|00002b30| 20 20 20 63 6d 6f 64 65 | 20 3d 20 47 41 4d 45 5f | cmode| = GAME_|
|00002b40| 4f 56 45 52 20 3b 0a 58 | 20 20 20 20 20 20 20 20 |OVER ;.X| |
|00002b50| 20 20 6d 65 73 73 61 67 | 65 28 50 41 4e 45 4c 5f | messag|e(PANEL_|
|00002b60| 4d 45 53 2c 20 22 47 61 | 6d 65 20 6f 76 65 72 22 |MES, "Ga|me over"|
|00002b70| 29 20 3b 0a 58 20 20 20 | 20 20 20 20 20 7d 0a 58 |) ;.X | }.X|
|00002b80| 20 20 20 20 20 20 72 65 | 74 75 72 6e 28 46 41 4c | re|turn(FAL|
|00002b90| 53 45 29 20 3b 0a 58 20 | 20 20 20 7d 0a 58 20 20 |SE) ;.X | }.X |
|00002ba0| 72 65 74 75 72 6e 28 54 | 52 55 45 29 20 3b 0a 58 |return(T|RUE) ;.X|
|00002bb0| 7d 0a 58 0a 58 0a 58 63 | 6f 75 6e 74 28 62 6f 61 |}.X.X.Xc|ount(boa|
|00002bc0| 72 64 2c 20 70 6c 61 79 | 65 72 29 20 20 20 20 2f |rd, play|er) /|
|00002bd0| 2a 20 43 6f 75 6e 74 20 | 74 68 65 20 6e 75 6d 62 |* Count |the numb|
|00002be0| 65 72 20 6f 66 20 70 6c | 61 79 65 72 20 70 69 65 |er of pl|ayer pie|
|00002bf0| 63 65 73 20 6f 6e 20 74 | 68 65 20 62 6f 61 72 64 |ces on t|he board|
|00002c00| 2e 20 2a 2f 0a 58 69 6e | 74 20 70 6c 61 79 65 72 |. */.Xin|t player|
|00002c10| 20 3b 0a 58 42 4f 41 52 | 44 20 62 6f 61 72 64 20 | ;.XBOAR|D board |
|00002c20| 3b 0a 58 7b 0a 58 20 20 | 69 6e 74 20 69 2c 20 6e |;.X{.X |int i, n|
|00002c30| 20 3b 0a 58 0a 58 20 20 | 6e 20 3d 20 30 20 3b 0a | ;.X.X |n = 0 ;.|
|00002c40| 58 20 20 46 4f 52 5f 42 | 4f 41 52 44 28 69 29 0a |X FOR_B|OARD(i).|
|00002c50| 58 20 20 20 20 69 66 20 | 28 62 6f 61 72 64 2e 73 |X if |(board.s|
|00002c60| 71 75 61 72 65 5b 69 5d | 20 3d 3d 20 70 6c 61 79 |quare[i]| == play|
|00002c70| 65 72 29 20 6e 2b 2b 20 | 3b 0a 58 20 20 72 65 74 |er) n++ |;.X ret|
|00002c80| 75 72 6e 28 6e 29 20 3b | 0a 58 7d 0a 58 0a 58 0a |urn(n) ;|.X}.X.X.|
|00002c90| 58 64 6f 5f 6d 6f 76 65 | 28 70 6c 61 79 65 72 2c |Xdo_move|(player,|
|00002ca0| 20 77 68 6f 29 0a 58 69 | 6e 74 20 70 6c 61 79 65 | who).Xi|nt playe|
|00002cb0| 72 20 3b 0a 58 63 68 61 | 72 20 2a 77 68 6f 5b 5d |r ;.Xcha|r *who[]|
|00002cc0| 20 3b 0a 58 7b 0a 58 20 | 20 69 6e 74 20 74 61 6b | ;.X{.X | int tak|
|00002cd0| 65 6e 20 3b 20 20 20 20 | 20 20 20 20 20 20 20 20 |en ; | |
|00002ce0| 20 20 20 20 2f 2a 20 4e | 75 6d 62 65 72 20 6f 66 | /* N|umber of|
|00002cf0| 20 70 69 65 63 65 73 20 | 66 6c 69 70 70 65 64 20 | pieces |flipped |
|00002d00| 74 68 69 73 20 67 6f 2e | 20 2a 2f 0a 58 0a 58 20 |this go.| */.X.X |
|00002d10| 20 74 61 6b 65 6e 20 3d | 20 66 6f 72 6d 66 6c 69 | taken =| formfli|
|00002d20| 70 6c 69 73 74 28 6d 6f | 76 65 2c 20 70 6c 61 79 |plist(mo|ve, play|
|00002d30| 65 72 29 20 3b 0a 58 20 | 20 75 70 64 61 74 65 5f |er) ;.X | update_|
|00002d40| 62 6f 61 72 64 5f 69 6d | 61 67 65 28 29 20 3b 0a |board_im|age() ;.|
|00002d50| 58 20 20 69 66 20 28 74 | 61 6b 65 6e 20 3d 3d 20 |X if (t|aken == |
|00002d60| 31 29 0a 58 20 20 20 20 | 6d 65 73 73 61 67 65 28 |1).X |message(|
|00002d70| 50 41 4e 45 4c 5f 4d 45 | 53 2c 20 73 70 72 69 6e |PANEL_ME|S, sprin|
|00002d80| 74 66 28 6c 69 6e 65 2c | 20 22 25 73 20 74 6f 6f |tf(line,| "%s too|
|00002d90| 6b 20 31 20 70 69 65 63 | 65 22 2c 20 77 68 6f 5b |k 1 piec|e", who[|
|00002da0| 28 69 6e 74 29 20 70 6c | 61 79 5f 6d 6f 64 65 5d |(int) pl|ay_mode]|
|00002db0| 29 29 20 3b 0a 58 20 20 | 65 6c 73 65 0a 58 20 20 |)) ;.X |else.X |
|00002dc0| 20 20 6d 65 73 73 61 67 | 65 28 50 41 4e 45 4c 5f | messag|e(PANEL_|
|00002dd0| 4d 45 53 2c 20 73 70 72 | 69 6e 74 66 28 6c 69 6e |MES, spr|intf(lin|
|00002de0| 65 2c 20 22 25 73 20 74 | 6f 6f 6b 20 25 64 20 70 |e, "%s t|ook %d p|
|00002df0| 69 65 63 65 73 22 2c 0a | 58 20 20 20 20 20 20 20 |ieces",.|X |
|00002e00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002e10| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 77 | | w|
|00002e20| 68 6f 5b 28 69 6e 74 29 | 20 70 6c 61 79 5f 6d 6f |ho[(int)| play_mo|
|00002e30| 64 65 5d 2c 74 61 6b 65 | 6e 29 29 20 3b 0a 58 7d |de],take|n)) ;.X}|
|00002e40| 0a 58 0a 58 0a 58 66 6f | 72 6d 66 6c 69 70 6c 69 |.X.X.Xfo|rmflipli|
|00002e50| 73 74 28 6d 6f 76 65 2c | 20 70 6c 61 79 65 72 29 |st(move,| player)|
|00002e60| 0a 58 69 6e 74 20 6d 6f | 76 65 2c 20 70 6c 61 79 |.Xint mo|ve, play|
|00002e70| 65 72 20 3b 0a 58 7b 20 | 20 20 20 20 20 20 20 0a |er ;.X{ | .|
|00002e80| 58 20 20 69 6e 74 20 63 | 6e 74 2c 20 69 2c 20 6f |X int c|nt, i, o|
|00002e90| 6c 64 5f 63 6e 74 20 3b | 0a 58 0a 58 20 20 6f 6c |ld_cnt ;|.X.X ol|
|00002ea0| 64 5f 63 6e 74 20 3d 20 | 63 6f 75 6e 74 28 62 6f |d_cnt = |count(bo|
|00002eb0| 61 72 64 2c 20 70 6c 61 | 79 65 72 29 20 3b 0a 58 |ard, pla|yer) ;.X|
|00002ec0| 20 20 46 4f 52 5f 42 4f | 41 52 44 28 69 29 20 6f | FOR_BO|ARD(i) o|
|00002ed0| 6c 64 5f 62 6f 61 72 64 | 2e 73 71 75 61 72 65 5b |ld_board|.square[|
|00002ee0| 69 5d 20 3d 20 62 6f 61 | 72 64 2e 73 71 75 61 72 |i] = boa|rd.squar|
|00002ef0| 65 5b 69 5d 20 3b 0a 58 | 20 20 6f 6c 64 5f 62 6f |e[i] ;.X| old_bo|
|00002f00| 61 72 64 2e 6d 6f 76 65 | 73 5f 6c 65 66 74 20 3d |ard.move|s_left =|
|00002f10| 20 62 6f 61 72 64 2e 6d | 6f 76 65 73 5f 6c 65 66 | board.m|oves_lef|
|00002f20| 74 20 3b 0a 58 20 20 64 | 6f 6d 6f 76 65 28 26 6f |t ;.X d|omove(&o|
|00002f30| 6c 64 5f 62 6f 61 72 64 | 2c 20 6d 6f 76 65 2c 20 |ld_board|, move, |
|00002f40| 26 62 6f 61 72 64 2c 20 | 70 6c 61 79 65 72 29 20 |&board, |player) |
|00002f50| 3b 0a 58 20 20 46 4f 52 | 5f 42 4f 41 52 44 28 69 |;.X FOR|_BOARD(i|
|00002f60| 29 20 6d 6f 76 65 73 5b | 36 33 20 2d 20 62 6f 61 |) moves[|63 - boa|
|00002f70| 72 64 2e 6d 6f 76 65 73 | 5f 6c 65 66 74 5d 2e 73 |rd.moves|_left].s|
|00002f80| 71 75 61 72 65 5b 69 5d | 20 3d 20 62 6f 61 72 64 |quare[i]| = board|
|00002f90| 2e 73 71 75 61 72 65 5b | 69 5d 20 3b 0a 58 20 20 |.square[|i] ;.X |
|00002fa0| 6d 6f 76 65 73 5b 36 33 | 20 2d 20 62 6f 61 72 64 |moves[63| - board|
|00002fb0| 2e 6d 6f 76 65 73 5f 6c | 65 66 74 5d 2e 6d 6f 76 |.moves_l|eft].mov|
|00002fc0| 65 73 5f 6c 65 66 74 20 | 3d 20 62 6f 61 72 64 2e |es_left |= board.|
|00002fd0| 6d 6f 76 65 73 5f 6c 65 | 66 74 20 3b 0a 58 20 20 |moves_le|ft ;.X |
|00002fe0| 63 6e 74 20 3d 20 63 6f | 75 6e 74 28 62 6f 61 72 |cnt = co|unt(boar|
|00002ff0| 64 2c 20 70 6c 61 79 65 | 72 29 20 3b 0a 58 20 20 |d, playe|r) ;.X |
|00003000| 72 65 74 75 72 6e 28 63 | 6e 74 20 2d 20 6f 6c 64 |return(c|nt - old|
|00003010| 5f 63 6e 74 20 2d 20 31 | 29 20 3b 0a 58 7d 0a 58 |_cnt - 1|) ;.X}.X|
|00003020| 0a 58 0a 58 69 6e 69 74 | 62 6f 61 72 64 28 29 20 |.X.Xinit|board() |
|00003030| 20 20 20 2f 2a 20 49 6e | 69 74 69 61 6c 69 73 65 | /* In|itialise|
|00003040| 20 74 68 65 20 6f 74 68 | 65 6c 6c 6f 20 62 6f 61 | the oth|ello boa|
|00003050| 72 64 2e 20 2a 2f 0a 58 | 7b 0a 58 20 20 73 74 61 |rd. */.X|{.X sta|
|00003060| 74 69 63 20 69 6e 74 20 | 69 76 61 6c 73 5b 34 5d |tic int |ivals[4]|
|00003070| 20 3d 20 7b 20 32 37 2c | 20 32 38 2c 20 33 35 2c | = { 27,| 28, 35,|
|00003080| 20 33 36 20 7d 20 3b 0a | 58 20 20 73 74 61 74 69 | 36 } ;.|X stati|
|00003090| 63 20 69 6e 74 20 69 63 | 6f 6c 6f 72 73 5b 34 5d |c int ic|olors[4]|
|000030a0| 20 3d 20 7b 20 42 4c 41 | 43 4b 2c 20 57 48 49 54 | = { BLA|CK, WHIT|
|000030b0| 45 2c 20 57 48 49 54 45 | 2c 20 42 4c 41 43 4b 20 |E, WHITE|, BLACK |
|000030c0| 7d 20 3b 0a 58 20 20 69 | 6e 74 20 69 2c 20 6a 20 |} ;.X i|nt i, j |
|000030d0| 2c 20 6e 20 3b 0a 58 0a | 58 20 20 66 6f 72 20 28 |, n ;.X.|X for (|
|000030e0| 6e 20 3d 20 30 3b 20 6e | 20 3c 20 34 3b 20 6e 2b |n = 0; n| < 4; n+|
|000030f0| 2b 29 0a 58 20 20 20 20 | 7b 0a 58 20 20 20 20 20 |+).X |{.X |
|00003100| 20 46 4f 52 5f 42 4f 41 | 52 44 28 69 29 20 6d 6f | FOR_BOA|RD(i) mo|
|00003110| 76 65 73 5b 6e 5d 2e 73 | 71 75 61 72 65 5b 69 5d |ves[n].s|quare[i]|
|00003120| 20 3d 20 46 52 45 45 20 | 3b 0a 58 20 20 20 20 20 | = FREE |;.X |
|00003130| 20 66 6f 72 20 28 6a 20 | 3d 20 30 3b 20 6a 20 3c | for (j |= 0; j <|
|00003140| 3d 20 6e 3b 20 6a 2b 2b | 29 20 6d 6f 76 65 73 5b |= n; j++|) moves[|
|00003150| 6e 5d 2e 73 71 75 61 72 | 65 5b 69 76 61 6c 73 5b |n].squar|e[ivals[|
|00003160| 6a 5d 5d 20 3d 20 69 63 | 6f 6c 6f 72 73 5b 6a 5d |j]] = ic|olors[j]|
|00003170| 20 3b 0a 58 20 20 20 20 | 20 20 6d 6f 76 65 73 5b | ;.X | moves[|
|00003180| 6e 5d 2e 6d 6f 76 65 73 | 5f 6c 65 66 74 20 3d 20 |n].moves|_left = |
|00003190| 36 33 20 2d 20 6e 20 3b | 0a 58 20 20 20 20 7d 0a |63 - n ;|.X }.|
|000031a0| 58 0a 58 20 20 46 4f 52 | 5f 42 4f 41 52 44 28 69 |X.X FOR|_BOARD(i|
|000031b0| 29 20 6f 6c 64 5f 62 6f | 61 72 64 2e 73 71 75 61 |) old_bo|ard.squa|
|000031c0| 72 65 5b 69 5d 20 3d 20 | 62 6f 61 72 64 2e 73 71 |re[i] = |board.sq|
|000031d0| 75 61 72 65 5b 69 5d 20 | 3d 20 46 52 45 45 20 3b |uare[i] |= FREE ;|
|000031e0| 0a 58 20 20 62 6f 61 72 | 64 2e 73 71 75 61 72 65 |.X boar|d.square|
|000031f0| 5b 32 37 5d 20 3d 20 42 | 4c 41 43 4b 20 3b 0a 58 |[27] = B|LACK ;.X|
|00003200| 20 20 62 6f 61 72 64 2e | 73 71 75 61 72 65 5b 32 | board.|square[2|
|00003210| 38 5d 20 3d 20 57 48 49 | 54 45 20 3b 0a 58 20 20 |8] = WHI|TE ;.X |
|00003220| 62 6f 61 72 64 2e 73 71 | 75 61 72 65 5b 33 35 5d |board.sq|uare[35]|
|00003230| 20 3d 20 57 48 49 54 45 | 20 3b 0a 58 20 20 62 6f | = WHITE| ;.X bo|
|00003240| 61 72 64 2e 73 71 75 61 | 72 65 5b 33 36 5d 20 3d |ard.squa|re[36] =|
|00003250| 20 42 4c 41 43 4b 20 3b | 0a 58 20 20 62 6f 61 72 | BLACK ;|.X boar|
|00003260| 64 2e 6d 6f 76 65 73 5f | 6c 65 66 74 20 3d 20 36 |d.moves_|left = 6|
|00003270| 30 20 3b 0a 58 7d 0a 58 | 0a 58 0a 58 6d 6f 76 65 |0 ;.X}.X|.X.Xmove|
|00003280| 5f 61 6e 64 5f 63 68 65 | 63 6b 28 70 6c 61 79 65 |_and_che|ck(playe|
|00003290| 72 2c 20 77 68 6f 2c 20 | 62 65 2c 20 6f 70 70 5f |r, who, |be, opp_|
|000032a0| 77 68 6f 2c 20 6f 70 70 | 5f 62 65 29 0a 58 69 6e |who, opp|_be).Xin|
|000032b0| 74 20 70 6c 61 79 65 72 | 20 3b 0a 58 63 68 61 72 |t player| ;.Xchar|
|000032c0| 20 2a 77 68 6f 5b 5d 2c | 20 2a 62 65 5b 5d 2c 20 | *who[],| *be[], |
|000032d0| 2a 6f 70 70 5f 77 68 6f | 5b 5d 2c 20 2a 6f 70 70 |*opp_who|[], *opp|
|000032e0| 5f 62 65 5b 5d 20 3b 0a | 58 7b 0a 58 20 20 64 6f |_be[] ;.|X{.X do|
|000032f0| 5f 6d 6f 76 65 28 70 6c | 61 79 65 72 2c 20 77 68 |_move(pl|ayer, wh|
|00003300| 6f 29 20 3b 0a 58 20 20 | 66 6f 72 20 28 3b 3b 29 |o) ;.X |for (;;)|
|00003310| 0a 58 20 20 20 20 69 66 | 20 28 63 68 65 63 6b 28 |.X if| (check(|
|00003320| 4f 50 50 4f 4e 45 4e 54 | 28 70 6c 61 79 65 72 29 |OPPONENT|(player)|
|00003330| 2c 20 6f 70 70 5f 77 68 | 6f 2c 20 6f 70 70 5f 62 |, opp_wh|o, opp_b|
|00003340| 65 29 20 3d 3d 20 54 52 | 55 45 29 0a 58 20 20 20 |e) == TR|UE).X |
|00003350| 20 20 20 7b 0a 58 20 20 | 20 20 20 20 20 20 74 68 | {.X | th|
|00003360| 69 6e 6b 28 4f 50 50 4f | 4e 45 4e 54 28 70 6c 61 |ink(OPPO|NENT(pla|
|00003370| 79 65 72 29 2c 20 6f 70 | 70 5f 77 68 6f 29 20 3b |yer), op|p_who) ;|
|00003380| 0a 58 20 20 20 20 20 20 | 20 20 69 66 20 28 63 68 |.X | if (ch|
|00003390| 65 63 6b 28 70 6c 61 79 | 65 72 2c 20 77 68 6f 2c |eck(play|er, who,|
|000033a0| 62 65 29 20 3d 3d 20 54 | 52 55 45 29 20 62 72 65 |be) == T|RUE) bre|
|000033b0| 61 6b 20 3b 0a 58 20 20 | 20 20 20 20 20 20 69 66 |ak ;.X | if|
|000033c0| 20 28 63 6d 6f 64 65 20 | 3d 3d 20 47 41 4d 45 5f | (cmode |== GAME_|
|000033d0| 4f 56 45 52 29 20 62 72 | 65 61 6b 20 3b 0a 58 20 |OVER) br|eak ;.X |
|000033e0| 20 20 20 20 20 7d 0a 58 | 20 20 20 20 65 6c 73 65 | }.X| else|
|000033f0| 0a 58 20 20 20 20 20 20 | 7b 0a 58 20 20 20 20 20 |.X |{.X |
|00003400| 20 20 20 69 66 20 28 63 | 6d 6f 64 65 20 21 3d 20 | if (c|mode != |
|00003410| 47 41 4d 45 5f 4f 56 45 | 52 29 20 63 6d 6f 64 65 |GAME_OVE|R) cmode|
|00003420| 20 3d 20 28 65 6e 75 6d | 20 63 61 6e 74 79 70 65 | = (enum| cantype|
|00003430| 29 20 28 28 69 6e 74 29 | 20 63 6d 6f 64 65 20 2d |) ((int)| cmode -|
|00003440| 20 31 29 20 3b 0a 58 20 | 20 20 20 20 20 20 20 72 | 1) ;.X | r|
|00003450| 65 74 75 72 6e 20 3b 0a | 58 20 20 20 20 20 20 7d |eturn ;.|X }|
|00003460| 0a 58 7d 0a 58 0a 58 0a | 58 6e 61 70 5f 75 70 74 |.X}.X.X.|Xnap_upt|
|00003470| 6f 28 6e 29 20 20 20 20 | 20 20 20 20 20 20 2f 2a |o(n) | /*|
|00003480| 20 53 6c 65 65 70 20 75 | 70 74 6f 20 6e 20 6d 69 | Sleep u|pto n mi|
|00003490| 63 72 6f 73 65 63 6f 6e | 64 73 20 66 72 6f 6d 20 |crosecon|ds from |
|000034a0| 73 74 61 72 74 20 6f 66 | 20 74 69 6d 65 72 2e 20 |start of| timer. |
|000034b0| 2a 2f 0a 58 69 6e 74 20 | 6e 20 3b 0a 58 7b 0a 58 |*/.Xint |n ;.X{.X|
|000034c0| 20 20 73 74 72 75 63 74 | 20 74 69 6d 65 76 61 6c | struct| timeval|
|000034d0| 20 63 74 70 20 3b 0a 58 | 20 20 73 74 72 75 63 74 | ctp ;.X| struct|
|000034e0| 20 74 69 6d 65 7a 6f 6e | 65 20 63 74 7a 70 20 3b | timezon|e ctzp ;|
|000034f0| 0a 58 20 20 6c 6f 6e 67 | 20 65 6c 61 70 73 65 64 |.X long| elapsed|
|00003500| 20 3b 20 20 20 20 20 2f | 2a 20 4e 75 6d 62 65 72 | ; /|* Number|
|00003510| 20 6f 66 20 6d 69 63 72 | 6f 73 65 63 6f 6e 64 73 | of micr|oseconds|
|00003520| 20 73 69 6e 63 65 20 74 | 69 6d 65 72 20 73 74 61 | since t|imer sta|
|00003530| 72 74 65 64 2e 20 2a 2f | 0a 58 0a 58 20 20 47 45 |rted. */|.X.X GE|
|00003540| 54 54 49 4d 45 4f 46 44 | 41 59 28 26 63 74 70 2c |TTIMEOFD|AY(&ctp,|
|00003550| 20 26 63 74 7a 70 29 20 | 3b 0a 58 20 20 65 6c 61 | &ctzp) |;.X ela|
|00003560| 70 73 65 64 20 3d 20 28 | 28 63 74 70 2e 74 76 5f |psed = (|(ctp.tv_|
|00003570| 75 73 65 63 20 2d 20 74 | 70 2e 74 76 5f 75 73 65 |usec - t|p.tv_use|
|00003580| 63 29 20 2b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |c) +.X | |
|00003590| 20 20 28 63 74 70 2e 74 | 76 5f 73 65 63 20 2d 20 | (ctp.t|v_sec - |
|000035a0| 74 70 2e 74 76 5f 73 65 | 63 29 20 2a 20 31 30 30 |tp.tv_se|c) * 100|
|000035b0| 30 30 30 30 4c 29 20 2f | 20 31 30 30 30 20 3b 0a |0000L) /| 1000 ;.|
|000035c0| 58 20 20 69 66 20 28 65 | 6c 61 70 73 65 64 20 3e |X if (e|lapsed >|
|000035d0| 20 6e 29 20 72 65 74 75 | 72 6e 20 3b 0a 58 20 20 | n) retu|rn ;.X |
|000035e0| 75 73 6c 65 65 70 28 28 | 75 6e 73 69 67 6e 65 64 |usleep((|unsigned|
|000035f0| 29 20 28 6e 20 2d 20 65 | 6c 61 70 73 65 64 29 29 |) (n - e|lapsed))|
|00003600| 20 3b 0a 58 7d 0a 58 0a | 58 0a 58 73 65 74 5f 74 | ;.X}.X.|X.Xset_t|
|00003610| 69 6d 65 72 28 29 0a 58 | 7b 0a 58 20 20 73 74 72 |imer().X|{.X str|
|00003620| 75 63 74 20 74 69 6d 65 | 7a 6f 6e 65 20 74 7a 70 |uct time|zone tzp|
|00003630| 20 3b 0a 58 0a 58 20 20 | 47 45 54 54 49 4d 45 4f | ;.X.X |GETTIMEO|
|00003640| 46 44 41 59 28 26 74 70 | 2c 20 26 74 7a 70 29 20 |FDAY(&tp|, &tzp) |
|00003650| 3b 0a 58 7d 0a 58 0a 58 | 0a 58 73 68 6f 77 5f 73 |;.X}.X.X|.Xshow_s|
|00003660| 75 67 67 65 73 74 69 6f | 6e 28 29 0a 58 7b 0a 58 |uggestio|n().X{.X|
|00003670| 20 20 65 6e 75 6d 20 6f | 70 74 79 70 65 20 72 6f | enum o|ptype ro|
|00003680| 70 20 3b 0a 58 0a 58 20 | 20 69 66 20 28 73 75 67 |p ;.X.X | if (sug|
|00003690| 67 65 73 74 69 6f 6e 20 | 21 3d 20 2d 31 29 0a 58 |gestion |!= -1).X|
|000036a0| 20 20 20 20 7b 0a 58 20 | 20 20 20 20 20 72 6f 70 | {.X | rop|
|000036b0| 20 3d 20 52 43 4c 52 20 | 3b 0a 58 20 20 20 20 20 | = RCLR |;.X |
|000036c0| 20 63 6f 6c 6f 72 20 3d | 20 28 69 73 63 6f 6c 6f | color =| (iscolo|
|000036d0| 72 29 20 3f 20 43 5f 4c | 42 52 4f 57 4e 20 3a 20 |r) ? C_L|BROWN : |
|000036e0| 43 5f 57 48 49 54 45 20 | 3b 0a 58 20 20 20 20 20 |C_WHITE |;.X |
|000036f0| 20 69 66 20 28 69 73 63 | 6f 6c 6f 72 29 20 72 6f | if (isc|olor) ro|
|00003700| 70 20 3d 20 52 53 52 43 | 20 3b 0a 58 20 20 20 20 |p = RSRC| ;.X |
|00003710| 20 20 64 72 61 77 5f 6c | 69 6e 65 28 73 75 67 67 | draw_l|ine(sugg|
|00003720| 65 73 74 5f 78 2d 35 2c | 20 43 59 2b 73 75 67 67 |est_x-5,| CY+sugg|
|00003730| 65 73 74 5f 79 2d 35 2c | 0a 58 20 20 20 20 20 20 |est_y-5,|.X |
|00003740| 20 20 20 20 20 20 20 20 | 20 20 73 75 67 67 65 73 | | sugges|
|00003750| 74 5f 78 2b 35 2c 20 43 | 59 2b 73 75 67 67 65 73 |t_x+5, C|Y+sugges|
|00003760| 74 5f 79 2b 35 2c 20 72 | 6f 70 2c 20 63 6f 6c 6f |t_y+5, r|op, colo|
|00003770| 72 29 20 3b 0a 58 20 20 | 20 20 20 20 64 72 61 77 |r) ;.X | draw|
|00003780| 5f 6c 69 6e 65 28 73 75 | 67 67 65 73 74 5f 78 2d |_line(su|ggest_x-|
|00003790| 35 2c 20 43 59 2b 73 75 | 67 67 65 73 74 5f 79 2b |5, CY+su|ggest_y+|
|000037a0| 35 2c 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 |5,.X | |
|000037b0| 20 20 20 20 73 75 67 67 | 65 73 74 5f 78 2b 35 2c | sugg|est_x+5,|
|000037c0| 20 43 59 2b 73 75 67 67 | 65 73 74 5f 79 2d 35 2c | CY+sugg|est_y-5,|
|000037d0| 20 72 6f 70 2c 20 63 6f | 6c 6f 72 29 20 3b 0a 58 | rop, co|lor) ;.X|
|000037e0| 20 20 20 20 20 20 73 75 | 67 67 65 73 74 69 6f 6e | su|ggestion|
|000037f0| 20 3d 20 2d 31 20 3b 0a | 58 20 20 20 20 7d 0a 58 | = -1 ;.|X }.X|
|00003800| 7d 0a 58 0a 58 0a 58 75 | 70 64 61 74 65 5f 62 6f |}.X.X.Xu|pdate_bo|
|00003810| 61 72 64 5f 69 6d 61 67 | 65 28 29 0a 58 7b 0a 58 |ard_imag|e().X{.X|
|00003820| 20 20 69 6e 74 20 66 6c | 69 70 73 2c 20 69 2c 20 | int fl|ips, i, |
|00003830| 70 69 65 63 65 2c 20 78 | 2c 20 79 20 3b 0a 58 20 |piece, x|, y ;.X |
|00003840| 0a 58 20 20 73 68 6f 77 | 5f 73 75 67 67 65 73 74 |.X show|_suggest|
|00003850| 69 6f 6e 28 29 20 3b 0a | 58 20 20 66 6f 72 20 28 |ion() ;.|X for (|
|00003860| 66 6c 69 70 73 20 3d 20 | 30 3b 20 66 6c 69 70 73 |flips = |0; flips|
|00003870| 20 3c 20 34 3b 20 66 6c | 69 70 73 2b 2b 29 0a 58 | < 4; fl|ips++).X|
|00003880| 20 20 20 20 7b 0a 58 20 | 20 20 20 20 20 62 61 74 | {.X | bat|
|00003890| 63 68 28 49 53 5f 4f 4e | 29 20 3b 0a 58 20 20 20 |ch(IS_ON|) ;.X |
|000038a0| 20 20 20 46 4f 52 5f 42 | 4f 41 52 44 28 69 29 0a | FOR_B|OARD(i).|
|000038b0| 58 20 20 20 20 20 20 20 | 20 7b 0a 58 20 20 20 20 |X | {.X |
|000038c0| 20 20 20 20 20 20 69 66 | 20 28 62 6f 61 72 64 2e | if| (board.|
|000038d0| 73 71 75 61 72 65 5b 69 | 5d 20 21 3d 20 6f 6c 64 |square[i|] != old|
|000038e0| 5f 62 6f 61 72 64 2e 73 | 71 75 61 72 65 5b 69 5d |_board.s|quare[i]|
|000038f0| 29 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 7b |).X | {|
|00003900| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.X | |
|00003910| 67 65 74 5f 78 79 28 69 | 2c 20 26 78 2c 20 26 79 |get_xy(i|, &x, &y|
|00003920| 29 20 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 |) ;.X | |
|00003930| 20 20 20 69 66 20 28 69 | 20 3d 3d 20 6d 6f 76 65 | if (i| == move|
|00003940| 29 20 70 69 65 63 65 20 | 3d 20 62 6f 61 72 64 2e |) piece |= board.|
|00003950| 73 71 75 61 72 65 5b 69 | 5d 20 3b 0a 58 20 20 20 |square[i|] ;.X |
|00003960| 20 20 20 20 20 20 20 20 | 20 20 20 65 6c 73 65 0a | | else.|
|00003970| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |X | |
|00003980| 20 70 69 65 63 65 20 3d | 20 28 66 6c 69 70 73 20 | piece =| (flips |
|00003990| 25 20 32 29 20 3f 20 62 | 6f 61 72 64 2e 73 71 75 |% 2) ? b|oard.squ|
|000039a0| 61 72 65 5b 69 5d 20 3a | 20 62 6f 61 72 64 2e 73 |are[i] :| board.s|
|000039b0| 71 75 61 72 65 5b 69 5d | 20 2a 20 2d 31 20 3b 0a |quare[i]| * -1 ;.|
|000039c0| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 64 |X | d|
|000039d0| 72 61 77 5f 70 69 65 63 | 65 28 70 69 65 63 65 2c |raw_piec|e(piece,|
|000039e0| 20 78 2c 20 43 59 2b 79 | 2c 20 52 53 52 43 29 20 | x, CY+y|, RSRC) |
|000039f0| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 7d |;.X | }|
|00003a00| 20 0a 58 20 20 20 20 20 | 20 20 20 7d 0a 58 20 20 | .X | }.X |
|00003a10| 20 20 20 20 62 61 74 63 | 68 28 49 53 5f 4f 46 46 | batc|h(IS_OFF|
|00003a20| 29 20 3b 0a 58 20 20 20 | 20 20 20 50 41 55 53 45 |) ;.X | PAUSE|
|00003a30| 20 3b 0a 58 20 20 20 20 | 7d 0a 58 20 20 6d 65 73 | ;.X |}.X mes|
|00003a40| 73 61 67 65 28 53 43 4f | 52 45 5f 4d 45 53 2c 20 |sage(SCO|RE_MES, |
|00003a50| 73 70 72 69 6e 74 66 28 | 6c 69 6e 65 2c 20 22 57 |sprintf(|line, "W|
|00003a60| 68 69 74 65 3a 20 25 32 | 64 2c 20 42 6c 61 63 6b |hite: %2|d, Black|
|00003a70| 3a 20 25 32 64 22 2c 0a | 58 20 20 20 20 20 20 20 |: %2d",.|X |
|00003a80| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003a90| 20 20 20 63 6f 75 6e 74 | 28 62 6f 61 72 64 2c 20 | count|(board, |
|00003aa0| 57 48 49 54 45 29 2c 20 | 63 6f 75 6e 74 28 62 6f |WHITE), |count(bo|
|00003ab0| 61 72 64 2c 20 42 4c 41 | 43 4b 29 29 29 20 3b 0a |ard, BLA|CK))) ;.|
|00003ac0| 58 7d 0a 58 0a 58 0a 58 | 77 68 6f 5f 77 69 6e 73 |X}.X.X.X|who_wins|
|00003ad0| 28 29 0a 58 7b 0a 58 20 | 20 69 6e 74 20 63 73 2c |().X{.X | int cs,|
|00003ae0| 20 70 73 20 3b 0a 58 0a | 58 20 20 70 73 20 3d 20 | ps ;.X.|X ps = |
|00003af0| 63 6f 75 6e 74 28 62 6f | 61 72 64 2c 20 57 48 49 |count(bo|ard, WHI|
|00003b00| 54 45 29 20 3b 0a 58 20 | 20 63 73 20 3d 20 63 6f |TE) ;.X | cs = co|
|00003b10| 75 6e 74 28 62 6f 61 72 | 64 2c 20 42 4c 41 43 4b |unt(boar|d, BLACK|
|00003b20| 29 20 3b 0a 58 20 20 69 | 66 20 28 70 73 20 3e 20 |) ;.X i|f (ps > |
|00003b30| 63 73 29 20 6d 65 73 73 | 61 67 65 28 53 43 4f 52 |cs) mess|age(SCOR|
|00003b40| 45 5f 4d 45 53 2c 20 73 | 70 72 69 6e 74 66 28 6c |E_MES, s|printf(l|
|00003b50| 69 6e 65 2c 20 22 57 68 | 69 74 65 20 77 69 6e 73 |ine, "Wh|ite wins|
|00003b60| 20 25 64 2d 25 64 22 2c | 20 70 73 2c 20 63 73 29 | %d-%d",| ps, cs)|
|00003b70| 29 20 3b 0a 58 20 20 65 | 6c 73 65 20 69 66 20 28 |) ;.X e|lse if (|
|00003b80| 70 73 20 3d 3d 20 63 73 | 29 20 6d 65 73 73 61 67 |ps == cs|) messag|
|00003b90| 65 28 53 43 4f 52 45 5f | 4d 45 53 2c 20 73 70 72 |e(SCORE_|MES, spr|
|00003ba0| 69 6e 74 66 28 6c 69 6e | 65 2c 22 41 20 74 69 65 |intf(lin|e,"A tie|
|00003bb0| 20 25 64 2d 25 64 22 2c | 20 70 73 2c 20 63 73 29 | %d-%d",| ps, cs)|
|00003bc0| 29 20 3b 0a 58 20 20 65 | 6c 73 65 20 6d 65 73 73 |) ;.X e|lse mess|
|00003bd0| 61 67 65 28 53 43 4f 52 | 45 5f 4d 45 53 2c 20 73 |age(SCOR|E_MES, s|
|00003be0| 70 72 69 6e 74 66 28 6c | 69 6e 65 2c 22 42 6c 61 |printf(l|ine,"Bla|
|00003bf0| 63 6b 20 77 69 6e 73 20 | 25 64 2d 25 64 22 2c 20 |ck wins |%d-%d", |
|00003c00| 63 73 2c 20 70 73 29 29 | 20 3b 0a 58 20 20 69 66 |cs, ps))| ;.X if|
|00003c10| 20 28 63 72 65 74 69 6e | 5f 66 6c 61 67 29 20 6d | (cretin|_flag) m|
|00003c20| 65 73 73 61 67 65 28 52 | 45 4d 41 52 4b 5f 4d 45 |essage(R|EMARK_ME|
|00003c30| 53 2c 20 22 2a 2a 2a 20 | 43 52 45 54 49 4e 21 20 |S, "*** |CRETIN! |
|00003c40| 2a 2a 2a 22 29 20 3b 0a | 58 20 20 65 6c 73 65 20 |***") ;.|X else |
|00003c50| 6d 65 73 73 61 67 65 28 | 52 45 4d 41 52 4b 5f 4d |message(|REMARK_M|
|00003c60| 45 53 2c 20 22 22 29 20 | 3b 0a 58 7d 0a 45 4e 44 |ES, "") |;.X}.END|
|00003c70| 5f 4f 46 5f 46 49 4c 45 | 0a 69 66 20 74 65 73 74 |_OF_FILE|.if test|
|00003c80| 20 37 30 35 36 20 2d 6e | 65 20 60 77 63 20 2d 63 | 7056 -n|e `wc -c|
|00003c90| 20 3c 27 62 6f 61 72 64 | 73 74 75 66 66 2e 63 27 | <'board|stuff.c'|
|00003ca0| 60 3b 20 74 68 65 6e 0a | 20 20 20 20 65 63 68 6f |`; then.| echo|
|00003cb0| 20 73 68 61 72 3a 20 5c | 22 27 62 6f 61 72 64 73 | shar: \|"'boards|
|00003cc0| 74 75 66 66 2e 63 27 5c | 22 20 75 6e 70 61 63 6b |tuff.c'\|" unpack|
|00003cd0| 65 64 20 77 69 74 68 20 | 77 72 6f 6e 67 20 73 69 |ed with |wrong si|
|00003ce0| 7a 65 21 0a 66 69 0a 23 | 20 65 6e 64 20 6f 66 20 |ze!.fi.#| end of |
|00003cf0| 27 62 6f 61 72 64 73 74 | 75 66 66 2e 63 27 0a 66 |'boardst|uff.c'.f|
|00003d00| 69 0a 69 66 20 74 65 73 | 74 20 2d 66 20 27 65 76 |i.if tes|t -f 'ev|
|00003d10| 65 6e 74 73 2e 63 27 20 | 2d 61 20 22 24 7b 31 7d |ents.c' |-a "${1}|
|00003d20| 22 20 21 3d 20 22 2d 63 | 22 20 3b 20 74 68 65 6e |" != "-c|" ; then|
|00003d30| 20 0a 20 20 65 63 68 6f | 20 73 68 61 72 3a 20 57 | . echo| shar: W|
|00003d40| 69 6c 6c 20 6e 6f 74 20 | 63 6c 6f 62 62 65 72 20 |ill not |clobber |
|00003d50| 65 78 69 73 74 69 6e 67 | 20 66 69 6c 65 20 5c 22 |existing| file \"|
|00003d60| 27 65 76 65 6e 74 73 2e | 63 27 5c 22 0a 65 6c 73 |'events.|c'\".els|
|00003d70| 65 0a 65 63 68 6f 20 73 | 68 61 72 3a 20 45 78 74 |e.echo s|har: Ext|
|00003d80| 72 61 63 74 69 6e 67 20 | 5c 22 27 65 76 65 6e 74 |racting |\"'event|
|00003d90| 73 2e 63 27 5c 22 20 5c | 28 31 30 33 30 39 20 63 |s.c'\" \|(10309 c|
|00003da0| 68 61 72 61 63 74 65 72 | 73 5c 29 0a 73 65 64 20 |haracter|s\).sed |
|00003db0| 22 73 2f 5e 58 2f 2f 22 | 20 3e 27 65 76 65 6e 74 |"s/^X//"| >'event|
|00003dc0| 73 2e 63 27 20 3c 3c 27 | 45 4e 44 5f 4f 46 5f 46 |s.c' <<'|END_OF_F|
|00003dd0| 49 4c 45 27 0a 58 2f 2a | 4c 49 4e 54 4c 49 42 52 |ILE'.X/*|LINTLIBR|
|00003de0| 41 52 59 2a 2f 0a 58 0a | 58 2f 2a 20 20 40 28 23 |ARY*/.X.|X/* @(#|
|00003df0| 29 65 76 65 6e 74 73 2e | 63 20 31 2e 35 20 39 30 |)events.|c 1.5 90|
|00003e00| 2f 30 34 2f 30 39 0a 58 | 20 2a 0a 58 20 2a 20 20 |/04/09.X| *.X * |
|00003e10| 50 72 6f 63 65 64 75 72 | 65 73 20 66 6f 72 20 68 |Procedur|es for h|
|00003e20| 61 6e 64 6c 69 6e 67 20 | 76 61 72 69 6f 75 73 20 |andling |various |
|00003e30| 65 76 65 6e 74 73 20 69 | 6e 20 74 68 65 20 4f 74 |events i|n the Ot|
|00003e40| 68 65 6c 6c 6f 20 67 61 | 6d 65 2e 0a 58 20 2a 0a |hello ga|me..X *.|
|00003e50| 58 20 2a 20 20 4f 72 69 | 67 69 6e 61 6c 20 53 75 |X * Ori|ginal Su|
|00003e60| 6e 56 69 65 77 20 76 65 | 72 73 69 6f 6e 20 62 79 |nView ve|rsion by|
|00003e70| 20 45 64 20 46 61 6c 6b | 20 2d 20 53 75 6e 20 4d | Ed Falk| - Sun M|
|00003e80| 69 63 72 6f 73 79 73 74 | 65 6d 73 20 49 6e 63 2e |icrosyst|ems Inc.|
|00003e90| 0a 58 20 2a 0a 58 20 2a | 20 20 52 65 77 72 69 74 |.X *.X *| Rewrit|
|00003ea0| 74 65 6e 20 66 6f 72 20 | 69 6e 64 65 70 65 6e 64 |ten for |independ|
|00003eb0| 65 6e 74 20 75 73 65 20 | 62 79 0a 58 20 2a 20 20 |ent use |by.X * |
|00003ec0| 20 20 20 20 20 20 20 20 | 52 69 63 68 20 42 75 72 | |Rich Bur|
|00003ed0| 72 69 64 67 65 2c 20 53 | 75 6e 20 4d 69 63 72 6f |ridge, S|un Micro|
|00003ee0| 73 79 73 74 65 6d 73 2c | 20 41 75 73 74 72 61 6c |systems,| Austral|
|00003ef0| 69 61 0a 58 20 2a 0a 58 | 20 2a 20 20 43 6f 70 79 |ia.X *.X| * Copy|
|00003f00| 72 69 67 68 74 20 28 63 | 29 20 45 64 20 46 61 6c |right (c|) Ed Fal|
|00003f10| 6b 20 26 20 52 69 63 68 | 20 42 75 72 72 69 64 67 |k & Rich| Burridg|
|00003f20| 65 20 2d 20 53 75 6e 20 | 4d 69 63 72 6f 73 79 73 |e - Sun |Microsys|
|00003f30| 74 65 6d 73 2e 0a 58 20 | 2a 20 20 20 20 20 20 20 |tems..X |* |
|00003f40| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003f50| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003f60| 20 20 20 41 6c 6c 20 72 | 69 67 68 74 73 20 72 65 | All r|ights re|
|00003f70| 73 65 72 76 65 64 2e 0a | 58 20 2a 0a 58 20 2a 20 |served..|X *.X * |
|00003f80| 20 50 65 72 6d 69 73 73 | 69 6f 6e 20 69 73 20 67 | Permiss|ion is g|
|00003f90| 69 76 65 6e 20 74 6f 20 | 64 69 73 74 72 69 62 75 |iven to |distribu|
|00003fa0| 74 65 20 74 68 65 73 65 | 20 73 6f 75 72 63 65 73 |te these| sources|
|00003fb0| 2c 20 61 73 20 6c 6f 6e | 67 20 61 73 20 74 68 65 |, as lon|g as the|
|00003fc0| 0a 58 20 2a 20 20 69 6e | 74 72 6f 64 75 63 74 6f |.X * in|troducto|
|00003fd0| 72 79 20 6d 65 73 73 61 | 67 65 73 20 61 72 65 20 |ry messa|ges are |
|00003fe0| 6e 6f 74 20 72 65 6d 6f | 76 65 64 2c 20 61 6e 64 |not remo|ved, and|
|00003ff0| 20 6e 6f 20 6d 6f 6e 69 | 65 73 20 61 72 65 20 65 | no moni|es are e|
|00004000| 78 63 68 61 6e 67 65 64 | 2e 0a 58 20 2a 0a 58 20 |xchanged|..X *.X |
|00004010| 2a 20 20 4e 6f 20 72 65 | 73 70 6f 6e 73 69 62 69 |* No re|sponsibi|
|00004020| 6c 69 74 79 20 69 73 20 | 74 61 6b 65 6e 20 66 6f |lity is |taken fo|
|00004030| 72 20 61 6e 79 20 65 72 | 72 6f 72 73 20 6f 6e 20 |r any er|rors on |
|00004040| 69 6e 61 63 63 75 72 61 | 63 69 65 73 20 69 6e 68 |inaccura|cies inh|
|00004050| 65 72 65 6e 74 0a 58 20 | 2a 20 20 65 69 74 68 65 |erent.X |* eithe|
|00004060| 72 20 74 6f 20 74 68 65 | 20 63 6f 6d 6d 65 6e 74 |r to the| comment|
|00004070| 73 20 6f 72 20 74 68 65 | 20 63 6f 64 65 20 6f 66 |s or the| code of|
|00004080| 20 74 68 69 73 20 70 72 | 6f 67 72 61 6d 2c 20 62 | this pr|ogram, b|
|00004090| 75 74 20 69 66 20 72 65 | 70 6f 72 74 65 64 0a 58 |ut if re|ported.X|
|000040a0| 20 2a 20 20 74 6f 20 6d | 65 2c 20 74 68 65 6e 20 | * to m|e, then |
|000040b0| 61 6e 20 61 74 74 65 6d | 70 74 20 77 69 6c 6c 20 |an attem|pt will |
|000040c0| 62 65 20 6d 61 64 65 20 | 74 6f 20 66 69 78 20 74 |be made |to fix t|
|000040d0| 68 65 6d 2e 0a 58 20 2a | 2f 0a 58 0a 58 23 69 6e |hem..X *|/.X.X#in|
|000040e0| 63 6c 75 64 65 20 22 6f | 74 68 65 6c 6c 6f 2e 68 |clude "o|thello.h|
|000040f0| 22 0a 58 23 69 6e 63 6c | 75 64 65 20 22 63 6f 6c |".X#incl|ude "col|
|00004100| 6f 72 2e 68 22 0a 58 23 | 69 6e 63 6c 75 64 65 20 |or.h".X#|include |
|00004110| 22 65 78 74 65 72 6e 2e | 68 22 0a 58 0a 58 0a 58 |"extern.|h".X.X.X|
|00004120| 63 68 65 63 6b 5f 62 75 | 74 74 6f 6e 5f 64 6f 77 |check_bu|tton_dow|
|00004130| 6e 28 69 74 65 6d 29 0a | 58 65 6e 75 6d 20 70 61 |n(item).|Xenum pa|
|00004140| 6e 65 6c 5f 74 79 70 65 | 20 69 74 65 6d 20 3b 0a |nel_type| item ;.|
|00004150| 58 7b 0a 58 20 20 69 6e | 74 20 6e 20 3b 0a 58 0a |X{.X in|t n ;.X.|
|00004160| 58 20 20 6e 20 3d 20 28 | 69 6e 74 29 20 69 74 65 |X n = (|int) ite|
|00004170| 6d 20 3b 0a 58 20 20 69 | 66 20 28 28 63 75 72 78 |m ;.X i|f ((curx|
|00004180| 20 3e 20 20 69 74 65 6d | 73 5b 6e 5d 2e 78 29 20 | > item|s[n].x) |
|00004190| 26 26 20 28 63 75 72 78 | 20 3c 20 28 69 74 65 6d |&& (curx| < (item|
|000041a0| 73 5b 6e 5d 2e 78 20 2b | 20 69 74 65 6d 73 5b 6e |s[n].x +| items[n|
|000041b0| 5d 2e 77 69 64 74 68 29 | 29 20 26 26 0a 58 20 20 |].width)|) &&.X |
|000041c0| 20 20 20 20 28 63 75 72 | 79 20 3e 20 20 69 74 65 | (cur|y > ite|
|000041d0| 6d 73 5b 6e 5d 2e 79 29 | 20 26 26 20 28 63 75 72 |ms[n].y)| && (cur|
|000041e0| 79 20 3c 20 28 69 74 65 | 6d 73 5b 6e 5d 2e 79 20 |y < (ite|ms[n].y |
|000041f0| 2b 20 69 74 65 6d 73 5b | 6e 5d 2e 68 65 69 67 68 |+ items[|n].heigh|
|00004200| 74 29 29 29 0a 58 20 20 | 20 20 7b 0a 58 20 20 20 |t))).X | {.X |
|00004210| 20 20 20 64 6f 77 6e 20 | 3d 20 6e 65 78 74 63 20 | down |= nextc |
|00004220| 3b 0a 58 20 20 20 20 20 | 20 69 74 65 6d 6e 6f 20 |;.X | itemno |
|00004230| 3d 20 6e 20 3b 0a 58 20 | 20 20 20 20 20 62 75 74 |= n ;.X | but|
|00004240| 5f 69 6e 76 65 72 74 65 | 64 20 3d 20 69 74 65 6d |_inverte|d = item|
|00004250| 6e 6f 20 3b 0a 58 20 20 | 20 20 20 20 64 72 61 77 |no ;.X | draw|
|00004260| 5f 62 75 74 74 6f 6e 28 | 28 65 6e 75 6d 20 70 61 |_button(|(enum pa|
|00004270| 6e 65 6c 5f 74 79 70 65 | 29 20 69 74 65 6d 6e 6f |nel_type|) itemno|
|00004280| 2c 20 43 5f 4c 47 52 45 | 59 2c 20 42 55 54 5f 49 |, C_LGRE|Y, BUT_I|
|00004290| 4e 56 45 52 54 29 20 3b | 0a 58 20 20 20 20 7d 0a |NVERT) ;|.X }.|
|000042a0| 58 7d 0a 58 0a 58 0a 58 | 63 68 65 63 6b 5f 63 79 |X}.X.X.X|check_cy|
|000042b0| 63 6c 65 5f 64 6f 77 6e | 28 69 74 65 6d 29 0a 58 |cle_down|(item).X|
|000042c0| 65 6e 75 6d 20 70 61 6e | 65 6c 5f 74 79 70 65 20 |enum pan|el_type |
|000042d0| 69 74 65 6d 20 3b 0a 58 | 7b 0a 58 20 20 69 6e 74 |item ;.X|{.X int|
|000042e0| 20 69 78 2c 20 6e 2c 20 | 72 65 70 6c 79 20 3b 0a | ix, n, |reply ;.|
|000042f0| 58 0a 58 20 20 6e 20 3d | 20 28 69 6e 74 29 20 69 |X.X n =| (int) i|
|00004300| 74 65 6d 20 3b 0a 58 20 | 20 69 78 20 3d 20 69 74 |tem ;.X | ix = it|
|00004310| 65 6d 73 5b 6e 5d 2e 78 | 20 2b 20 28 33 20 2a 20 |ems[n].x| + (3 * |
|00004320| 42 57 49 44 54 48 29 20 | 2b 20 28 32 20 2a 20 42 |BWIDTH) |+ (2 * B|
|00004330| 47 41 50 29 20 2d 20 43 | 57 49 44 54 48 20 3b 0a |GAP) - C|WIDTH ;.|
|00004340| 58 20 20 20 20 20 20 20 | 69 66 20 28 28 63 75 72 |X |if ((cur|
|00004350| 78 20 3e 20 69 78 29 20 | 26 26 20 28 63 75 72 78 |x > ix) |&& (curx|
|00004360| 20 3c 20 28 69 78 20 2b | 20 28 69 74 65 6d 73 5b | < (ix +| (items[|
|00004370| 6e 5d 2e 77 69 64 74 68 | 20 2f 20 32 29 29 29 20 |n].width| / 2))) |
|00004380| 26 26 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 28 |&&.X | (|
|00004390| 63 75 72 79 20 3e 20 69 | 74 65 6d 73 5b 6e 5d 2e |cury > i|tems[n].|
|000043a0| 79 29 20 26 26 20 28 63 | 75 72 79 20 3c 20 28 69 |y) && (c|ury < (i|
|000043b0| 74 65 6d 73 5b 6e 5d 2e | 79 20 2b 20 69 74 65 6d |tems[n].|y + item|
|000043c0| 73 5b 6e 5d 2e 68 65 69 | 67 68 74 29 29 20 26 26 |s[n].hei|ght)) &&|
|000043d0| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 6e 65 |.X | ne|
|000043e0| 78 74 63 20 21 3d 20 52 | 49 47 48 54 5f 44 4f 57 |xtc != R|IGHT_DOW|
|000043f0| 4e 29 0a 58 20 20 20 20 | 7b 0a 58 20 20 20 20 20 |N).X |{.X |
|00004400| 20 64 69 72 65 63 74 69 | 6f 6e 20 3d 20 49 4e 43 | directi|on = INC|
|00004410| 52 45 4d 45 4e 54 20 3b | 0a 58 20 20 20 20 20 20 |REMENT ;|.X |
|00004420| 64 6f 77 6e 20 3d 20 6e | 65 78 74 63 20 3b 0a 58 |down = n|extc ;.X|
|00004430| 20 20 20 20 20 20 69 74 | 65 6d 6e 6f 20 3d 20 6e | it|emno = n|
|00004440| 20 3b 0a 58 20 20 20 20 | 20 20 64 72 61 77 5f 63 | ;.X | draw_c|
|00004450| 79 63 6c 65 28 28 65 6e | 75 6d 20 70 61 6e 65 6c |ycle((en|um panel|
|00004460| 5f 74 79 70 65 29 20 6e | 2c 20 43 5f 4c 47 52 45 |_type) n|, C_LGRE|
|00004470| 59 2c 20 43 59 5f 4c 49 | 4e 56 45 52 54 29 20 3b |Y, CY_LI|NVERT) ;|
|00004480| 0a 58 20 20 20 20 7d 0a | 58 20 20 65 6c 73 65 20 |.X }.|X else |
|00004490| 69 66 20 28 28 63 75 72 | 78 20 3e 20 69 78 29 20 |if ((cur|x > ix) |
|000044a0| 26 26 20 28 63 75 72 78 | 20 3c 20 28 69 78 20 2b |&& (curx| < (ix +|
|000044b0| 20 69 74 65 6d 73 5b 6e | 5d 2e 77 69 64 74 68 29 | items[n|].width)|
|000044c0| 29 20 26 26 0a 58 20 20 | 20 20 20 20 20 20 20 20 |) &&.X | |
|000044d0| 20 28 63 75 72 79 20 3e | 20 69 74 65 6d 73 5b 6e | (cury >| items[n|
|000044e0| 5d 2e 79 29 20 26 26 20 | 28 63 75 72 79 20 3c 20 |].y) && |(cury < |
|000044f0| 28 69 74 65 6d 73 5b 6e | 5d 2e 79 20 2b 20 69 74 |(items[n|].y + it|
|00004500| 65 6d 73 5b 6e 5d 2e 68 | 65 69 67 68 74 29 29 20 |ems[n].h|eight)) |
|00004510| 26 26 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 |&&.X | |
|00004520| 6e 65 78 74 63 20 21 3d | 20 52 49 47 48 54 5f 44 |nextc !=| RIGHT_D|
|00004530| 4f 57 4e 29 0a 58 20 20 | 20 20 7b 0a 58 20 20 20 |OWN).X | {.X |
|00004540| 20 20 20 64 69 72 65 63 | 74 69 6f 6e 20 3d 20 44 | direc|tion = D|
|00004550| 45 43 52 45 4d 45 4e 54 | 20 3b 0a 58 20 20 20 20 |ECREMENT| ;.X |
|00004560| 20 20 64 6f 77 6e 20 3d | 20 6e 65 78 74 63 20 3b | down =| nextc ;|
|00004570| 0a 58 20 20 20 20 20 20 | 69 74 65 6d 6e 6f 20 3d |.X |itemno =|
|00004580| 20 6e 20 3b 0a 58 20 20 | 20 20 20 20 64 72 61 77 | n ;.X | draw|
|00004590| 5f 63 79 63 6c 65 28 28 | 65 6e 75 6d 20 70 61 6e |_cycle((|enum pan|
|000045a0| 65 6c 5f 74 79 70 65 29 | 20 6e 2c 20 43 5f 4c 47 |el_type)| n, C_LG|
|000045b0| 52 45 59 2c 20 43 59 5f | 52 49 4e 56 45 52 54 29 |REY, CY_|RINVERT)|
|000045c0| 20 3b 0a 58 20 20 20 20 | 7d 0a 58 20 20 65 6c 73 | ;.X |}.X els|
|000045d0| 65 20 69 66 20 28 28 63 | 75 72 78 20 3e 20 69 78 |e if ((c|urx > ix|
|000045e0| 29 20 26 26 20 28 63 75 | 72 78 20 3c 20 28 69 78 |) && (cu|rx < (ix|
|000045f0| 20 2b 20 69 74 65 6d 73 | 5b 6e 5d 2e 77 69 64 74 | + items|[n].widt|
|00004600| 68 29 29 20 26 26 0a 58 | 20 20 20 20 20 20 20 20 |h)) &&.X| |
|00004610| 20 20 20 28 63 75 72 79 | 20 3e 20 69 74 65 6d 73 | (cury| > items|
|00004620| 5b 6e 5d 2e 79 29 20 26 | 26 20 28 63 75 72 79 20 |[n].y) &|& (cury |
|00004630| 3c 20 28 69 74 65 6d 73 | 5b 6e 5d 2e 79 20 2b 20 |< (items|[n].y + |
|00004640| 69 74 65 6d 73 5b 6e 5d | 2e 68 65 69 67 68 74 29 |items[n]|.height)|
|00004650| 29 29 0a 58 20 20 20 20 | 7b 0a 58 20 20 20 20 20 |)).X |{.X |
|00004660| 20 64 69 72 65 63 74 69 | 6f 6e 20 3d 20 4e 4f 4e | directi|on = NON|
|00004670| 45 20 3b 0a 58 20 20 20 | 20 20 20 64 6f 77 6e 20 |E ;.X | down |
|00004680| 3d 20 52 49 47 48 54 5f | 44 4f 57 4e 20 3b 0a 58 |= RIGHT_|DOWN ;.X|
|00004690| 20 20 20 20 20 20 69 74 | 65 6d 6e 6f 20 3d 20 6e | it|emno = n|
|000046a0| 20 3b 0a 58 20 20 20 20 | 20 20 69 66 20 28 28 72 | ;.X | if ((r|
|000046b0| 65 70 6c 79 20 3d 20 64 | 6f 5f 6d 65 6e 75 28 28 |eply = d|o_menu((|
|000046c0| 65 6e 75 6d 20 70 61 6e | 65 6c 5f 74 79 70 65 29 |enum pan|el_type)|
|000046d0| 20 69 74 65 6d 6e 6f 29 | 29 29 0a 58 20 20 20 20 | itemno)|)).X |
|000046e0| 20 20 20 20 7b 20 20 20 | 20 20 20 20 20 20 20 20 | { | |
|000046f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004700| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004710| 20 20 20 20 20 20 20 20 | 0a 58 20 20 20 20 20 20 | |.X |
|00004720| 20 20 20 20 6e 65 78 74 | 63 20 3d 20 52 49 47 48 | next|c = RIGH|
|00004730| 54 5f 55 50 20 3b 20 20 | 20 20 20 20 20 20 20 20 |T_UP ; | |
|00004740| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004750| 20 20 20 20 20 20 0a 58 | 20 20 20 20 20 20 20 20 | .X| |
|00004760| 20 20 68 61 6e 64 6c 65 | 5f 69 74 65 6d 28 72 65 | handle|_item(re|
|00004770| 70 6c 79 20 2d 20 31 29 | 20 3b 0a 58 20 20 20 20 |ply - 1)| ;.X |
|00004780| 20 20 20 20 20 20 64 72 | 61 77 5f 63 79 63 6c 65 | dr|aw_cycle|
|00004790| 28 28 65 6e 75 6d 20 70 | 61 6e 65 6c 5f 74 79 70 |((enum p|anel_typ|
|000047a0| 65 29 20 69 74 65 6d 6e | 6f 2c 20 43 5f 4c 47 52 |e) itemn|o, C_LGR|
|000047b0| 45 59 2c 20 43 59 5f 4e | 4f 52 4d 41 4c 29 20 3b |EY, CY_N|ORMAL) ;|
|000047c0| 0a 58 20 20 20 20 20 20 | 20 20 7d 0a 58 20 20 20 |.X | }.X |
|000047d0| 20 7d 0a 58 7d 0a 58 0a | 58 0a 58 63 68 65 63 6b | }.X}.X.|X.Xcheck|
|000047e0| 5f 69 74 65 6d 5f 64 6f | 77 6e 28 29 0a 58 7b 0a |_item_do|wn().X{.|
|000047f0| 58 20 20 69 6e 74 20 6e | 20 3b 0a 58 0a 58 20 20 |X int n| ;.X.X |
|00004800| 66 6f 72 20 28 6e 20 3d | 20 30 3b 20 6e 20 3c 20 |for (n =| 0; n < |
|00004810| 4d 41 58 49 54 45 4d 53 | 3b 20 6e 2b 2b 29 0a 58 |MAXITEMS|; n++).X|
|00004820| 20 20 20 20 73 77 69 74 | 63 68 20 28 69 74 65 6d | swit|ch (item|
|00004830| 73 5b 6e 5d 2e 74 79 70 | 65 29 0a 58 20 20 20 20 |s[n].typ|e).X |
|00004840| 20 20 7b 0a 58 20 20 20 | 20 20 20 20 20 63 61 73 | {.X | cas|
|00004850| 65 20 50 5f 42 55 54 54 | 4f 4e 20 20 3a 20 63 68 |e P_BUTT|ON : ch|
|00004860| 65 63 6b 5f 62 75 74 74 | 6f 6e 5f 64 6f 77 6e 28 |eck_butt|on_down(|
|00004870| 28 65 6e 75 6d 20 70 61 | 6e 65 6c 5f 74 79 70 65 |(enum pa|nel_type|
|00004880| 29 20 6e 29 20 3b 0a 58 | 20 20 20 20 20 20 20 20 |) n) ;.X| |
|00004890| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000048a0| 20 62 72 65 61 6b 20 3b | 0a 58 20 20 20 20 20 20 | break ;|.X |
|000048b0| 20 20 63 61 73 65 20 50 | 5f 43 59 43 4c 45 20 20 | case P|_CYCLE |
|000048c0| 20 3a 20 63 68 65 63 6b | 5f 63 79 63 6c 65 5f 64 | : check|_cycle_d|
|000048d0| 6f 77 6e 28 28 65 6e 75 | 6d 20 70 61 6e 65 6c 5f |own((enu|m panel_|
|000048e0| 74 79 70 65 29 20 6e 29 | 20 3b 0a 58 20 20 20 20 |type) n)| ;.X |
|000048f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004900| 20 20 20 20 20 62 72 65 | 61 6b 20 3b 0a 58 20 20 | bre|ak ;.X |
|00004910| 20 20 20 20 20 20 63 61 | 73 65 20 50 5f 4d 45 53 | ca|se P_MES|
|00004920| 53 41 47 45 20 3a 20 2f | 2a 20 64 6f 20 6e 6f 74 |SAGE : /|* do not|
|00004930| 68 69 6e 67 2e 20 2a 2f | 20 3b 0a 58 20 20 20 20 |hing. */| ;.X |
|00004940| 20 20 7d 0a 58 7d 0a 58 | 0a 58 0a 58 63 68 65 63 | }.X}.X|.X.Xchec|
|00004950| 6b 5f 69 74 65 6d 5f 75 | 70 28 29 0a 58 7b 0a 58 |k_item_u|p().X{.X|
|00004960| 20 20 69 66 20 28 28 6e | 65 78 74 63 20 3d 3d 20 | if ((n|extc == |
|00004970| 4c 45 46 54 5f 55 50 20 | 20 20 26 26 20 64 6f 77 |LEFT_UP | && dow|
|00004980| 6e 20 3d 3d 20 4c 45 46 | 54 5f 44 4f 57 4e 29 20 |n == LEF|T_DOWN) |
|00004990| 20 20 7c 7c 0a 58 20 20 | 20 20 20 20 28 6e 65 78 | ||.X | (nex|
|000049a0| 74 63 20 3d 3d 20 4d 49 | 44 44 4c 45 5f 55 50 20 |tc == MI|DDLE_UP |
|000049b0| 26 26 20 64 6f 77 6e 20 | 3d 3d 20 4d 49 44 44 4c |&& down |== MIDDL|
|000049c0| 45 5f 44 4f 57 4e 29 20 | 7c 7c 0a 58 20 20 20 20 |E_DOWN) |||.X |
|000049d0| 20 20 28 6e 65 78 74 63 | 20 3d 3d 20 52 49 47 48 | (nextc| == RIGH|
|000049e0| 54 5f 55 50 20 20 26 26 | 20 64 6f 77 6e 20 3d 3d |T_UP &&| down ==|
|000049f0| 20 52 49 47 48 54 5f 44 | 4f 57 4e 29 29 0a 58 20 | RIGHT_D|OWN)).X |
|00004a00| 20 20 20 7b 0a 58 20 20 | 20 20 20 20 69 66 20 28 | {.X | if (|
|00004a10| 69 74 65 6d 73 5b 69 74 | 65 6d 6e 6f 5d 2e 74 79 |items[it|emno].ty|
|00004a20| 70 65 20 3d 3d 20 50 5f | 42 55 54 54 4f 4e 20 26 |pe == P_|BUTTON &|
|00004a30| 26 20 62 75 74 5f 69 6e | 76 65 72 74 65 64 20 3d |& but_in|verted =|
|00004a40| 3d 20 2d 31 29 20 72 65 | 74 75 72 6e 20 3b 0a 58 |= -1) re|turn ;.X|
|00004a50| 20 20 20 20 20 20 68 61 | 6e 64 6c 65 5f 69 74 65 | ha|ndle_ite|
|00004a60| 6d 28 69 74 65 6d 73 5b | 69 74 65 6d 6e 6f 5d 2e |m(items[|itemno].|
|00004a70| 76 61 6c 75 65 29 20 3b | 0a 58 20 20 20 20 20 20 |value) ;|.X |
|00004a80| 69 66 20 28 69 74 65 6d | 73 5b 69 74 65 6d 6e 6f |if (item|s[itemno|
|00004a90| 5d 2e 74 79 70 65 20 3d | 3d 20 50 5f 42 55 54 54 |].type =|= P_BUTT|
|00004aa0| 4f 4e 29 0a 58 20 20 20 | 20 20 20 20 20 64 72 61 |ON).X | dra|
|00004ab0| 77 5f 62 75 74 74 6f 6e | 28 28 65 6e 75 6d 20 70 |w_button|((enum p|
|00004ac0| 61 6e 65 6c 5f 74 79 70 | 65 29 20 69 74 65 6d 6e |anel_typ|e) itemn|
|00004ad0| 6f 2c 20 43 5f 4c 47 52 | 45 59 2c 20 42 55 54 5f |o, C_LGR|EY, BUT_|
|00004ae0| 4e 4f 52 4d 41 4c 29 20 | 3b 0a 58 20 20 20 20 20 |NORMAL) |;.X |
|00004af0| 20 65 6c 73 65 20 69 66 | 20 28 69 74 65 6d 73 5b | else if| (items[|
|00004b00| 69 74 65 6d 6e 6f 5d 2e | 74 79 70 65 20 3d 3d 20 |itemno].|type == |
|00004b10| 50 5f 43 59 43 4c 45 29 | 0a 58 20 20 20 20 20 20 |P_CYCLE)|.X |
|00004b20| 20 20 64 72 61 77 5f 63 | 79 63 6c 65 28 28 65 6e | draw_c|ycle((en|
|00004b30| 75 6d 20 70 61 6e 65 6c | 5f 74 79 70 65 29 20 69 |um panel|_type) i|
|00004b40| 74 65 6d 6e 6f 2c 20 43 | 5f 4c 47 52 45 59 2c 20 |temno, C|_LGREY, |
|00004b50| 43 59 5f 4e 4f 52 4d 41 | 4c 29 20 3b 0a 58 20 20 |CY_NORMA|L) ;.X |
|00004b60| 20 20 7d 20 0a 58 7d 0a | 58 0a 58 0a 58 64 6f 5f | } .X}.|X.X.Xdo_|
|00004b70| 61 63 74 69 6f 6e 28 29 | 0a 58 7b 0a 58 20 20 73 |action()|.X{.X s|
|00004b80| 77 69 74 63 68 20 28 6e | 65 78 74 63 29 0a 58 20 |witch (n|extc).X |
|00004b90| 20 20 20 7b 0a 58 20 20 | 20 20 20 20 63 61 73 65 | {.X | case|
|00004ba0| 20 4d 4f 55 53 45 5f 4d | 4f 56 49 4e 47 20 3a 20 | MOUSE_M|OVING : |
|00004bb0| 64 72 61 77 5f 70 69 65 | 63 65 28 6e 65 78 74 5f |draw_pie|ce(next_|
|00004bc0| 70 6c 61 79 65 72 2c 20 | 70 69 65 63 65 5f 78 2c |player, |piece_x,|
|00004bd0| 20 70 69 65 63 65 5f 79 | 2c 20 52 49 4e 56 29 20 | piece_y|, RINV) |
|00004be0| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |;.X | |
|00004bf0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 70 69 65 | | pie|
|00004c00| 63 65 5f 78 20 3d 20 63 | 75 72 78 20 2d 20 50 49 |ce_x = c|urx - PI|
|00004c10| 45 43 45 5f 52 41 44 20 | 3b 0a 58 20 20 20 20 20 |ECE_RAD |;.X |
|00004c20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004c30| 20 20 20 20 20 70 69 65 | 63 65 5f 79 20 3d 20 63 | pie|ce_y = c|
|00004c40| 75 72 79 20 2d 20 50 49 | 45 43 45 5f 52 41 44 20 |ury - PI|ECE_RAD |
|00004c50| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |;.X | |
|00004c60| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 64 72 61 | | dra|
|00004c70| 77 5f 70 69 65 63 65 28 | 6e 65 78 74 5f 70 6c 61 |w_piece(|next_pla|
|00004c80| 79 65 72 2c 20 70 69 65 | 63 65 5f 78 2c 20 70 69 |yer, pie|ce_x, pi|
|00004c90| 65 63 65 5f 79 2c 20 52 | 49 4e 56 29 20 3b 0a 58 |ece_y, R|INV) ;.X|
|00004ca0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004cb0| 20 20 20 20 20 20 20 20 | 20 20 62 72 65 61 6b 20 | | break |
|00004cc0| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |;.X | |
|00004cd0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 0a 58 20 | | .X |
|00004ce0| 20 20 20 20 20 63 61 73 | 65 20 45 4e 54 45 52 5f | cas|e ENTER_|
|00004cf0| 57 49 4e 44 4f 57 20 3a | 20 0a 58 20 20 20 20 20 |WINDOW :| .X |
|00004d00| 20 63 61 73 65 20 45 58 | 49 54 5f 57 49 4e 44 4f | case EX|IT_WINDO|
|00004d10| 57 20 20 3a 20 73 65 74 | 5f 63 75 72 73 6f 72 28 |W : set|_cursor(|
|00004d20| 43 41 4e 56 41 53 43 55 | 52 29 20 3b 0a 58 20 20 |CANVASCU|R) ;.X |
|00004d30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004d40| 20 20 20 20 20 20 20 20 | 64 72 61 77 5f 70 69 65 | |draw_pie|
|00004d50| 63 65 28 6e 65 78 74 5f | 70 6c 61 79 65 72 2c 20 |ce(next_|player, |
|00004d60| 70 69 65 63 65 5f 78 2c | 20 70 69 65 63 65 5f 79 |piece_x,| piece_y|
|00004d70| 2c 20 52 49 4e 56 29 20 | 3b 0a 58 20 20 20 20 20 |, RINV) |;.X |
|00004d80| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004d90| 20 20 20 20 20 63 6d 6f | 64 65 20 3d 20 28 65 6e | cmo|de = (en|
|00004da0| 75 6d 20 63 61 6e 74 79 | 70 65 29 20 28 28 69 6e |um canty|pe) ((in|
|00004db0| 74 29 20 63 6d 6f 64 65 | 20 2d 20 31 29 20 3b 0a |t) cmode| - 1) ;.|
|00004dc0| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |X | |
|00004dd0| 20 20 20 20 20 20 20 20 | 20 20 20 62 72 65 61 6b | | break|
|00004de0| 20 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 | ;.X | |
|00004df0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 0a 58 | | .X|
|00004e00| 20 20 20 20 20 20 63 61 | 73 65 20 4c 45 46 54 5f | ca|se LEFT_|
|00004e10| 44 4f 57 4e 20 20 20 20 | 3a 20 0a 58 20 20 20 20 |DOWN |: .X |
|00004e20| 20 20 63 61 73 65 20 4c | 45 46 54 5f 55 50 20 20 | case L|EFT_UP |
|00004e30| 20 20 20 20 3a 0a 58 20 | 20 20 20 20 20 63 61 73 | :.X | cas|
|00004e40| 65 20 4d 49 44 44 4c 45 | 5f 44 4f 57 4e 20 20 3a |e MIDDLE|_DOWN :|
|00004e50| 0a 58 20 20 20 20 20 20 | 63 61 73 65 20 4d 49 44 |.X |case MID|
|00004e60| 44 4c 45 5f 55 50 20 20 | 20 20 3a 0a 58 20 20 20 |DLE_UP | :.X |
|00004e70| 20 20 20 63 61 73 65 20 | 52 49 47 48 54 5f 44 4f | case |RIGHT_DO|
|00004e80| 57 4e 20 20 20 3a 0a 58 | 20 20 20 20 20 20 63 61 |WN :.X| ca|
|00004e90| 73 65 20 52 49 47 48 54 | 5f 55 50 20 20 20 20 20 |se RIGHT|_UP |
|00004ea0| 3a 20 73 65 74 5f 63 75 | 72 73 6f 72 28 43 41 4e |: set_cu|rsor(CAN|
|00004eb0| 56 41 53 43 55 52 29 20 | 3b 0a 58 20 20 20 20 20 |VASCUR) |;.X |
|00004ec0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004ed0| 20 20 20 20 20 64 6f 5f | 73 65 6c 65 63 74 69 6f | do_|selectio|
|00004ee0| 6e 28 6e 65 78 74 63 29 | 20 3b 0a 58 20 20 20 20 |n(nextc)| ;.X |
|00004ef0| 7d 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |} | |
|00004f00| 20 20 0a 58 7d 0a 58 0a | 58 0a 58 64 6f 5f 63 79 | .X}.X.|X.Xdo_cy|
|00004f10| 63 6c 65 5f 6b 65 79 28 | 69 74 65 6d 2c 20 63 68 |cle_key(|item, ch|
|00004f20| 29 0a 58 65 6e 75 6d 20 | 70 61 6e 65 6c 5f 74 79 |).Xenum |panel_ty|
|00004f30| 70 65 20 69 74 65 6d 20 | 3b 0a 58 69 6e 74 20 63 |pe item |;.Xint c|
|00004f40| 68 20 3b 0a 58 7b 0a 58 | 20 20 69 6e 74 20 76 61 |h ;.X{.X| int va|
|00004f50| 6c 20 3b 0a 58 0a 58 20 | 20 69 66 20 28 21 76 61 |l ;.X.X | if (!va|
|00004f60| 6c 69 64 6b 65 79 29 0a | 58 20 20 20 20 7b 0a 58 |lidkey).|X {.X|
|00004f70| 20 20 20 20 20 20 76 61 | 6c 69 64 6b 65 79 20 3d | va|lidkey =|
|00004f80| 20 63 75 72 5f 63 68 20 | 3b 0a 58 20 20 20 20 20 | cur_ch |;.X |
|00004f90| 20 6d 65 73 73 61 67 65 | 28 50 41 4e 45 4c 5f 4d | message|(PANEL_M|
|00004fa0| 45 53 2c 20 69 74 65 6d | 73 5b 28 69 6e 74 29 20 |ES, item|s[(int) |
|00004fb0| 69 74 65 6d 5d 2e 74 65 | 78 74 29 20 3b 0a 58 20 |item].te|xt) ;.X |
|00004fc0| 20 20 20 7d 0a 58 20 20 | 65 6c 73 65 0a 58 20 20 | }.X |else.X |
|00004fd0| 20 20 7b 0a 58 20 20 20 | 20 20 20 76 61 6c 20 3d | {.X | val =|
|00004fe0| 20 2d 31 20 3b 0a 58 20 | 20 20 20 20 20 73 77 69 | -1 ;.X | swi|
|00004ff0| 74 63 68 20 28 69 74 65 | 6d 29 0a 58 20 20 20 20 |tch (ite|m).X |
|00005000| 20 20 20 20 7b 0a 58 20 | 20 20 20 20 20 20 20 20 | {.X | |
|00005010| 20 63 61 73 65 20 41 53 | 50 49 52 41 54 49 4f 4e | case AS|PIRATION|
|00005020| 20 20 20 20 20 3a 20 69 | 66 20 28 63 68 20 3e 3d | : i|f (ch >=|
|00005030| 20 27 31 27 20 26 26 20 | 63 68 20 3c 3d 20 27 36 | '1' && |ch <= '6|
|00005040| 27 29 20 76 61 6c 20 3d | 20 63 68 20 2d 20 27 31 |') val =| ch - '1|
|00005050| 27 20 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 |' ;.X | |
|00005060| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005070| 20 20 20 20 20 62 72 65 | 61 6b 20 3b 0a 58 20 20 | bre|ak ;.X |
|00005080| 20 20 20 20 20 20 20 20 | 63 61 73 65 20 43 4f 4d | |case COM|
|00005090| 50 55 54 45 52 5f 50 4c | 41 59 53 20 3a 20 73 77 |PUTER_PL|AYS : sw|
|000050a0| 69 74 63 68 20 28 63 68 | 29 0a 58 20 20 20 20 20 |itch (ch|).X |
|000050b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000050c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 7b 0a 58 | | {.X|
|000050d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000050e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000050f0| 20 20 20 20 63 61 73 65 | 20 27 62 27 20 3a 0a 58 | case| 'b' :.X|
|00005100| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005110| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005120| 20 20 20 20 63 61 73 65 | 20 27 42 27 20 3a 20 76 | case| 'B' : v|
|00005130| 61 6c 20 3d 20 30 20 3b | 0a 58 20 20 20 20 20 20 |al = 0 ;|.X |
|00005140| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005150| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005160| 20 20 20 20 20 20 20 20 | 20 62 72 65 61 6b 20 3b | | break ;|
|00005170| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.X | |
|00005180| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005190| 20 20 20 20 20 20 63 61 | 73 65 20 27 77 27 20 3a | ca|se 'w' :|
|000051a0| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.X | |
|000051b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000051c0| 20 20 20 20 20 20 63 61 | 73 65 20 27 57 27 20 3a | ca|se 'W' :|
|000051d0| 20 76 61 6c 20 3d 20 31 | 20 3b 0a 58 20 20 20 20 | val = 1| ;.X |
|000051e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000051f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005200| 20 20 20 20 20 20 20 20 | 20 20 20 62 72 65 61 6b | | break|
|00005210| 20 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 | ;.X | |
|00005220| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005230| 20 20 20 20 20 20 20 20 | 64 65 66 61 75 6c 74 20 | |default |
|00005240| 20 3a 20 72 65 74 75 72 | 6e 20 3b 0a 58 20 20 20 | : retur|n ;.X |
|00005250| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005260| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 7d | | }|
|00005270| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.X | |
|00005280| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005290| 20 20 62 72 65 61 6b 20 | 3b 0a 58 20 20 20 20 20 | break |;.X |
|000052a0| 20 20 20 20 20 63 61 73 | 65 20 44 49 46 46 49 43 | cas|e DIFFIC|
|000052b0| 55 4c 54 59 20 20 20 20 | 20 3a 20 69 66 20 28 63 |ULTY | : if (c|
|000052c0| 68 20 3e 3d 20 27 31 27 | 20 26 26 20 63 68 20 3c |h >= '1'| && ch <|
|000052d0| 3d 20 27 34 27 29 20 76 | 61 6c 20 3d 20 63 68 20 |= '4') v|al = ch |
|000052e0| 2d 20 27 31 27 20 3b 0a | 58 20 20 20 20 20 20 20 |- '1' ;.|X |
|000052f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005300| 20 20 20 20 20 20 20 20 | 20 62 72 65 61 6b 20 3b | | break ;|
|00005310| 0a 58 20 20 20 20 20 20 | 20 20 20 20 63 61 73 65 |.X | case|
|00005320| 20 52 45 4d 41 52 4b 20 | 20 20 20 20 20 20 20 20 | REMARK | |
|00005330| 3a 20 73 77 69 74 63 68 | 20 28 63 68 29 0a 58 20 |: switch| (ch).X |
|00005340| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005350| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005360| 20 7b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 | {.X | |
|00005370| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005380| 20 20 20 20 20 20 20 20 | 63 61 73 65 20 27 6e 27 | |case 'n'|
|00005390| 20 3a 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 | :.X | |
|000053a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000053b0| 20 20 20 20 20 20 20 20 | 63 61 73 65 20 27 4e 27 | |case 'N'|
|000053c0| 20 3a 20 76 61 6c 20 3d | 20 30 20 3b 0a 58 20 20 | : val =| 0 ;.X |
|000053d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000053e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000053f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 62 72 65 | | bre|
|00005400| 61 6b 20 3b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |ak ;.X | |
|00005410| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005420| 20 20 20 20 20 20 20 20 | 20 20 63 61 73 65 20 27 | | case '|
|00005430| 79 27 20 3a 0a 58 20 20 | 20 20 20 20 20 20 20 20 |y' :.X | |
|00005440| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005450| 20 20 20 20 20 20 20 20 | 20 20 63 61 73 65 20 27 | | case '|
|00005460| 59 27 20 3a 20 76 61 6c | 20 3d 20 31 20 3b 0a 58 |Y' : val| = 1 ;.X|
|00005470| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005480| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005490| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 62 | | b|
|000054a0| 72 65 61 6b 20 3b 0a 58 | 20 20 20 20 20 20 20 20 |reak ;.X| |
|000054b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000054c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 64 65 66 61 | | defa|
|000054d0| 75 6c 74 20 20 3a 20 72 | 65 74 75 72 6e 20 3b 0a |ult : r|eturn ;.|
|000054e0| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |X | |
|000054f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005500| 20 20 20 7d 0a 58 20 20 | 20 20 20 20 20 20 7d 0a | }.X | }.|
|00005510| 58 20 20 20 20 20 20 69 | 66 20 28 76 61 6c 20 21 |X i|f (val !|
|00005520| 3d 20 2d 31 29 0a 58 20 | 20 20 20 20 20 20 20 7b |= -1).X | {|
|00005530| 0a 58 20 20 20 20 20 20 | 20 20 20 20 76 61 6c 69 |.X | vali|
|00005540| 64 6b 65 79 20 3d 20 30 | 20 3b 0a 58 20 20 20 20 |dkey = 0| ;.X |
|00005550| 20 20 20 20 20 20 6d 65 | 73 73 61 67 65 28 50 41 | me|ssage(PA|
|00005560| 4e 45 4c 5f 4d 45 53 2c | 20 22 22 29 20 3b 0a 58 |NEL_MES,| "") ;.X|
|00005570| 20 20 20 20 20 20 20 20 | 20 20 69 66 20 28 69 74 | | if (it|
|00005580| 65 6d 20 3d 3d 20 43 4f | 4d 50 55 54 45 52 5f 50 |em == CO|MPUTER_P|
|00005590| 4c 41 59 53 20 26 26 20 | 76 61 6c 20 3d 3d 20 69 |LAYS && |val == i|
|000055a0| 74 65 6d 73 5b 28 69 6e | 74 29 20 69 74 65 6d 5d |tems[(in|t) item]|
|000055b0| 2e 76 61 6c 75 65 29 0a | 58 20 20 20 20 20 20 20 |.value).|X |
|000055c0| 20 20 20 20 20 72 65 74 | 75 72 6e 20 3b 0a 58 20 | ret|urn ;.X |
|000055d0| 20 20 20 20 20 20 20 20 | 20 69 74 65 6d 73 5b 28 | | items[(|
|000055e0| 69 6e 74 29 20 69 74 65 | 6d 5d 2e 76 61 6c 75 65 |int) ite|m].value|
|000055f0| 20 3d 20 69 74 65 6d 5f | 76 61 6c 75 65 20 3d 20 | = item_|value = |
|00005600| 76 61 6c 20 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |val ;.X | |
|00005610| 20 64 69 72 65 63 74 69 | 6f 6e 20 3d 20 4e 4f 4e | directi|on = NON|
|00005620| 45 20 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 28 |E ;.X | (|
|00005630| 2a 69 74 65 6d 73 5b 28 | 69 6e 74 29 20 69 74 65 |*items[(|int) ite|
|00005640| 6d 5d 2e 66 75 6e 63 29 | 28 29 20 3b 0a 58 20 20 |m].func)|() ;.X |
|00005650| 20 20 20 20 20 20 7d 0a | 58 20 20 20 20 7d 0a 58 | }.|X }.X|
|00005660| 7d 0a 58 0a 58 0a 58 64 | 6f 5f 6b 65 79 5f 6d 6f |}.X.X.Xd|o_key_mo|
|00005670| 76 65 28 6e 31 2c 20 6e | 32 29 0a 58 69 6e 74 20 |ve(n1, n|2).Xint |
|00005680| 6e 31 2c 20 6e 32 20 3b | 0a 58 7b 0a 58 20 20 6d |n1, n2 ;|.X{.X m|
|00005690| 6f 76 65 20 3d 20 28 6e | 31 20 2d 20 27 61 27 29 |ove = (n|1 - 'a')|
|000056a0| 20 2a 20 42 4f 41 52 44 | 5f 53 49 5a 45 20 2b 20 | * BOARD|_SIZE + |
|000056b0| 28 6e 32 20 2d 20 27 31 | 27 29 20 3b 0a 58 20 20 |(n2 - '1|') ;.X |
|000056c0| 6e 65 78 74 5f 70 6c 61 | 79 65 72 20 3d 20 28 69 |next_pla|yer = (i|
|000056d0| 6e 74 29 20 63 6d 6f 64 | 65 20 2d 20 31 20 3b 0a |nt) cmod|e - 1 ;.|
|000056e0| 58 20 20 63 6d 6f 64 65 | 20 3d 20 28 65 6e 75 6d |X cmode| = (enum|
|000056f0| 20 63 61 6e 74 79 70 65 | 29 20 28 28 69 6e 74 29 | cantype|) ((int)|
|00005700| 20 63 6d 6f 64 65 20 2b | 20 31 29 20 3b 0a 58 20 | cmode +| 1) ;.X |
|00005710| 20 6d 61 6b 65 5f 6d 6f | 76 65 28 29 20 3b 0a 58 | make_mo|ve() ;.X|
|00005720| 20 20 76 61 6c 69 64 6b | 65 79 20 3d 20 30 20 3b | validk|ey = 0 ;|
|00005730| 0a 58 7d 0a 58 0a 58 0a | 58 67 65 74 5f 78 79 28 |.X}.X.X.|Xget_xy(|
|00005740| 6e 2c 20 78 2c 20 79 29 | 20 20 20 20 20 20 2f 2a |n, x, y)| /*|
|00005750| 20 52 65 74 75 72 6e 20 | 70 69 65 63 65 20 63 6f | Return |piece co|
|00005760| 6f 72 64 69 6e 61 74 65 | 73 20 67 69 76 65 6e 20 |ordinate|s given |
|00005770| 62 6f 61 72 64 20 69 6e | 64 65 78 2e 20 2a 2f 0a |board in|dex. */.|
|00005780| 58 69 6e 74 20 6e 2c 20 | 2a 78 2c 2a 79 20 3b 0a |Xint n, |*x,*y ;.|
|00005790| 58 7b 0a 58 20 20 2a 78 | 20 3d 20 28 6e 20 26 20 |X{.X *x| = (n & |
|000057a0| 37 29 20 2a 20 43 45 4c | 4c 5f 53 49 5a 45 20 2b |7) * CEL|L_SIZE +|
|000057b0| 20 42 42 4f 52 44 45 52 | 20 2b 20 50 49 45 43 45 | BBORDER| + PIECE|
|000057c0| 5f 4d 41 52 47 49 4e 20 | 3b 0a 58 20 20 2a 79 20 |_MARGIN |;.X *y |
|000057d0| 3d 20 28 6e 20 3e 3e 20 | 33 29 20 2a 20 43 45 4c |= (n >> |3) * CEL|
|000057e0| 4c 5f 53 49 5a 45 20 2b | 20 42 42 4f 52 44 45 52 |L_SIZE +| BBORDER|
|000057f0| 20 2b 20 50 49 45 43 45 | 5f 4d 41 52 47 49 4e 20 | + PIECE|_MARGIN |
|00005800| 3b 0a 58 7d 0a 58 0a 58 | 0a 58 68 61 6e 64 6c 65 |;.X}.X.X|.Xhandle|
|00005810| 5f 62 6f 61 72 64 5f 65 | 76 65 6e 74 28 29 0a 58 |_board_e|vent().X|
|00005820| 7b 0a 58 20 20 73 77 69 | 74 63 68 20 28 63 6d 6f |{.X swi|tch (cmo|
|00005830| 64 65 29 0a 58 20 20 20 | 20 7b 0a 58 20 20 20 20 |de).X | {.X |
|00005840| 20 20 63 61 73 65 20 57 | 48 49 54 45 5f 53 54 41 | case W|HITE_STA|
|00005850| 52 54 20 20 3a 0a 58 20 | 20 20 20 20 20 63 61 73 |RT :.X | cas|
|00005860| 65 20 42 4c 41 43 4b 5f | 53 54 41 52 54 20 20 3a |e BLACK_|START :|
|00005870| 20 6e 65 78 74 5f 70 6c | 61 79 65 72 20 3d 20 28 | next_pl|ayer = (|
|00005880| 69 6e 74 29 20 63 6d 6f | 64 65 20 2d 20 31 20 3b |int) cmo|de - 1 ;|
|00005890| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.X | |
|000058a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 69 66 20 28 | | if (|
|000058b0| 6e 65 78 74 63 20 3d 3d | 20 4c 45 46 54 5f 44 4f |nextc ==| LEFT_DO|
|000058c0| 57 4e 20 7c 7c 20 6e 65 | 78 74 63 20 3d 3d 20 4d |WN || ne|xtc == M|
|000058d0| 49 44 44 4c 45 5f 44 4f | 57 4e 20 7c 7c 0a 58 20 |IDDLE_DO|WN ||.X |
|000058e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000058f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 6e 65 78 | | nex|
|00005900| 74 63 20 3d 3d 20 52 49 | 47 48 54 5f 44 4f 57 4e |tc == RI|GHT_DOWN|
|00005910| 29 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |).X | |
|00005920| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 7b | | {|
|00005930| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.X | |
|00005940| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005950| 73 65 74 5f 63 75 72 73 | 6f 72 28 4e 4f 43 55 52 |set_curs|or(NOCUR|
|00005960| 53 4f 52 29 20 3b 0a 58 | 20 20 20 20 20 20 20 20 |SOR) ;.X| |
|00005970| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005980| 20 20 20 20 20 20 70 69 | 65 63 65 5f 78 20 3d 20 | pi|ece_x = |
|00005990| 63 75 72 78 20 2d 20 42 | 42 4f 52 44 45 52 20 2d |curx - B|BORDER -|
|000059a0| 20 28 50 49 45 43 45 5f | 52 41 44 29 20 3b 0a 58 | (PIECE_|RAD) ;.X|
|000059b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000059c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 70 69 | | pi|
|000059d0| 65 63 65 5f 79 20 3d 20 | 63 75 72 79 20 2d 20 42 |ece_y = |cury - B|
|000059e0| 42 4f 52 44 45 52 20 2d | 20 28 50 49 45 43 45 5f |BORDER -| (PIECE_|
|000059f0| 52 41 44 29 20 3b 0a 58 | 20 20 20 20 20 20 20 20 |RAD) ;.X| |
|00005a00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005a10| 20 20 20 20 20 20 64 72 | 61 77 5f 70 69 65 63 65 | dr|aw_piece|
|00005a20| 28 6e 65 78 74 5f 70 6c | 61 79 65 72 2c 20 70 69 |(next_pl|ayer, pi|
|00005a30| 65 63 65 5f 78 2c 20 70 | 69 65 63 65 5f 79 2c 20 |ece_x, p|iece_y, |
|00005a40| 52 49 4e 56 29 20 3b 0a | 58 20 20 20 20 20 20 20 |RINV) ;.|X |
|00005a50| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005a60| 20 20 20 20 20 20 20 63 | 6d 6f 64 65 20 3d 20 28 | c|mode = (|
|00005a70| 65 6e 75 6d 20 63 61 6e | 74 79 70 65 29 20 28 28 |enum can|type) ((|
|00005a80| 69 6e 74 29 20 63 6d 6f | 64 65 20 2b 20 31 29 20 |int) cmo|de + 1) |
|00005a90| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |;.X | |
|00005aa0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 7d | | }|
|00005ab0| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.X | |
|00005ac0| 20 20 20 20 20 20 20 20 | 20 20 20 20 62 72 65 61 | | brea|
|00005ad0| 6b 20 3b 0a 58 20 20 20 | 20 20 20 63 61 73 65 20 |k ;.X | case |
|00005ae0| 57 48 49 54 45 5f 4d 4f | 56 49 4e 47 20 3a 0a 58 |WHITE_MO|VING :.X|
|00005af0| 20 20 20 20 20 20 63 61 | 73 65 20 42 4c 41 43 4b | ca|se BLACK|
|00005b00| 5f 4d 4f 56 49 4e 47 20 | 3a 20 64 6f 5f 61 63 74 |_MOVING |: do_act|
|00005b10| 69 6f 6e 28 29 20 3b 0a | 58 20 20 20 20 7d 0a 58 |ion() ;.|X }.X|
|00005b20| 7d 0a 58 0a 58 0a 58 68 | 61 6e 64 6c 65 5f 65 76 |}.X.X.Xh|andle_ev|
|00005b30| 65 6e 74 28 29 0a 58 7b | 0a 58 20 20 70 72 6f 63 |ent().X{|.X proc|
|00005b40| 65 73 73 5f 65 76 65 6e | 74 28 29 20 3b 0a 58 0a |ess_even|t() ;.X.|
|00005b50| 58 20 20 20 20 20 20 20 | 69 66 20 28 6e 65 78 74 |X |if (next|
|00005b60| 63 20 3d 3d 20 46 52 41 | 4d 45 5f 52 45 50 41 49 |c == FRA|ME_REPAI|
|00005b70| 4e 54 29 20 69 6e 69 74 | 5f 63 61 6e 76 61 73 28 |NT) init|_canvas(|
|00005b80| 29 20 3b 0a 58 20 20 65 | 6c 73 65 20 69 66 20 28 |) ;.X e|lse if (|
|00005b90| 6e 65 78 74 63 20 3d 3d | 20 4b 45 59 42 4f 41 52 |nextc ==| KEYBOAR|
|00005ba0| 44 29 20 20 20 20 20 20 | 68 61 6e 64 6c 65 5f 6b |D) |handle_k|
|00005bb0| 65 79 28 29 20 3b 0a 58 | 20 20 65 6c 73 65 20 69 |ey() ;.X| else i|
|00005bc0| 66 20 28 6e 65 78 74 63 | 20 3d 3d 20 45 58 49 54 |f (nextc| == EXIT|
|00005bd0| 5f 57 49 4e 44 4f 57 20 | 26 26 20 62 75 74 5f 69 |_WINDOW |&& but_i|
|00005be0| 6e 76 65 72 74 65 64 20 | 21 3d 20 2d 31 29 0a 58 |nverted |!= -1).X|
|00005bf0| 20 20 20 20 7b 0a 58 20 | 20 20 20 20 20 64 72 61 | {.X | dra|
|00005c00| 77 5f 62 75 74 74 6f 6e | 28 28 65 6e 75 6d 20 70 |w_button|((enum p|
|00005c10| 61 6e 65 6c 5f 74 79 70 | 65 29 20 62 75 74 5f 69 |anel_typ|e) but_i|
|00005c20| 6e 76 65 72 74 65 64 2c | 20 43 5f 4c 47 52 45 59 |nverted,| C_LGREY|
|00005c30| 2c 20 42 55 54 5f 4e 4f | 52 4d 41 4c 29 20 3b 0a |, BUT_NO|RMAL) ;.|
|00005c40| 58 20 20 20 20 20 20 62 | 75 74 5f 69 6e 76 65 72 |X b|ut_inver|
|00005c50| 74 65 64 20 3d 20 2d 31 | 20 3b 0a 58 20 20 20 20 |ted = -1| ;.X |
|00005c60| 20 20 64 6f 77 6e 20 3d | 20 30 20 3b 0a 58 20 20 | down =| 0 ;.X |
|00005c70| 20 20 7d 0a 58 20 20 65 | 6c 73 65 20 69 66 20 28 | }.X e|lse if (|
|00005c80| 63 75 72 79 20 3e 20 28 | 43 59 20 2b 20 42 42 4f |cury > (|CY + BBO|
|00005c90| 52 44 45 52 29 29 20 68 | 61 6e 64 6c 65 5f 62 6f |RDER)) h|andle_bo|
|00005ca0| 61 72 64 5f 65 76 65 6e | 74 28 29 20 3b 0a 58 20 |ard_even|t() ;.X |
|00005cb0| 20 65 6c 73 65 20 69 66 | 20 28 6e 65 78 74 63 20 | else if| (nextc |
|00005cc0| 3d 3d 20 4c 45 46 54 5f | 55 50 20 7c 7c 20 6e 65 |== LEFT_|UP || ne|
|00005cd0| 78 74 63 20 3d 3d 20 4d | 49 44 44 4c 45 5f 55 50 |xtc == M|IDDLE_UP|
|00005ce0| 20 7c 7c 20 6e 65 78 74 | 63 20 3d 3d 20 52 49 47 | || next|c == RIG|
|00005cf0| 48 54 5f 55 50 29 0a 58 | 20 20 20 20 63 68 65 63 |HT_UP).X| chec|
|00005d00| 6b 5f 69 74 65 6d 5f 75 | 70 28 29 20 3b 0a 58 20 |k_item_u|p() ;.X |
|00005d10| 20 65 6c 73 65 20 69 66 | 20 28 6e 65 78 74 63 20 | else if| (nextc |
|00005d20| 3d 3d 20 4c 45 46 54 5f | 44 4f 57 4e 20 7c 7c 20 |== LEFT_|DOWN || |
|00005d30| 6e 65 78 74 63 20 3d 3d | 20 4d 49 44 44 4c 45 5f |nextc ==| MIDDLE_|
|00005d40| 44 4f 57 4e 20 7c 7c 20 | 6e 65 78 74 63 20 3d 3d |DOWN || |nextc ==|
|00005d50| 20 52 49 47 48 54 5f 44 | 4f 57 4e 29 0a 58 20 20 | RIGHT_D|OWN).X |
|00005d60| 20 20 63 68 65 63 6b 5f | 69 74 65 6d 5f 64 6f 77 | check_|item_dow|
|00005d70| 6e 28 29 20 3b 0a 58 7d | 0a 58 0a 58 0a 58 68 61 |n() ;.X}|.X.X.Xha|
|00005d80| 6e 64 6c 65 5f 69 74 65 | 6d 28 76 61 6c 29 0a 58 |ndle_ite|m(val).X|
|00005d90| 69 6e 74 20 76 61 6c 20 | 3b 0a 58 7b 0a 58 20 20 |int val |;.X{.X |
|00005da0| 69 74 65 6d 73 5b 69 74 | 65 6d 6e 6f 5d 2e 76 61 |items[it|emno].va|
|00005db0| 6c 75 65 20 3d 20 69 74 | 65 6d 5f 76 61 6c 75 65 |lue = it|em_value|
|00005dc0| 20 3d 20 76 61 6c 20 3b | 0a 58 20 20 28 2a 69 74 | = val ;|.X (*it|
|00005dd0| 65 6d 73 5b 69 74 65 6d | 6e 6f 5d 2e 66 75 6e 63 |ems[item|no].func|
|00005de0| 29 28 29 20 3b 0a 58 20 | 20 62 75 74 5f 69 6e 76 |)() ;.X | but_inv|
|00005df0| 65 72 74 65 64 20 3d 20 | 2d 31 20 3b 0a 58 20 20 |erted = |-1 ;.X |
|00005e00| 64 6f 77 6e 20 3d 20 30 | 20 3b 0a 58 7d 0a 58 0a |down = 0| ;.X}.X.|
|00005e10| 58 0a 58 68 61 6e 64 6c | 65 5f 6b 65 79 28 29 20 |X.Xhandl|e_key() |
|00005e20| 20 20 20 20 2f 2a 20 50 | 72 6f 63 65 73 73 20 74 | /* P|rocess t|
|00005e30| 68 65 20 6c 61 74 65 73 | 74 20 6b 65 79 20 74 68 |he lates|t key th|
|00005e40| 61 74 20 74 68 65 20 75 | 73 65 72 20 68 61 73 20 |at the u|ser has |
|00005e50| 70 72 65 73 73 65 64 2e | 20 2a 2f 0a 58 7b 0a 58 |pressed.| */.X{.X|
|00005e60| 20 20 63 68 61 72 20 73 | 74 72 5b 38 5d 20 3b 20 | char s|tr[8] ; |
|00005e70| 20 2f 2a 20 54 6f 20 64 | 69 73 70 6c 61 79 20 68 | /* To d|isplay h|
|00005e80| 61 6c 66 20 6d 6f 76 65 | 20 70 6f 73 69 74 69 6f |alf move| positio|
|00005e90| 6e 2e 20 2a 2f 0a 58 20 | 20 69 6e 74 20 6e 65 78 |n. */.X | int nex|
|00005ea0| 74 63 20 3b 0a 58 0a 58 | 20 20 69 66 20 28 63 75 |tc ;.X.X| if (cu|
|00005eb0| 72 5f 63 68 20 3d 3d 20 | 45 53 43 41 50 45 29 20 |r_ch == |ESCAPE) |
|00005ec0| 76 61 6c 69 64 6b 65 79 | 20 3d 20 30 20 3b 0a 58 |validkey| = 0 ;.X|
|00005ed0| 20 20 69 66 20 28 76 61 | 6c 69 64 6b 65 79 29 0a | if (va|lidkey).|
|00005ee0| 58 20 20 20 20 7b 0a 58 | 20 20 20 20 20 20 6e 65 |X {.X| ne|
|00005ef0| 78 74 63 20 3d 20 63 75 | 72 5f 63 68 20 3b 0a 58 |xtc = cu|r_ch ;.X|
|00005f00| 20 20 20 20 20 20 63 75 | 72 5f 63 68 20 3d 20 76 | cu|r_ch = v|
|00005f10| 61 6c 69 64 6b 65 79 20 | 3b 0a 58 20 20 20 20 7d |alidkey |;.X }|
|00005f20| 0a 58 20 20 73 77 69 74 | 63 68 20 28 63 75 72 5f |.X swit|ch (cur_|
|00005f30| 63 68 29 0a 58 20 20 20 | 20 7b 0a 58 20 20 20 20 |ch).X | {.X |
|00005f40| 20 20 63 61 73 65 20 27 | 41 27 20 3a 20 64 6f 5f | case '|A' : do_|
|00005f50| 63 79 63 6c 65 5f 6b 65 | 79 28 41 53 50 49 52 41 |cycle_ke|y(ASPIRA|
|00005f60| 54 49 4f 4e 2c 20 6e 65 | 78 74 63 29 20 3b 0a 58 |TION, ne|xtc) ;.X|
|00005f70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005f80| 20 62 72 65 61 6b 20 3b | 0a 58 20 20 20 20 20 20 | break ;|.X |
|00005f90| 63 61 73 65 20 27 43 27 | 20 3a 20 64 6f 5f 63 79 |case 'C'| : do_cy|
|00005fa0| 63 6c 65 5f 6b 65 79 28 | 43 4f 4d 50 55 54 45 52 |cle_key(|COMPUTER|
|00005fb0| 5f 50 4c 41 59 53 2c 20 | 6e 65 78 74 63 29 20 3b |_PLAYS, |nextc) ;|
|00005fc0| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.X | |
|00005fd0| 20 20 20 62 72 65 61 6b | 20 3b 0a 58 20 20 20 20 | break| ;.X |
|00005fe0| 20 20 63 61 73 65 20 27 | 44 27 20 3a 20 64 6f 5f | case '|D' : do_|
|00005ff0| 63 79 63 6c 65 5f 6b 65 | 79 28 44 49 46 46 49 43 |cycle_ke|y(DIFFIC|
|00006000| 55 4c 54 59 2c 20 6e 65 | 78 74 63 29 20 3b 0a 58 |ULTY, ne|xtc) ;.X|
|00006010| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00006020| 20 62 72 65 61 6b 20 3b | 0a 58 20 20 20 20 20 20 | break ;|.X |
|00006030| 63 61 73 65 20 27 72 27 | 20 3a 0a 58 20 20 20 20 |case 'r'| :.X |
|00006040| 20 20 63 61 73 65 20 27 | 52 27 20 3a 20 64 6f 5f | case '|R' : do_|
|00006050| 63 79 63 6c 65 5f 6b 65 | 79 28 52 45 4d 41 52 4b |cycle_ke|y(REMARK|
|00006060| 2c 20 6e 65 78 74 63 29 | 20 3b 0a 58 20 20 20 20 |, nextc)| ;.X |
|00006070| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 62 72 65 | | bre|
|00006080| 61 6b 20 3b 0a 58 20 20 | 20 20 20 20 63 61 73 65 |ak ;.X | case|
|00006090| 20 27 6c 27 20 3a 0a 58 | 20 20 20 20 20 20 63 61 | 'l' :.X| ca|
|000060a0| 73 65 20 27 4c 27 20 3a | 20 6c 61 73 74 28 29 20 |se 'L' :| last() |
|000060b0| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |;.X | |
|000060c0| 20 20 20 20 62 72 65 61 | 6b 20 3b 0a 58 20 20 20 | brea|k ;.X |
|000060d0| 20 20 20 63 61 73 65 20 | 27 6e 27 20 3a 0a 58 20 | case |'n' :.X |
|000060e0| 20 20 20 20 20 63 61 73 | 65 20 27 4e 27 20 3a 20 | cas|e 'N' : |
|000060f0| 6e 65 77 5f 67 61 6d 65 | 28 29 20 3b 0a 58 20 20 |new_game|() ;.X |
|00006100| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 62 | | b|
|00006110| 72 65 61 6b 20 3b 0a 58 | 20 20 20 20 20 20 63 61 |reak ;.X| ca|
|00006120| 73 65 20 27 71 27 20 3a | 0a 58 20 20 20 20 20 20 |se 'q' :|.X |
|00006130| 63 61 73 65 20 27 51 27 | 20 3a 20 71 75 69 74 28 |case 'Q'| : quit(|
|00006140| 29 20 3b 0a 58 20 20 20 | 20 20 20 63 61 73 65 20 |) ;.X | case |
|00006150| 27 73 27 20 3a 0a 58 20 | 20 20 20 20 20 63 61 73 |'s' :.X | cas|
|00006160| 65 20 27 53 27 20 3a 20 | 73 75 67 67 65 73 74 28 |e 'S' : |suggest(|
|00006170| 29 20 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 |) ;.X | |
|00006180| 20 20 20 20 20 20 62 72 | 65 61 6b 20 3b 0a 58 20 | br|eak ;.X |
|00006190| 20 20 20 20 20 63 61 73 | 65 20 27 75 27 20 3a 0a | cas|e 'u' :.|
|000061a0| 58 20 20 20 20 20 20 63 | 61 73 65 20 27 55 27 20 |X c|ase 'U' |
|000061b0| 3a 20 75 6e 64 6f 28 29 | 20 3b 0a 58 20 20 20 20 |: undo()| ;.X |
|000061c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 62 72 65 | | bre|
|000061d0| 61 6b 20 3b 0a 58 20 20 | 20 20 20 20 63 61 73 65 |ak ;.X | case|
|000061e0| 20 27 31 27 20 3a 0a 58 | 20 20 20 20 20 20 63 61 | '1' :.X| ca|
|000061f0| 73 65 20 27 32 27 20 3a | 0a 58 20 20 20 20 20 20 |se '2' :|.X |
|00006200| 63 61 73 65 20 27 33 27 | 20 3a 0a 58 20 20 20 20 |case '3'| :.X |
|00006210| 20 20 63 61 73 65 20 27 | 34 27 20 3a 0a 58 20 20 | case '|4' :.X |
|00006220| 20 20 20 20 63 61 73 65 | 20 27 35 27 20 3a 0a 58 | case| '5' :.X|
|00006230| 20 20 20 20 20 20 63 61 | 73 65 20 27 36 27 20 3a | ca|se '6' :|
|00006240| 0a 58 20 20 20 20 20 20 | 63 61 73 65 20 27 37 27 |.X |case '7'|
|00006250| 20 3a 0a 58 20 20 20 20 | 20 20 63 61 73 65 20 27 | :.X | case '|
|00006260| 38 27 20 3a 20 69 66 20 | 28 21 76 61 6c 69 64 6b |8' : if |(!validk|
|00006270| 65 79 29 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 |ey).X | |
|00006280| 20 20 20 20 20 20 20 20 | 7b 0a 58 20 20 20 20 20 | |{.X |
|00006290| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000062a0| 76 61 6c 69 64 6b 65 79 | 20 3d 20 63 75 72 5f 63 |validkey| = cur_c|
|000062b0| 68 20 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 |h ;.X | |
|000062c0| 20 20 20 20 20 20 20 20 | 20 20 53 50 52 49 4e 54 | | SPRINT|
|000062d0| 46 28 73 74 72 2c 20 22 | 4d 6f 76 65 3a 20 25 63 |F(str, "|Move: %c|
|000062e0| 22 2c 20 63 75 72 5f 63 | 68 29 20 3b 0a 58 20 20 |", cur_c|h) ;.X |
|000062f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00006300| 20 20 20 6d 65 73 73 61 | 67 65 28 50 41 4e 45 4c | messa|ge(PANEL|
|00006310| 5f 4d 45 53 2c 20 73 74 | 72 29 20 3b 0a 58 20 20 |_MES, st|r) ;.X |
|00006320| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00006330| 20 7d 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 | }.X | |
|00006340| 20 20 20 20 20 65 6c 73 | 65 20 69 66 20 28 6e 65 | els|e if (ne|
|00006350| 78 74 63 20 3e 3d 20 27 | 61 27 20 26 26 20 6e 65 |xtc >= '|a' && ne|
|00006360| 78 74 63 20 3c 3d 20 27 | 68 27 29 0a 58 20 20 20 |xtc <= '|h').X |
|00006370| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00006380| 7b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |{.X | |
|00006390| 20 20 20 20 20 20 20 20 | 53 50 52 49 4e 54 46 28 | |SPRINTF(|
|000063a0| 73 74 72 2c 20 22 4d 6f | 76 65 3a 20 25 63 25 63 |str, "Mo|ve: %c%c|
|000063b0| 22 2c 20 63 75 72 5f 63 | 68 2c 20 6e 65 78 74 63 |", cur_c|h, nextc|
|000063c0| 29 20 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 |) ;.X | |
|000063d0| 20 20 20 20 20 20 20 20 | 20 20 6d 65 73 73 61 67 | | messag|
|000063e0| 65 28 50 41 4e 45 4c 5f | 4d 45 53 2c 20 73 74 72 |e(PANEL_|MES, str|
|000063f0| 29 20 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 |) ;.X | |
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.