home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / compsrcs / games / volume04 / chessbd < prev    next >
SHell self-extracting ARchive  |  1991-08-27  |  16.6 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

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

You can browse this item here: chessbd

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 74 65 6b 74 |Path: uu|net!tekt|
|00000010| 72 6f 6e 69 78 21 74 65 | 6b 67 65 6e 21 74 65 6b |ronix!te|kgen!tek|
|00000020| 72 65 64 21 67 61 6d 65 | 73 0a 46 72 6f 6d 3a 20 |red!game|s.From: |
|00000030| 67 61 6d 65 73 40 74 65 | 6b 72 65 64 2e 54 45 4b |games@te|kred.TEK|
|00000040| 2e 43 4f 4d 0a 4e 65 77 | 73 67 72 6f 75 70 73 3a |.COM.New|sgroups:|
|00000050| 20 63 6f 6d 70 2e 73 6f | 75 72 63 65 73 2e 67 61 | comp.so|urces.ga|
|00000060| 6d 65 73 0a 53 75 62 6a | 65 63 74 3a 20 76 30 34 |mes.Subj|ect: v04|
|00000070| 69 30 33 30 3a 20 20 63 | 68 65 73 73 62 64 20 2d |i030: c|hessbd -|
|00000080| 20 61 20 52 65 47 49 53 | 20 67 72 61 70 68 69 63 | a ReGIS| graphic|
|00000090| 20 63 68 65 73 73 62 6f | 61 72 64 20 66 6f 72 20 | chessbo|ard for |
|000000a0| 74 68 65 20 56 54 32 34 | 30 0a 4d 65 73 73 61 67 |the VT24|0.Messag|
|000000b0| 65 2d 49 44 3a 20 3c 32 | 36 31 32 40 74 65 6b 72 |e-ID: <2|612@tekr|
|000000c0| 65 64 2e 54 45 4b 2e 43 | 4f 4d 3e 0a 44 61 74 65 |ed.TEK.C|OM>.Date|
|000000d0| 3a 20 37 20 4a 75 6e 20 | 38 38 20 32 33 3a 30 37 |: 7 Jun |88 23:07|
|000000e0| 3a 32 39 20 47 4d 54 0a | 53 65 6e 64 65 72 3a 20 |:29 GMT.|Sender: |
|000000f0| 62 69 6c 6c 72 40 74 65 | 6b 72 65 64 2e 54 45 4b |billr@te|kred.TEK|
|00000100| 2e 43 4f 4d 0a 4c 69 6e | 65 73 3a 20 36 39 36 0a |.COM.Lin|es: 696.|
|00000110| 41 70 70 72 6f 76 65 64 | 3a 20 62 69 6c 6c 72 40 |Approved|: billr@|
|00000120| 73 61 61 62 2e 43 4e 41 | 2e 54 45 4b 2e 43 4f 4d |saab.CNA|.TEK.COM|
|00000130| 0a 0a 53 75 62 6d 69 74 | 74 65 64 20 62 79 3a 20 |..Submit|ted by: |
|00000140| 52 61 79 20 42 61 6c 6f | 67 68 20 3c 72 61 62 61 |Ray Balo|gh <raba|
|00000150| 6c 6f 67 68 40 63 63 6e | 67 2e 77 61 74 65 72 6c |logh@ccn|g.waterl|
|00000160| 6f 6f 2e 65 64 75 3e 0a | 43 6f 6d 70 2e 73 6f 75 |oo.edu>.|Comp.sou|
|00000170| 72 63 65 73 2e 67 61 6d | 65 73 3a 20 56 6f 6c 75 |rces.gam|es: Volu|
|00000180| 6d 65 20 34 2c 20 49 73 | 73 75 65 20 33 30 0a 41 |me 4, Is|sue 30.A|
|00000190| 72 63 68 69 76 65 2d 6e | 61 6d 65 3a 20 63 68 65 |rchive-n|ame: che|
|000001a0| 73 73 62 64 0a 0a 09 5b | 49 20 68 61 76 65 20 6e |ssbd...[|I have n|
|000001b0| 6f 20 52 65 47 49 53 20 | 63 61 70 61 62 69 6c 69 |o ReGIS |capabili|
|000001c0| 74 79 2c 20 73 6f 20 79 | 6f 75 27 72 65 20 6f 6e |ty, so y|ou're on|
|000001d0| 20 79 6f 75 72 20 6f 77 | 6e 2e 20 53 65 65 20 61 | your ow|n. See a|
|000001e0| 6c 73 6f 0a 09 20 74 68 | 65 20 66 6f 6c 6c 6f 77 |lso.. th|e follow|
|000001f0| 69 6e 67 20 70 6f 73 74 | 69 6e 67 20 63 6f 6e 76 |ing post|ing conv|
|00000200| 65 72 74 69 6e 67 20 73 | 74 64 20 63 68 65 73 73 |erting s|td chess|
|00000210| 20 6e 6f 6d 65 6e 63 6c | 61 74 75 72 65 20 69 6e | nomencl|ature in|
|00000220| 74 6f 0a 09 20 61 20 66 | 6f 72 6d 61 74 20 73 75 |to.. a f|ormat su|
|00000230| 69 74 61 62 6c 65 20 66 | 6f 72 20 74 68 69 73 20 |itable f|or this |
|00000240| 70 72 6f 67 72 61 6d 2e | 20 20 2d 62 72 5d 0a 0a |program.| -br]..|
|00000250| 23 21 20 2f 62 69 6e 2f | 73 68 0a 23 20 54 68 69 |#! /bin/|sh.# Thi|
|00000260| 73 20 69 73 20 61 20 73 | 68 65 6c 6c 20 61 72 63 |s is a s|hell arc|
|00000270| 68 69 76 65 2e 20 20 52 | 65 6d 6f 76 65 20 61 6e |hive. R|emove an|
|00000280| 79 74 68 69 6e 67 20 62 | 65 66 6f 72 65 20 74 68 |ything b|efore th|
|00000290| 69 73 20 6c 69 6e 65 2c | 20 74 68 65 6e 20 75 6e |is line,| then un|
|000002a0| 70 61 63 6b 0a 23 20 69 | 74 20 62 79 20 73 61 76 |pack.# i|t by sav|
|000002b0| 69 6e 67 20 69 74 20 69 | 6e 74 6f 20 61 20 66 69 |ing it i|nto a fi|
|000002c0| 6c 65 20 61 6e 64 20 74 | 79 70 69 6e 67 20 22 73 |le and t|yping "s|
|000002d0| 68 20 66 69 6c 65 22 2e | 20 20 54 6f 20 6f 76 65 |h file".| To ove|
|000002e0| 72 77 72 69 74 65 20 65 | 78 69 73 74 69 6e 67 0a |rwrite e|xisting.|
|000002f0| 23 20 66 69 6c 65 73 2c | 20 74 79 70 65 20 22 73 |# files,| type "s|
|00000300| 68 20 66 69 6c 65 20 2d | 63 22 2e 20 20 59 6f 75 |h file -|c". You|
|00000310| 20 63 61 6e 20 61 6c 73 | 6f 20 66 65 65 64 20 74 | can als|o feed t|
|00000320| 68 69 73 20 61 73 20 73 | 74 61 6e 64 61 72 64 20 |his as s|tandard |
|00000330| 69 6e 70 75 74 20 76 69 | 61 0a 23 20 75 6e 73 68 |input vi|a.# unsh|
|00000340| 61 72 2c 20 6f 72 20 62 | 79 20 74 79 70 69 6e 67 |ar, or b|y typing|
|00000350| 20 22 73 68 20 3c 66 69 | 6c 65 22 2c 20 65 2e 67 | "sh <fi|le", e.g|
|00000360| 2e 2e 20 20 49 66 20 74 | 68 69 73 20 61 72 63 68 |.. If t|his arch|
|00000370| 69 76 65 20 69 73 20 63 | 6f 6d 70 6c 65 74 65 2c |ive is c|omplete,|
|00000380| 20 79 6f 75 0a 23 20 77 | 69 6c 6c 20 73 65 65 20 | you.# w|ill see |
|00000390| 74 68 65 20 66 6f 6c 6c | 6f 77 69 6e 67 20 6d 65 |the foll|owing me|
|000003a0| 73 73 61 67 65 20 61 74 | 20 74 68 65 20 65 6e 64 |ssage at| the end|
|000003b0| 3a 0a 23 09 09 22 45 6e | 64 20 6f 66 20 73 68 65 |:.#.."En|d of she|
|000003c0| 6c 6c 20 61 72 63 68 69 | 76 65 2e 22 0a 23 20 43 |ll archi|ve.".# C|
|000003d0| 6f 6e 74 65 6e 74 73 3a | 20 20 52 45 41 44 4d 45 |ontents:| README|
|000003e0| 20 4d 61 6b 65 66 69 6c | 65 20 63 68 65 73 73 62 | Makefil|e chessb|
|000003f0| 6f 61 72 64 2e 63 20 62 | 6f 61 72 64 69 6e 69 74 |oard.c b|oardinit|
|00000400| 0a 23 20 57 72 61 70 70 | 65 64 20 62 79 20 62 69 |.# Wrapp|ed by bi|
|00000410| 6c 6c 72 40 73 61 61 62 | 20 6f 6e 20 54 75 65 20 |llr@saab| on Tue |
|00000420| 4a 75 6e 20 20 37 20 31 | 36 3a 30 34 3a 31 34 20 |Jun 7 1|6:04:14 |
|00000430| 31 39 38 38 0a 50 41 54 | 48 3d 2f 62 69 6e 3a 2f |1988.PAT|H=/bin:/|
|00000440| 75 73 72 2f 62 69 6e 3a | 2f 75 73 72 2f 75 63 62 |usr/bin:|/usr/ucb|
|00000450| 20 3b 20 65 78 70 6f 72 | 74 20 50 41 54 48 0a 69 | ; expor|t PATH.i|
|00000460| 66 20 74 65 73 74 20 2d | 66 20 52 45 41 44 4d 45 |f test -|f README|
|00000470| 20 2d 61 20 22 24 7b 31 | 7d 22 20 21 3d 20 22 2d | -a "${1|}" != "-|
|00000480| 63 22 20 3b 20 74 68 65 | 6e 20 0a 20 20 65 63 68 |c" ; the|n . ech|
|00000490| 6f 20 73 68 61 72 3a 20 | 57 69 6c 6c 20 6e 6f 74 |o shar: |Will not|
|000004a0| 20 6f 76 65 72 2d 77 72 | 69 74 65 20 65 78 69 73 | over-wr|ite exis|
|000004b0| 74 69 6e 67 20 66 69 6c | 65 20 5c 22 52 45 41 44 |ting fil|e \"READ|
|000004c0| 4d 45 5c 22 0a 65 6c 73 | 65 0a 65 63 68 6f 20 73 |ME\".els|e.echo s|
|000004d0| 68 61 72 3a 20 45 78 74 | 72 61 63 74 69 6e 67 20 |har: Ext|racting |
|000004e0| 5c 22 52 45 41 44 4d 45 | 5c 22 20 5c 28 31 35 39 |\"README|\" \(159|
|000004f0| 38 20 63 68 61 72 61 63 | 74 65 72 73 5c 29 0a 73 |8 charac|ters\).s|
|00000500| 65 64 20 22 73 2f 5e 58 | 2f 2f 22 20 3e 52 45 41 |ed "s/^X|//" >REA|
|00000510| 44 4d 45 20 3c 3c 27 45 | 4e 44 5f 4f 46 5f 52 45 |DME <<'E|ND_OF_RE|
|00000520| 41 44 4d 45 27 0a 58 0a | 58 43 68 65 73 73 62 6f |ADME'.X.|XChessbo|
|00000530| 61 72 64 0a 58 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0a |ard.X---|-------.|
|00000540| 58 0a 58 20 20 53 59 4e | 4f 50 53 49 53 3a 20 20 |X.X SYN|OPSIS: |
|00000550| 63 68 65 73 73 62 6f 61 | 72 64 20 5b 2d 68 5d 0a |chessboa|rd [-h].|
|00000560| 58 0a 58 20 20 44 45 53 | 43 52 49 50 54 49 4f 4e |X.X DES|CRIPTION|
|00000570| 3a 0a 58 0a 58 20 20 20 | 20 20 54 68 69 73 20 69 |:.X.X | This i|
|00000580| 73 20 61 20 67 72 61 70 | 68 69 63 20 63 68 65 73 |s a grap|hic ches|
|00000590| 73 20 62 6f 61 72 64 2c | 20 75 73 69 6e 67 20 52 |s board,| using R|
|000005a0| 65 47 49 53 20 67 72 61 | 70 68 69 63 73 20 66 6f |eGIS gra|phics fo|
|000005b0| 72 20 74 68 65 20 56 54 | 32 34 30 2e 0a 58 20 20 |r the VT|240..X |
|000005c0| 20 20 20 49 74 20 74 61 | 6b 65 73 20 43 61 72 74 | It ta|kes Cart|
|000005d0| 65 73 69 61 6e 20 61 6c | 67 65 62 72 61 69 63 20 |esian al|gebraic |
|000005e0| 6d 6f 76 65 73 20 28 65 | 2e 67 2e 2c 20 65 32 65 |moves (e|.g., e2e|
|000005f0| 34 29 20 66 72 6f 6d 20 | 74 68 65 20 73 74 61 6e |4) from |the stan|
|00000600| 64 61 72 64 0a 58 20 20 | 20 20 20 69 6e 70 75 74 |dard.X | input|
|00000610| 20 61 6e 64 20 73 65 6e | 64 73 20 74 68 65 20 52 | and sen|ds the R|
|00000620| 65 47 49 53 20 63 6f 6d | 6d 61 6e 64 73 20 74 6f |eGIS com|mands to|
|00000630| 20 74 68 65 20 73 74 61 | 6e 64 61 72 64 20 6f 75 | the sta|ndard ou|
|00000640| 74 70 75 74 2e 0a 58 0a | 58 20 20 20 20 20 4e 6f |tput..X.|X No|
|00000650| 20 6c 65 67 61 6c 20 6d | 6f 76 65 20 63 68 65 63 | legal m|ove chec|
|00000660| 6b 69 6e 67 20 69 73 20 | 64 6f 6e 65 2c 20 6f 74 |king is |done, ot|
|00000670| 68 65 72 20 74 68 61 6e | 20 6d 61 6b 69 6e 67 20 |her than| making |
|00000680| 73 75 72 65 20 74 68 61 | 74 20 61 20 70 69 65 63 |sure tha|t a piec|
|00000690| 65 0a 58 20 20 20 20 20 | 65 78 69 73 74 73 20 62 |e.X |exists b|
|000006a0| 65 66 6f 72 65 20 69 74 | 20 69 73 20 6d 6f 76 65 |efore it| is move|
|000006b0| 64 2e 20 20 43 61 73 74 | 6c 69 6e 67 20 69 73 20 |d. Cast|ling is |
|000006c0| 73 70 65 63 69 66 69 65 | 64 20 62 79 20 6d 6f 76 |specifie|d by mov|
|000006d0| 69 6e 67 20 74 68 65 20 | 6b 69 6e 67 0a 58 20 20 |ing the |king.X |
|000006e0| 20 20 20 74 77 6f 20 73 | 71 75 61 72 65 73 2c 20 | two s|quares, |
|000006f0| 61 6e 64 20 65 6e 2d 70 | 61 73 73 61 6e 74 20 69 |and en-p|assant i|
|00000700| 73 20 61 6c 73 6f 20 73 | 75 70 70 6f 72 74 65 64 |s also s|upported|
|00000710| 2e 0a 58 0a 58 20 20 20 | 20 20 54 68 65 20 70 72 |..X.X | The pr|
|00000720| 6f 67 72 61 6d 20 77 69 | 6c 6c 20 73 65 74 20 75 |ogram wi|ll set u|
|00000730| 70 20 74 68 65 20 56 54 | 32 34 30 20 69 6e 20 52 |p the VT|240 in R|
|00000740| 65 47 49 53 20 6d 6f 64 | 65 2c 20 61 6e 64 20 69 |eGIS mod|e, and i|
|00000750| 66 20 74 68 65 20 2d 68 | 20 6f 70 74 69 6f 6e 0a |f the -h| option.|
|00000760| 58 20 20 20 20 20 69 73 | 20 73 70 65 63 69 66 69 |X is| specifi|
|00000770| 65 64 2c 20 69 74 20 77 | 69 6c 6c 20 61 6c 73 6f |ed, it w|ill also|
|00000780| 20 73 65 74 20 75 70 20 | 74 68 65 20 74 74 79 20 | set up |the tty |
|00000790| 66 6f 72 20 63 62 72 65 | 61 6b 20 6d 6f 64 65 20 |for cbre|ak mode |
|000007a0| 61 6e 64 20 6e 6f 0a 58 | 20 20 20 20 20 65 63 68 |and no.X| ech|
|000007b0| 6f 2e 0a 58 0a 58 20 20 | 43 41 56 45 41 54 3a 0a |o..X.X |CAVEAT:.|
|000007c0| 58 0a 58 20 20 20 20 20 | 54 68 69 73 20 70 72 6f |X.X |This pro|
|000007d0| 67 72 61 6d 20 77 61 73 | 20 77 72 69 74 74 65 6e |gram was| written|
|000007e0| 20 77 69 74 68 6f 75 74 | 20 61 20 70 72 6f 70 65 | without| a prope|
|000007f0| 72 20 52 65 47 49 53 20 | 6d 61 6e 75 61 6c 2c 20 |r ReGIS |manual, |
|00000800| 70 61 72 74 69 61 6c 6c | 79 20 62 79 0a 58 20 20 |partiall|y by.X |
|00000810| 20 20 20 74 72 69 61 6c | 20 61 6e 64 20 65 72 72 | trial| and err|
|00000820| 6f 72 20 28 65 73 70 65 | 63 69 61 6c 6c 79 20 74 |or (espe|cially t|
|00000830| 68 65 20 75 73 61 67 65 | 20 6f 66 20 74 68 65 20 |he usage| of the |
|00000840| 66 69 6c 6c 20 66 75 6e | 63 74 69 6f 6e 29 2c 0a |fill fun|ction),.|
|00000850| 58 20 20 20 20 20 61 6e | 64 20 73 6f 20 74 68 65 |X an|d so the|
|00000860| 72 65 20 69 73 20 6e 6f | 20 67 75 61 72 61 6e 74 |re is no| guarant|
|00000870| 65 65 20 74 68 61 74 20 | 69 74 20 77 69 6c 6c 20 |ee that |it will |
|00000880| 77 6f 72 6b 20 66 6f 72 | 20 79 6f 75 20 6f 6e 20 |work for| you on |
|00000890| 79 6f 75 72 0a 58 20 20 | 20 20 20 74 65 72 6d 69 |your.X | termi|
|000008a0| 6e 61 6c 2e 20 20 48 6f | 77 65 76 65 72 2c 20 69 |nal. Ho|wever, i|
|000008b0| 74 20 68 61 73 20 77 6f | 72 6b 65 64 20 68 65 72 |t has wo|rked her|
|000008c0| 65 20 6f 6e 20 73 65 76 | 65 72 61 6c 20 56 54 32 |e on sev|eral VT2|
|000008d0| 34 30 27 73 2e 0a 58 0a | 58 20 20 4f 50 54 49 4f |40's..X.|X OPTIO|
|000008e0| 4e 53 3a 0a 58 0a 58 20 | 20 20 20 20 2d 68 09 09 |NS:.X.X | -h..|
|000008f0| 77 61 69 74 20 66 6f 72 | 20 73 70 61 63 65 20 66 |wait for| space f|
|00000900| 72 6f 6d 20 2f 64 65 76 | 2f 74 74 79 20 62 65 66 |rom /dev|/tty bef|
|00000910| 6f 72 65 20 64 69 73 70 | 6c 61 79 69 6e 67 0a 58 |ore disp|laying.X|
|00000920| 09 09 61 20 6d 6f 76 65 | 20 66 72 6f 6d 20 74 68 |..a move| from th|
|00000930| 65 20 73 74 61 6e 64 61 | 72 64 20 69 6e 70 75 74 |e standa|rd input|
|00000940| 2e 0a 58 0a 58 20 20 46 | 49 4c 45 53 3a 0a 58 0a |..X.X F|ILES:.X.|
|00000950| 58 20 20 20 20 20 62 6f | 61 72 64 69 6e 69 74 09 |X bo|ardinit.|
|00000960| 09 74 68 65 20 69 6e 69 | 74 69 61 6c 69 7a 61 74 |.the ini|tializat|
|00000970| 69 6f 6e 20 64 61 74 61 | 20 66 69 6c 65 2c 20 61 |ion data| file, a|
|00000980| 6e 64 20 73 65 61 72 63 | 68 20 70 61 74 68 0a 58 |nd searc|h path.X|
|00000990| 20 20 20 20 20 24 48 4f | 4d 45 2f 62 6f 61 72 64 | $HO|ME/board|
|000009a0| 69 6e 69 74 09 0a 58 20 | 20 20 20 20 61 62 73 70 |init..X | absp|
|000009b0| 61 74 68 5b 5d 2f 62 6f | 61 72 64 69 6e 69 74 0a |ath[]/bo|ardinit.|
|000009c0| 58 0a 58 20 20 20 20 20 | 2f 64 65 76 2f 74 74 79 |X.X |/dev/tty|
|000009d0| 09 09 77 69 74 68 20 2d | 68 2c 20 6f 70 65 6e 65 |..with -|h, opene|
|000009e0| 64 20 66 6f 72 20 22 68 | 69 74 2d 73 70 61 63 65 |d for "h|it-space|
|000009f0| 2d 74 6f 2d 63 6f 6e 74 | 69 6e 75 65 22 20 69 6e |-to-cont|inue" in|
|00000a00| 70 75 74 2e 0a 58 0a 58 | 20 20 53 55 47 47 45 53 |put..X.X| SUGGES|
|00000a10| 54 49 4f 4e 53 3a 0a 58 | 0a 58 20 20 20 20 20 54 |TIONS:.X|.X T|
|00000a20| 68 65 20 66 6f 6c 6c 6f | 77 69 6e 67 20 66 65 61 |he follo|wing fea|
|00000a30| 74 75 72 65 73 20 73 68 | 6f 75 6c 64 20 62 65 20 |tures sh|ould be |
|00000a40| 73 75 70 70 6f 72 74 65 | 64 3a 0a 58 09 20 2d 20 |supporte|d:.X. - |
|00000a50| 41 20 75 73 65 72 2d 64 | 65 66 69 6e 65 64 20 69 |A user-d|efined i|
|00000a60| 6e 69 74 69 61 6c 20 70 | 6f 73 69 74 69 6f 6e 0a |nitial p|osition.|
|00000a70| 58 09 20 2d 20 53 61 76 | 69 6e 67 20 6f 66 20 74 |X. - Sav|ing of t|
|00000a80| 68 65 20 63 75 72 72 65 | 6e 74 20 70 6f 73 69 74 |he curre|nt posit|
|00000a90| 69 6f 6e 0a 58 09 20 2d | 20 55 6e 64 6f 69 6e 67 |ion.X. -| Undoing|
|00000aa0| 20 6f 66 20 6d 6f 76 65 | 73 2c 20 61 6e 64 20 72 | of move|s, and r|
|00000ab0| 65 74 75 72 6e 69 6e 67 | 20 74 6f 20 61 20 70 72 |eturning| to a pr|
|00000ac0| 65 76 69 6f 75 73 20 70 | 6f 73 69 74 69 6f 6e 20 |evious p|osition |
|00000ad0| 64 69 72 65 63 74 6c 79 | 0a 58 09 20 2d 20 4c 65 |directly|.X. - Le|
|00000ae0| 67 61 6c 20 6d 6f 76 65 | 20 63 68 65 63 6b 69 6e |gal move| checkin|
|00000af0| 67 0a 58 0a 58 20 20 42 | 55 47 53 3a 0a 58 0a 58 |g.X.X B|UGS:.X.X|
|00000b00| 20 20 20 20 20 54 68 65 | 20 64 69 73 70 6c 61 79 | The| display|
|00000b10| 20 63 61 6e 6e 6f 74 20 | 62 65 20 72 65 64 72 61 | cannot |be redra|
|00000b20| 77 6e 2e 20 20 54 68 65 | 72 65 66 6f 72 65 2c 20 |wn. The|refore, |
|00000b30| 73 74 6f 70 70 69 6e 67 | 20 74 68 65 20 6a 6f 62 |stopping| the job|
|00000b40| 20 77 69 6c 6c 20 73 70 | 6f 69 6c 0a 58 20 20 20 | will sp|oil.X |
|00000b50| 20 20 74 68 65 20 64 69 | 73 70 6c 61 79 2c 20 61 | the di|splay, a|
|00000b60| 73 20 77 69 6c 6c 20 61 | 6e 79 20 67 61 72 62 61 |s will a|ny garba|
|00000b70| 67 65 20 73 65 6e 74 20 | 62 79 20 6f 74 68 65 72 |ge sent |by other|
|00000b80| 20 70 72 6f 67 72 61 6d | 73 20 74 6f 20 79 6f 75 | program|s to you|
|00000b90| 72 20 74 74 79 2e 0a 58 | 0a 45 4e 44 5f 4f 46 5f |r tty..X|.END_OF_|
|00000ba0| 52 45 41 44 4d 45 0a 69 | 66 20 74 65 73 74 20 31 |README.i|f test 1|
|00000bb0| 35 39 38 20 2d 6e 65 20 | 60 77 63 20 2d 63 20 3c |598 -ne |`wc -c <|
|00000bc0| 52 45 41 44 4d 45 60 3b | 20 74 68 65 6e 0a 20 20 |README`;| then. |
|00000bd0| 20 20 65 63 68 6f 20 73 | 68 61 72 3a 20 5c 22 52 | echo s|har: \"R|
|00000be0| 45 41 44 4d 45 5c 22 20 | 75 6e 70 61 63 6b 65 64 |EADME\" |unpacked|
|00000bf0| 20 77 69 74 68 20 77 72 | 6f 6e 67 20 73 69 7a 65 | with wr|ong size|
|00000c00| 21 0a 66 69 0a 23 20 65 | 6e 64 20 6f 66 20 6f 76 |!.fi.# e|nd of ov|
|00000c10| 65 72 77 72 69 74 69 6e | 67 20 63 68 65 63 6b 0a |erwritin|g check.|
|00000c20| 66 69 0a 69 66 20 74 65 | 73 74 20 2d 66 20 4d 61 |fi.if te|st -f Ma|
|00000c30| 6b 65 66 69 6c 65 20 2d | 61 20 22 24 7b 31 7d 22 |kefile -|a "${1}"|
|00000c40| 20 21 3d 20 22 2d 63 22 | 20 3b 20 74 68 65 6e 20 | != "-c"| ; then |
|00000c50| 0a 20 20 65 63 68 6f 20 | 73 68 61 72 3a 20 57 69 |. echo |shar: Wi|
|00000c60| 6c 6c 20 6e 6f 74 20 6f | 76 65 72 2d 77 72 69 74 |ll not o|ver-writ|
|00000c70| 65 20 65 78 69 73 74 69 | 6e 67 20 66 69 6c 65 20 |e existi|ng file |
|00000c80| 5c 22 4d 61 6b 65 66 69 | 6c 65 5c 22 0a 65 6c 73 |\"Makefi|le\".els|
|00000c90| 65 0a 65 63 68 6f 20 73 | 68 61 72 3a 20 45 78 74 |e.echo s|har: Ext|
|00000ca0| 72 61 63 74 69 6e 67 20 | 5c 22 4d 61 6b 65 66 69 |racting |\"Makefi|
|00000cb0| 6c 65 5c 22 20 5c 28 32 | 30 34 20 63 68 61 72 61 |le\" \(2|04 chara|
|00000cc0| 63 74 65 72 73 5c 29 0a | 73 65 64 20 22 73 2f 5e |cters\).|sed "s/^|
|00000cd0| 58 2f 2f 22 20 3e 4d 61 | 6b 65 66 69 6c 65 20 3c |X//" >Ma|kefile <|
|00000ce0| 3c 27 45 4e 44 5f 4f 46 | 5f 4d 61 6b 65 66 69 6c |<'END_OF|_Makefil|
|00000cf0| 65 27 0a 58 23 20 4d 61 | 6b 65 66 69 6c 65 20 66 |e'.X# Ma|kefile f|
|00000d00| 6f 72 20 63 68 65 73 73 | 62 6f 61 72 64 20 28 52 |or chess|board (R|
|00000d10| 65 47 49 53 20 62 6f 61 | 72 64 20 64 69 73 70 6c |eGIS boa|rd displ|
|00000d20| 61 79 29 0a 58 0a 58 42 | 5f 46 4c 41 47 53 20 3d |ay).X.XB|_FLAGS =|
|00000d30| 20 2d 44 42 53 44 20 2d | 44 56 45 52 42 4f 53 45 | -DBSD -|DVERBOSE|
|00000d40| 0a 58 42 5f 4f 42 4a 20 | 20 20 3d 20 63 68 65 73 |.XB_OBJ | = ches|
|00000d50| 73 62 6f 61 72 64 2e 63 | 0a 58 42 5f 49 4e 43 20 |sboard.c|.XB_INC |
|00000d60| 20 20 3d 20 0a 58 0a 58 | 23 23 23 23 0a 58 0a 58 | = .X.X|####.X.X|
|00000d70| 61 6c 6c 3a 20 63 68 65 | 73 73 62 6f 61 72 64 0a |all: che|ssboard.|
|00000d80| 58 0a 58 63 68 65 73 73 | 62 6f 61 72 64 3a 20 24 |X.Xchess|board: $|
|00000d90| 28 42 5f 4f 42 4a 29 0a | 58 09 63 63 20 2d 6f 20 |(B_OBJ).|X.cc -o |
|00000da0| 63 68 65 73 73 62 6f 61 | 72 64 20 24 28 42 5f 4f |chessboa|rd $(B_O|
|00000db0| 42 4a 29 0a 58 0a 58 24 | 28 42 5f 4f 42 4a 29 3a |BJ).X.X$|(B_OBJ):|
|00000dc0| 20 20 20 24 28 42 5f 49 | 4e 43 29 0a 58 0a 45 4e | $(B_I|NC).X.EN|
|00000dd0| 44 5f 4f 46 5f 4d 61 6b | 65 66 69 6c 65 0a 69 66 |D_OF_Mak|efile.if|
|00000de0| 20 74 65 73 74 20 32 30 | 34 20 2d 6e 65 20 60 77 | test 20|4 -ne `w|
|00000df0| 63 20 2d 63 20 3c 4d 61 | 6b 65 66 69 6c 65 60 3b |c -c <Ma|kefile`;|
|00000e00| 20 74 68 65 6e 0a 20 20 | 20 20 65 63 68 6f 20 73 | then. | echo s|
|00000e10| 68 61 72 3a 20 5c 22 4d | 61 6b 65 66 69 6c 65 5c |har: \"M|akefile\|
|00000e20| 22 20 75 6e 70 61 63 6b | 65 64 20 77 69 74 68 20 |" unpack|ed with |
|00000e30| 77 72 6f 6e 67 20 73 69 | 7a 65 21 0a 66 69 0a 23 |wrong si|ze!.fi.#|
|00000e40| 20 65 6e 64 20 6f 66 20 | 6f 76 65 72 77 72 69 74 | end of |overwrit|
|00000e50| 69 6e 67 20 63 68 65 63 | 6b 0a 66 69 0a 69 66 20 |ing chec|k.fi.if |
|00000e60| 74 65 73 74 20 2d 66 20 | 63 68 65 73 73 62 6f 61 |test -f |chessboa|
|00000e70| 72 64 2e 63 20 2d 61 20 | 22 24 7b 31 7d 22 20 21 |rd.c -a |"${1}" !|
|00000e80| 3d 20 22 2d 63 22 20 3b | 20 74 68 65 6e 20 0a 20 |= "-c" ;| then . |
|00000e90| 20 65 63 68 6f 20 73 68 | 61 72 3a 20 57 69 6c 6c | echo sh|ar: Will|
|00000ea0| 20 6e 6f 74 20 6f 76 65 | 72 2d 77 72 69 74 65 20 | not ove|r-write |
|00000eb0| 65 78 69 73 74 69 6e 67 | 20 66 69 6c 65 20 5c 22 |existing| file \"|
|00000ec0| 63 68 65 73 73 62 6f 61 | 72 64 2e 63 5c 22 0a 65 |chessboa|rd.c\".e|
|00000ed0| 6c 73 65 0a 65 63 68 6f | 20 73 68 61 72 3a 20 45 |lse.echo| shar: E|
|00000ee0| 78 74 72 61 63 74 69 6e | 67 20 5c 22 63 68 65 73 |xtractin|g \"ches|
|00000ef0| 73 62 6f 61 72 64 2e 63 | 5c 22 20 5c 28 39 36 36 |sboard.c|\" \(966|
|00000f00| 38 20 63 68 61 72 61 63 | 74 65 72 73 5c 29 0a 73 |8 charac|ters\).s|
|00000f10| 65 64 20 22 73 2f 5e 58 | 2f 2f 22 20 3e 63 68 65 |ed "s/^X|//" >che|
|00000f20| 73 73 62 6f 61 72 64 2e | 63 20 3c 3c 27 45 4e 44 |ssboard.|c <<'END|
|00000f30| 5f 4f 46 5f 63 68 65 73 | 73 62 6f 61 72 64 2e 63 |_OF_ches|sboard.c|
|00000f40| 27 0a 58 2f 2a 20 73 63 | 72 65 65 6e 20 69 73 20 |'.X/* sc|reen is |
|00000f50| 37 39 39 78 34 37 39 20 | 2a 2f 0a 58 0a 58 23 69 |799x479 |*/.X.X#i|
|00000f60| 6e 63 6c 75 64 65 20 3c | 73 74 64 69 6f 2e 68 3e |nclude <|stdio.h>|
|00000f70| 0a 58 23 69 6e 63 6c 75 | 64 65 20 3c 63 74 79 70 |.X#inclu|de <ctyp|
|00000f80| 65 2e 68 3e 0a 58 0a 58 | 23 64 65 66 69 6e 65 20 |e.h>.X.X|#define |
|00000f90| 57 48 49 54 45 09 30 0a | 58 23 64 65 66 69 6e 65 |WHITE.0.|X#define|
|00000fa0| 20 42 4c 41 43 4b 09 31 | 0a 58 23 64 65 66 69 6e | BLACK.1|.X#defin|
|00000fb0| 65 20 58 4f 52 47 09 31 | 36 30 0a 58 23 64 65 66 |e XORG.1|60.X#def|
|00000fc0| 69 6e 65 20 58 53 49 5a | 45 09 36 30 0a 58 23 64 |ine XSIZ|E.60.X#d|
|00000fd0| 65 66 69 6e 65 20 59 4f | 52 47 09 30 0a 58 23 64 |efine YO|RG.0.X#d|
|00000fe0| 65 66 69 6e 65 20 59 53 | 49 5a 45 09 36 30 0a 58 |efine YS|IZE.60.X|
|00000ff0| 23 64 65 66 69 6e 65 20 | 50 58 4f 46 46 53 20 20 |#define |PXOFFS |
|00001000| 31 30 0a 58 23 64 65 66 | 69 6e 65 20 50 59 4f 46 |10.X#def|ine PYOF|
|00001010| 46 53 20 20 35 36 0a 58 | 2f 2a 20 43 6f 6f 72 64 |FS 56.X|/* Coord|
|00001020| 69 6e 61 74 65 73 20 66 | 6f 72 20 77 61 72 6e 69 |inates f|or warni|
|00001030| 6e 67 20 73 79 6d 62 6f | 6c 20 2a 2f 0a 58 23 64 |ng symbo|l */.X#d|
|00001040| 65 66 69 6e 65 20 57 41 | 52 4e 50 4f 53 58 09 37 |efine WA|RNPOSX.7|
|00001050| 30 30 0a 58 23 64 65 66 | 69 6e 65 20 57 41 52 4e |00.X#def|ine WARN|
|00001060| 50 4f 53 59 09 35 30 0a | 58 2f 2a 20 54 65 73 74 |POSY.50.|X/* Test|
|00001070| 73 20 66 6f 72 20 77 68 | 69 74 65 2f 62 6c 61 63 |s for wh|ite/blac|
|00001080| 6b 20 70 69 65 63 65 20 | 2a 2f 0a 58 23 64 65 66 |k piece |*/.X#def|
|00001090| 69 6e 65 20 49 53 50 57 | 48 49 54 45 28 20 70 20 |ine ISPW|HITE( p |
|000010a0| 29 09 09 69 73 6c 6f 77 | 65 72 28 20 70 20 29 0a |)..islow|er( p ).|
|000010b0| 58 23 64 65 66 69 6e 65 | 20 49 53 50 42 4c 41 43 |X#define| ISPBLAC|
|000010c0| 4b 28 20 70 20 29 09 09 | 69 73 75 70 70 65 72 28 |K( p )..|isupper(|
|000010d0| 20 70 20 29 0a 58 2f 2a | 20 54 65 73 74 73 20 66 | p ).X/*| Tests f|
|000010e0| 6f 72 20 77 68 69 74 65 | 2f 62 6c 61 63 6b 20 73 |or white|/black s|
|000010f0| 71 75 61 72 65 20 2a 2f | 0a 58 23 64 65 66 69 6e |quare */|.X#defin|
|00001100| 65 20 49 53 53 57 48 49 | 54 45 28 20 66 2c 20 72 |e ISSWHI|TE( f, r|
|00001110| 20 29 09 28 28 66 20 2b | 20 72 29 20 25 20 32 29 | ).((f +| r) % 2)|
|00001120| 0a 58 23 64 65 66 69 6e | 65 20 49 53 53 42 4c 41 |.X#defin|e ISSBLA|
|00001130| 43 4b 28 20 66 2c 20 72 | 20 29 09 28 31 2d 28 66 |CK( f, r| ).(1-(f|
|00001140| 20 2b 20 72 29 20 25 20 | 32 29 0a 58 0a 58 63 68 | + r) % |2).X.Xch|
|00001150| 61 72 20 69 6e 69 74 66 | 69 6c 65 5b 5d 20 3d 20 |ar initf|ile[] = |
|00001160| 22 62 6f 61 72 64 69 6e | 69 74 22 3b 0a 58 63 68 |"boardin|it";.Xch|
|00001170| 61 72 20 61 62 73 70 61 | 74 68 5b 5d 20 20 20 3d |ar abspa|th[] =|
|00001180| 20 22 2f 75 2f 72 61 62 | 61 6c 6f 67 68 2f 62 69 | "/u/rab|alogh/bi|
|00001190| 6e 2f 67 61 6d 65 73 2f | 63 68 65 73 73 22 3b 0a |n/games/|chess";.|
|000011a0| 58 0a 58 2f 2a 20 67 6c | 6f 62 61 6c 20 76 61 72 |X.X/* gl|obal var|
|000011b0| 69 61 62 6c 65 73 20 2a | 2f 0a 58 46 49 4c 45 20 |iables *|/.XFILE |
|000011c0| 2a 74 74 79 3b 0a 58 69 | 6e 74 20 74 65 78 74 78 |*tty;.Xi|nt textx|
|000011d0| 2c 20 74 65 78 74 79 3b | 09 2f 2a 20 63 75 72 72 |, texty;|./* curr|
|000011e0| 65 6e 74 20 74 65 78 74 | 20 63 6f 6f 72 64 69 6e |ent text| coordin|
|000011f0| 61 74 65 73 20 2a 2f 0a | 58 0a 58 69 6e 74 0a 58 |ates */.|X.Xint.X|
|00001200| 6e 61 6d 65 74 6f 66 69 | 6c 65 28 20 66 6e 61 6d |nametofi|le( fnam|
|00001210| 65 20 29 0a 58 63 68 61 | 72 20 66 6e 61 6d 65 3b |e ).Xcha|r fname;|
|00001220| 0a 58 7b 0a 58 20 20 20 | 20 69 66 20 28 20 69 73 |.X{.X | if ( is|
|00001230| 6c 6f 77 65 72 28 20 66 | 6e 61 6d 65 20 29 20 29 |lower( f|name ) )|
|00001240| 0a 58 09 72 65 74 75 72 | 6e 28 20 66 6e 61 6d 65 |.X.retur|n( fname|
|00001250| 20 2d 20 27 61 27 20 29 | 3b 0a 58 20 20 20 20 65 | - 'a' )|;.X e|
|00001260| 6c 73 65 0a 58 09 72 65 | 74 75 72 6e 28 20 66 6e |lse.X.re|turn( fn|
|00001270| 61 6d 65 20 2d 20 27 41 | 27 20 29 3b 0a 58 7d 0a |ame - 'A|' );.X}.|
|00001280| 58 0a 58 70 6f 73 69 74 | 69 6f 6e 28 20 66 69 6c |X.Xposit|ion( fil|
|00001290| 65 2c 20 72 61 6e 6b 20 | 29 0a 58 69 6e 74 20 66 |e, rank |).Xint f|
|000012a0| 69 6c 65 2c 20 72 61 6e | 6b 3b 0a 58 7b 0a 58 20 |ile, ran|k;.X{.X |
|000012b0| 20 20 20 70 72 69 6e 74 | 66 28 20 22 50 5b 25 64 | print|f( "P[%d|
|000012c0| 2c 25 64 5d 22 2c 20 58 | 4f 52 47 20 2b 20 58 53 |,%d]", X|ORG + XS|
|000012d0| 49 5a 45 20 2a 20 66 69 | 6c 65 2c 20 59 4f 52 47 |IZE * fi|le, YORG|
|000012e0| 20 2b 20 59 53 49 5a 45 | 20 2a 20 28 37 2d 72 61 | + YSIZE| * (7-ra|
|000012f0| 6e 6b 29 20 29 3b 0a 58 | 7d 0a 58 0a 58 70 75 74 |nk) );.X|}.X.Xput|
|00001300| 74 65 78 74 28 20 78 2c | 20 79 2c 20 69 6e 74 65 |text( x,| y, inte|
|00001310| 6e 73 69 74 79 2c 20 74 | 65 78 74 20 29 0a 58 69 |nsity, t|ext ).Xi|
|00001320| 6e 74 20 78 2c 20 79 2c | 20 69 6e 74 65 6e 73 69 |nt x, y,| intensi|
|00001330| 74 79 3b 0a 58 63 68 61 | 72 20 74 65 78 74 5b 5d |ty;.Xcha|r text[]|
|00001340| 3b 0a 58 7b 0a 58 7d 0a | 58 0a 58 70 72 69 6e 74 |;.X{.X}.|X.Xprint|
|00001350| 6d 6f 76 65 28 20 6d 6f | 76 65 73 70 65 63 20 29 |move( mo|vespec )|
|00001360| 0a 58 63 68 61 72 20 6d | 6f 76 65 73 70 65 63 5b |.Xchar m|ovespec[|
|00001370| 5d 3b 0a 58 7b 0a 58 20 | 20 20 20 69 6e 74 20 69 |];.X{.X | int i|
|00001380| 3b 0a 58 20 20 20 20 63 | 68 61 72 20 73 5b 33 30 |;.X c|har s[30|
|00001390| 5d 3b 0a 58 20 20 20 20 | 73 74 61 74 69 63 20 63 |];.X |static c|
|000013a0| 6f 6c 6f 72 20 3d 20 57 | 48 49 54 45 3b 0a 58 20 |olor = W|HITE;.X |
|000013b0| 20 20 20 73 74 61 74 69 | 63 20 6d 6f 76 65 20 3d | stati|c move =|
|000013c0| 20 31 3b 0a 58 0a 58 20 | 20 20 20 6d 6f 76 65 73 | 1;.X.X | moves|
|000013d0| 70 65 63 5b 39 5d 20 3d | 20 27 5c 30 27 3b 0a 58 |pec[9] =| '\0';.X|
|000013e0| 20 20 20 20 70 72 69 6e | 74 66 28 20 22 57 28 52 | prin|tf( "W(R|
|000013f0| 29 22 20 29 3b 09 2f 2a | 20 73 65 74 20 72 65 70 |)" );./*| set rep|
|00001400| 6c 61 63 65 20 77 72 69 | 74 69 6e 67 20 6d 6f 64 |lace wri|ting mod|
|00001410| 65 20 2a 2f 0a 58 20 20 | 20 20 69 66 20 28 20 63 |e */.X | if ( c|
|00001420| 6f 6c 6f 72 20 3d 3d 20 | 57 48 49 54 45 20 29 20 |olor == |WHITE ) |
|00001430| 7b 0a 58 09 73 70 72 69 | 6e 74 66 28 20 73 2c 20 |{.X.spri|ntf( s, |
|00001440| 22 25 33 64 2e 20 25 73 | 22 2c 20 6d 6f 76 65 2c |"%3d. %s|", move,|
|00001450| 20 6d 6f 76 65 73 70 65 | 63 20 29 3b 0a 58 09 2f | movespe|c );.X./|
|00001460| 2a 20 62 6c 61 6e 6b 20 | 6f 75 74 20 66 69 65 6c |* blank |out fiel|
|00001470| 64 20 2a 2f 0a 58 09 70 | 72 69 6e 74 66 28 20 22 |d */.X.p|rintf( "|
|00001480| 50 5b 25 64 2c 25 64 5d | 20 57 28 49 30 29 20 54 |P[%d,%d]| W(I0) T|
|00001490| 27 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |' | |
|000014a0| 27 22 2c 20 74 65 78 74 | 78 2c 20 74 65 78 74 79 |'", text|x, texty|
|000014b0| 20 29 3b 0a 58 09 2f 2a | 20 70 72 69 6e 74 20 74 | );.X./*| print t|
|000014c0| 65 78 74 20 2a 2f 0a 58 | 09 70 72 69 6e 74 66 28 |ext */.X|.printf(|
|000014d0| 20 22 50 5b 25 64 2c 25 | 64 5d 20 57 28 49 25 64 | "P[%d,%|d] W(I%d|
|000014e0| 29 20 54 27 25 73 27 22 | 2c 20 74 65 78 74 78 2c |) T'%s'"|, textx,|
|000014f0| 20 74 65 78 74 79 2c 20 | 32 2c 20 73 20 29 3b 0a | texty, |2, s );.|
|00001500| 58 09 63 6f 6c 6f 72 20 | 3d 20 42 4c 41 43 4b 3b |X.color |= BLACK;|
|00001510| 0a 58 20 20 20 20 7d 20 | 65 6c 73 65 20 7b 0a 58 |.X } |else {.X|
|00001520| 09 73 70 72 69 6e 74 66 | 28 20 73 2c 20 22 20 20 |.sprintf|( s, " |
|00001530| 25 73 22 2c 20 6d 6f 76 | 65 73 70 65 63 20 29 3b |%s", mov|espec );|
|00001540| 0a 58 09 2f 2a 20 70 72 | 69 6e 74 20 74 65 78 74 |.X./* pr|int text|
|00001550| 20 2a 2f 0a 58 09 70 72 | 69 6e 74 66 28 20 22 50 | */.X.pr|intf( "P|
|00001560| 5b 25 64 2c 25 64 5d 20 | 57 28 49 25 64 29 20 54 |[%d,%d] |W(I%d) T|
|00001570| 27 25 73 27 22 2c 20 74 | 65 78 74 78 2b 38 30 2c |'%s'", t|extx+80,|
|00001580| 20 74 65 78 74 79 2c 20 | 32 2c 20 73 20 29 3b 0a | texty, |2, s );.|
|00001590| 58 09 69 66 20 28 20 28 | 74 65 78 74 79 20 2b 3d |X.if ( (|texty +=|
|000015a0| 20 32 30 29 20 3e 20 34 | 37 39 20 29 20 74 65 78 | 20) > 4|79 ) tex|
|000015b0| 74 79 20 3d 20 32 30 3b | 0a 58 09 6d 6f 76 65 2b |ty = 20;|.X.move+|
|000015c0| 2b 3b 0a 58 09 63 6f 6c | 6f 72 20 3d 20 57 48 49 |+;.X.col|or = WHI|
|000015d0| 54 45 3b 0a 58 20 20 20 | 20 7d 0a 58 20 20 20 20 |TE;.X | }.X |
|000015e0| 70 72 69 6e 74 66 28 20 | 22 57 28 56 29 22 20 29 |printf( |"W(V)" )|
|000015f0| 3b 09 2f 2a 20 72 65 73 | 65 74 20 77 72 69 74 69 |;./* res|et writi|
|00001600| 6e 67 20 6d 6f 64 65 20 | 74 6f 20 6f 76 65 72 6c |ng mode |to overl|
|00001610| 61 79 20 2a 2f 0a 58 7d | 0a 58 0a 58 66 6c 61 73 |ay */.X}|.X.Xflas|
|00001620| 68 77 61 72 6e 28 20 78 | 2c 20 79 2c 20 73 71 75 |hwarn( x|, y, squ|
|00001630| 61 72 65 63 6f 6c 6f 72 | 2c 20 66 6c 61 73 68 63 |arecolor|, flashc|
|00001640| 6f 6c 6f 72 20 29 0a 58 | 69 6e 74 20 78 2c 20 79 |olor ).X|int x, y|
|00001650| 2c 20 73 71 75 61 72 65 | 63 6f 6c 6f 72 2c 20 66 |, square|color, f|
|00001660| 6c 61 73 68 63 6f 6c 6f | 72 3b 0a 58 7b 0a 58 20 |lashcolo|r;.X{.X |
|00001670| 20 20 20 70 72 69 6e 74 | 66 28 20 22 50 5b 25 64 | print|f( "P[%d|
|00001680| 2c 25 64 5d 22 2c 20 78 | 2c 20 79 20 29 3b 0a 58 |,%d]", x|, y );.X|
|00001690| 20 20 20 20 70 72 69 6e | 74 66 28 20 22 57 28 49 | prin|tf( "W(I|
|000016a0| 25 64 29 20 56 5b 2b 35 | 39 2c 2b 30 5d 20 56 5b |%d) V[+5|9,+0] V[|
|000016b0| 2b 30 2c 2b 35 39 5d 20 | 56 5b 2d 35 39 2c 2b 30 |+0,+59] |V[-59,+0|
|000016c0| 5d 20 56 5b 2b 30 2c 2d | 35 39 5d 22 2c 20 66 6c |] V[+0,-|59]", fl|
|000016d0| 61 73 68 63 6f 6c 6f 72 | 20 29 3b 0a 58 20 20 20 |ashcolor| );.X |
|000016e0| 20 70 72 69 6e 74 66 28 | 20 22 56 5b 2b 35 39 2c | printf(| "V[+59,|
|000016f0| 2b 35 39 5d 20 50 5b 2b | 30 2c 2d 35 39 5d 20 56 |+59] P[+|0,-59] V|
|00001700| 5b 2d 35 39 2c 2b 35 39 | 5d 20 50 5b 2b 30 2c 2d |[-59,+59|] P[+0,-|
|00001710| 35 39 5d 22 20 29 3b 0a | 58 20 20 20 20 66 66 6c |59]" );.|X ffl|
|00001720| 75 73 68 28 20 73 74 64 | 6f 75 74 20 29 3b 0a 58 |ush( std|out );.X|
|00001730| 20 20 20 20 73 6c 65 65 | 70 28 20 31 20 29 3b 0a | slee|p( 1 );.|
|00001740| 58 20 20 20 20 70 72 69 | 6e 74 66 28 20 22 57 28 |X pri|ntf( "W(|
|00001750| 49 25 64 29 20 56 5b 2b | 35 39 2c 2b 30 5d 20 56 |I%d) V[+|59,+0] V|
|00001760| 5b 2b 30 2c 2b 35 39 5d | 20 56 5b 2d 35 39 2c 2b |[+0,+59]| V[-59,+|
|00001770| 30 5d 20 56 5b 2b 30 2c | 2d 35 39 5d 22 2c 20 73 |0] V[+0,|-59]", s|
|00001780| 71 75 61 72 65 63 6f 6c | 6f 72 20 29 3b 0a 58 20 |quarecol|or );.X |
|00001790| 20 20 20 70 72 69 6e 74 | 66 28 20 22 56 5b 2b 35 | print|f( "V[+5|
|000017a0| 39 2c 2b 35 39 5d 20 50 | 5b 2b 30 2c 2d 35 39 5d |9,+59] P|[+0,-59]|
|000017b0| 20 56 5b 2d 35 39 2c 2b | 35 39 5d 20 50 5b 2b 30 | V[-59,+|59] P[+0|
|000017c0| 2c 2d 35 39 5d 22 20 29 | 3b 0a 58 20 20 20 20 66 |,-59]" )|;.X f|
|000017d0| 66 6c 75 73 68 28 20 73 | 74 64 6f 75 74 20 29 3b |flush( s|tdout );|
|000017e0| 0a 58 7d 0a 58 0a 58 68 | 69 67 68 6c 69 67 68 74 |.X}.X.Xh|ighlight|
|000017f0| 28 20 66 69 6c 65 2c 20 | 72 61 6e 6b 2c 20 63 6f |( file, |rank, co|
|00001800| 6c 6f 72 20 29 0a 58 69 | 6e 74 20 66 69 6c 65 2c |lor ).Xi|nt file,|
|00001810| 20 72 61 6e 6b 2c 20 63 | 6f 6c 6f 72 3b 0a 58 7b | rank, c|olor;.X{|
|00001820| 0a 58 20 20 20 20 70 6f | 73 69 74 69 6f 6e 28 20 |.X po|sition( |
|00001830| 66 69 6c 65 2c 20 72 61 | 6e 6b 20 29 3b 0a 58 0a |file, ra|nk );.X.|
|00001840| 58 20 20 20 20 2f 2a 20 | 68 69 67 68 6c 69 67 68 |X /* |highligh|
|00001850| 74 20 74 68 65 20 73 71 | 75 61 72 65 20 2a 2f 0a |t the sq|uare */.|
|00001860| 58 20 20 20 20 70 72 69 | 6e 74 66 28 20 22 57 28 |X pri|ntf( "W(|
|00001870| 49 25 64 29 20 56 5b 2b | 35 39 2c 2b 30 5d 20 56 |I%d) V[+|59,+0] V|
|00001880| 5b 2b 30 2c 2b 35 39 5d | 20 56 5b 2d 35 39 2c 2b |[+0,+59]| V[-59,+|
|00001890| 30 5d 20 56 5b 2b 30 2c | 2d 35 39 5d 22 2c 20 63 |0] V[+0,|-59]", c|
|000018a0| 6f 6c 6f 72 20 29 3b 0a | 58 20 20 20 20 66 66 6c |olor );.|X ffl|
|000018b0| 75 73 68 28 20 73 74 64 | 6f 75 74 20 29 3b 0a 58 |ush( std|out );.X|
|000018c0| 7d 0a 58 0a 58 75 6e 68 | 69 67 68 6c 69 67 68 74 |}.X.Xunh|ighlight|
|000018d0| 28 20 66 69 6c 65 2c 20 | 72 61 6e 6b 20 29 0a 58 |( file, |rank ).X|
|000018e0| 69 6e 74 20 66 69 6c 65 | 2c 20 72 61 6e 6b 3b 0a |int file|, rank;.|
|000018f0| 58 7b 0a 58 20 20 20 20 | 70 6f 73 69 74 69 6f 6e |X{.X |position|
|00001900| 28 20 66 69 6c 65 2c 20 | 72 61 6e 6b 20 29 3b 0a |( file, |rank );.|
|00001910| 58 20 20 20 20 2f 2a 20 | 64 65 6c 65 74 65 20 68 |X /* |delete h|
|00001920| 69 67 68 6c 69 67 68 74 | 69 6e 67 20 28 62 6f 72 |ighlight|ing (bor|
|00001930| 64 65 72 29 20 2a 2f 0a | 58 20 20 20 20 69 66 20 |der) */.|X if |
|00001940| 28 20 49 53 53 57 48 49 | 54 45 28 20 66 69 6c 65 |( ISSWHI|TE( file|
|00001950| 2c 20 72 61 6e 6b 20 29 | 20 29 0a 58 09 70 72 69 |, rank )| ).X.pri|
|00001960| 6e 74 66 28 20 22 57 28 | 49 32 29 22 20 29 3b 0a |ntf( "W(|I2)" );.|
|00001970| 58 20 20 20 20 65 6c 73 | 65 0a 58 09 70 72 69 6e |X els|e.X.prin|
|00001980| 74 66 28 20 22 57 28 49 | 31 29 22 20 29 3b 0a 58 |tf( "W(I|1)" );.X|
|00001990| 20 20 20 20 70 72 69 6e | 74 66 28 20 22 56 5b 2b | prin|tf( "V[+|
|000019a0| 35 39 2c 2b 30 5d 20 56 | 5b 2b 30 2c 2b 35 39 5d |59,+0] V|[+0,+59]|
|000019b0| 20 56 5b 2d 35 39 2c 2b | 30 5d 20 56 5b 2b 30 2c | V[-59,+|0] V[+0,|
|000019c0| 2d 35 39 5d 22 20 29 3b | 0a 58 20 20 20 20 66 66 |-59]" );|.X ff|
|000019d0| 6c 75 73 68 28 20 73 74 | 64 6f 75 74 20 29 3b 0a |lush( st|dout );.|
|000019e0| 58 7d 0a 58 0a 58 65 72 | 61 73 65 28 20 66 69 6c |X}.X.Xer|ase( fil|
|000019f0| 65 2c 20 72 61 6e 6b 20 | 29 0a 58 69 6e 74 20 66 |e, rank |).Xint f|
|00001a00| 69 6c 65 2c 20 72 61 6e | 6b 3b 0a 58 7b 0a 58 20 |ile, ran|k;.X{.X |
|00001a10| 20 20 20 70 6f 73 69 74 | 69 6f 6e 28 20 66 69 6c | posit|ion( fil|
|00001a20| 65 2c 20 72 61 6e 6b 20 | 29 3b 0a 58 0a 58 20 20 |e, rank |);.X.X |
|00001a30| 20 20 2f 2a 20 63 6c 65 | 61 72 20 74 68 65 20 73 | /* cle|ar the s|
|00001a40| 71 75 61 72 65 20 2a 2f | 0a 58 20 20 20 20 70 72 |quare */|.X pr|
|00001a50| 69 6e 74 66 28 20 22 57 | 28 49 33 29 20 56 5b 2b |intf( "W|(I3) V[+|
|00001a60| 35 39 2c 2b 30 5d 20 50 | 5b 2d 35 39 2c 2b 35 39 |59,+0] P|[-59,+59|
|00001a70| 5d 20 56 5b 2b 35 39 2c | 2b 30 5d 20 50 5b 2d 35 |] V[+59,|+0] P[-5|
|00001a80| 39 2c 2d 35 39 5d 22 20 | 29 3b 0a 58 20 20 20 20 |9,-59]" |);.X |
|00001a90| 69 66 20 28 20 49 53 53 | 57 48 49 54 45 28 20 66 |if ( ISS|WHITE( f|
|00001aa0| 69 6c 65 2c 20 72 61 6e | 6b 20 29 20 29 0a 58 09 |ile, ran|k ) ).X.|
|00001ab0| 70 72 69 6e 74 66 28 20 | 22 57 28 49 32 29 22 20 |printf( |"W(I2)" |
|00001ac0| 29 3b 0a 58 20 20 20 20 | 65 6c 73 65 0a 58 09 70 |);.X |else.X.p|
|00001ad0| 72 69 6e 74 66 28 20 22 | 57 28 49 31 29 22 20 29 |rintf( "|W(I1)" )|
|00001ae0| 3b 0a 58 20 20 20 20 70 | 72 69 6e 74 66 28 20 22 |;.X p|rintf( "|
|00001af0| 56 5b 2b 30 2c 2b 35 39 | 5d 20 57 28 53 31 29 20 |V[+0,+59|] W(S1) |
|00001b00| 50 5b 2b 30 2c 2d 35 39 | 5d 20 56 5b 2b 35 39 2c |P[+0,-59|] V[+59,|
|00001b10| 2b 30 5d 20 57 28 53 30 | 29 22 20 29 3b 0a 58 7d |+0] W(S0|)" );.X}|
|00001b20| 0a 58 0a 58 70 75 74 70 | 69 65 63 65 28 20 66 69 |.X.Xputp|iece( fi|
|00001b30| 6c 65 2c 20 72 61 6e 6b | 2c 20 70 69 65 63 65 20 |le, rank|, piece |
|00001b40| 29 0a 58 69 6e 74 20 66 | 69 6c 65 2c 20 72 61 6e |).Xint f|ile, ran|
|00001b50| 6b 3b 0a 58 7b 0a 58 20 | 20 20 20 70 6f 73 69 74 |k;.X{.X | posit|
|00001b60| 69 6f 6e 28 20 66 69 6c | 65 2c 20 72 61 6e 6b 20 |ion( fil|e, rank |
|00001b70| 29 3b 0a 58 20 20 20 20 | 2f 2a 20 64 72 61 77 20 |);.X |/* draw |
|00001b80| 74 68 65 20 70 69 65 63 | 65 20 2a 2f 0a 58 20 20 |the piec|e */.X |
|00001b90| 20 20 70 72 69 6e 74 66 | 28 20 22 50 5b 2b 31 30 | printf|( "P[+10|
|00001ba0| 2c 2b 35 36 5d 20 57 28 | 49 25 64 29 40 25 63 20 |,+56] W(|I%d)@%c |
|00001bb0| 50 5b 2d 31 30 2c 2d 35 | 36 5d 22 2c 20 49 53 50 |P[-10,-5|6]", ISP|
|00001bc0| 57 48 49 54 45 28 70 69 | 65 63 65 29 3f 33 3a 30 |WHITE(pi|ece)?3:0|
|00001bd0| 2c 20 70 69 65 63 65 20 | 29 3b 0a 58 20 20 20 20 |, piece |);.X |
|00001be0| 66 66 6c 75 73 68 28 20 | 73 74 64 6f 75 74 20 29 |fflush( |stdout )|
|00001bf0| 3b 0a 58 7d 0a 58 0a 58 | 72 65 6d 6f 76 65 28 20 |;.X}.X.X|remove( |
|00001c00| 66 69 6c 65 2c 20 72 61 | 6e 6b 20 29 0a 58 69 6e |file, ra|nk ).Xin|
|00001c10| 74 20 66 69 6c 65 2c 20 | 72 61 6e 6b 3b 0a 58 7b |t file, |rank;.X{|
|00001c20| 0a 58 20 20 20 20 68 69 | 67 68 6c 69 67 68 74 28 |.X hi|ghlight(|
|00001c30| 20 66 69 6c 65 2c 20 72 | 61 6e 6b 2c 20 33 20 29 | file, r|ank, 3 )|
|00001c40| 3b 0a 58 20 20 20 20 73 | 6c 65 65 70 28 20 32 20 |;.X s|leep( 2 |
|00001c50| 29 3b 0a 58 20 20 20 20 | 65 72 61 73 65 28 20 66 |);.X |erase( f|
|00001c60| 69 6c 65 2c 20 72 61 6e | 6b 20 29 3b 0a 58 7d 0a |ile, ran|k );.X}.|
|00001c70| 58 0a 58 72 65 64 72 61 | 77 28 20 66 69 6c 65 2c |X.Xredra|w( file,|
|00001c80| 20 72 61 6e 6b 2c 20 70 | 69 65 63 65 20 29 0a 58 | rank, p|iece ).X|
|00001c90| 69 6e 74 20 66 69 6c 65 | 2c 20 72 61 6e 6b 3b 0a |int file|, rank;.|
|00001ca0| 58 63 68 61 72 20 70 69 | 65 63 65 3b 0a 58 7b 0a |Xchar pi|ece;.X{.|
|00001cb0| 58 20 20 20 20 65 72 61 | 73 65 28 20 66 69 6c 65 |X era|se( file|
|00001cc0| 2c 20 72 61 6e 6b 20 29 | 3b 0a 58 20 20 20 20 68 |, rank )|;.X h|
|00001cd0| 69 67 68 6c 69 67 68 74 | 28 20 66 69 6c 65 2c 20 |ighlight|( file, |
|00001ce0| 72 61 6e 6b 2c 20 33 20 | 29 3b 0a 58 20 20 20 20 |rank, 3 |);.X |
|00001cf0| 70 75 74 70 69 65 63 65 | 28 20 66 69 6c 65 2c 20 |putpiece|( file, |
|00001d00| 72 61 6e 6b 2c 20 70 69 | 65 63 65 20 29 3b 0a 58 |rank, pi|ece );.X|
|00001d10| 20 20 20 20 73 6c 65 65 | 70 28 20 32 20 29 3b 0a | slee|p( 2 );.|
|00001d20| 58 20 20 20 20 75 6e 68 | 69 67 68 6c 69 67 68 74 |X unh|ighlight|
|00001d30| 28 20 66 69 6c 65 2c 20 | 72 61 6e 6b 20 29 3b 0a |( file, |rank );.|
|00001d40| 58 20 20 20 20 66 66 6c | 75 73 68 28 20 73 74 64 |X ffl|ush( std|
|00001d50| 6f 75 74 20 29 3b 0a 58 | 7d 0a 58 0a 58 63 61 73 |out );.X|}.X.Xcas|
|00001d60| 74 6c 65 28 20 6b 73 66 | 69 6c 65 2c 20 6b 65 66 |tle( ksf|ile, kef|
|00001d70| 69 6c 65 2c 20 72 73 66 | 69 6c 65 2c 20 72 65 66 |ile, rsf|ile, ref|
|00001d80| 69 6c 65 2c 20 72 61 6e | 6b 20 29 0a 58 69 6e 74 |ile, ran|k ).Xint|
|00001d90| 20 6b 73 66 69 6c 65 2c | 20 6b 65 66 69 6c 65 2c | ksfile,| kefile,|
|00001da0| 20 72 73 66 69 6c 65 2c | 20 72 65 66 69 6c 65 2c | rsfile,| refile,|
|00001db0| 20 72 61 6e 6b 3b 0a 58 | 7b 0a 58 20 20 20 20 2f | rank;.X|{.X /|
|00001dc0| 2a 20 63 6c 65 61 72 20 | 74 68 65 20 6f 72 69 67 |* clear |the orig|
|00001dd0| 69 6e 61 6c 20 73 71 75 | 61 72 65 73 20 2a 2f 0a |inal squ|ares */.|
|00001de0| 58 20 20 20 20 68 69 67 | 68 6c 69 67 68 74 28 20 |X hig|hlight( |
|00001df0| 6b 73 66 69 6c 65 2c 20 | 72 61 6e 6b 2c 20 33 20 |ksfile, |rank, 3 |
|00001e00| 29 3b 20 68 69 67 68 6c | 69 67 68 74 28 20 72 73 |); highl|ight( rs|
|00001e10| 66 69 6c 65 2c 20 72 61 | 6e 6b 2c 20 33 20 29 3b |file, ra|nk, 3 );|
|00001e20| 0a 58 20 20 20 20 73 6c | 65 65 70 28 20 31 20 29 |.X sl|eep( 1 )|
|00001e30| 3b 0a 58 20 20 20 20 65 | 72 61 73 65 28 20 6b 73 |;.X e|rase( ks|
|00001e40| 66 69 6c 65 2c 20 72 61 | 6e 6b 20 29 3b 20 65 72 |file, ra|nk ); er|
|00001e50| 61 73 65 28 20 72 73 66 | 69 6c 65 2c 20 72 61 6e |ase( rsf|ile, ran|
|00001e60| 6b 20 29 3b 0a 58 20 20 | 20 20 2f 2a 20 72 65 64 |k );.X | /* red|
|00001e70| 72 61 77 20 74 68 65 20 | 6b 69 6e 67 20 61 6e 64 |raw the |king and|
|00001e80| 20 72 6f 6f 6b 20 2a 2f | 0a 58 20 20 20 20 65 72 | rook */|.X er|
|00001e90| 61 73 65 28 20 6b 65 66 | 69 6c 65 2c 20 72 61 6e |ase( kef|ile, ran|
|00001ea0| 6b 20 29 3b 20 65 72 61 | 73 65 28 20 72 65 66 69 |k ); era|se( refi|
|00001eb0| 6c 65 2c 20 72 61 6e 6b | 20 29 3b 0a 58 20 20 20 |le, rank| );.X |
|00001ec0| 20 68 69 67 68 6c 69 67 | 68 74 28 20 6b 65 66 69 | highlig|ht( kefi|
|00001ed0| 6c 65 2c 20 72 61 6e 6b | 2c 20 33 20 29 3b 20 68 |le, rank|, 3 ); h|
|00001ee0| 69 67 68 6c 69 67 68 74 | 28 20 72 65 66 69 6c 65 |ighlight|( refile|
|00001ef0| 2c 20 72 61 6e 6b 2c 20 | 33 20 29 3b 0a 58 20 20 |, rank, |3 );.X |
|00001f00| 20 20 69 66 20 28 20 72 | 61 6e 6b 20 3d 3d 20 30 | if ( r|ank == 0|
|00001f10| 20 29 20 7b 0a 58 09 70 | 75 74 70 69 65 63 65 28 | ) {.X.p|utpiece(|
|00001f20| 20 6b 65 66 69 6c 65 2c | 20 30 2c 20 27 6b 27 20 | kefile,| 0, 'k' |
|00001f30| 29 3b 20 70 75 74 70 69 | 65 63 65 28 20 72 65 66 |); putpi|ece( ref|
|00001f40| 69 6c 65 2c 20 30 2c 20 | 27 72 27 20 29 3b 0a 58 |ile, 0, |'r' );.X|
|00001f50| 20 20 20 20 7d 20 65 6c | 73 65 20 7b 0a 58 09 70 | } el|se {.X.p|
|00001f60| 75 74 70 69 65 63 65 28 | 20 6b 65 66 69 6c 65 2c |utpiece(| kefile,|
|00001f70| 20 37 2c 20 27 4b 27 20 | 29 3b 20 70 75 74 70 69 | 7, 'K' |); putpi|
|00001f80| 65 63 65 28 20 72 65 66 | 69 6c 65 2c 20 37 2c 20 |ece( ref|ile, 7, |
|00001f90| 27 52 27 20 29 3b 0a 58 | 20 20 20 20 7d 0a 58 20 |'R' );.X| }.X |
|00001fa0| 20 20 20 73 6c 65 65 70 | 28 20 31 20 29 3b 0a 58 | sleep|( 1 );.X|
|00001fb0| 20 20 20 20 75 6e 68 69 | 67 68 6c 69 67 68 74 28 | unhi|ghlight(|
|00001fc0| 20 6b 65 66 69 6c 65 2c | 20 72 61 6e 6b 20 29 3b | kefile,| rank );|
|00001fd0| 20 75 6e 68 69 67 68 6c | 69 67 68 74 28 20 72 65 | unhighl|ight( re|
|00001fe0| 66 69 6c 65 2c 20 72 61 | 6e 6b 20 29 3b 0a 58 20 |file, ra|nk );.X |
|00001ff0| 20 20 20 66 66 6c 75 73 | 68 28 20 73 74 64 6f 75 | fflus|h( stdou|
|00002000| 74 20 29 3b 0a 58 7d 0a | 58 0a 58 65 6e 5f 70 61 |t );.X}.|X.Xen_pa|
|00002010| 73 73 61 6e 74 28 20 73 | 66 2c 20 73 72 2c 20 65 |ssant( s|f, sr, e|
|00002020| 66 2c 20 65 72 2c 20 70 | 69 65 63 65 20 29 0a 58 |f, er, p|iece ).X|
|00002030| 69 6e 74 20 73 66 2c 20 | 73 72 2c 20 65 66 2c 20 |int sf, |sr, ef, |
|00002040| 65 72 3b 0a 58 63 68 61 | 72 20 70 69 65 63 65 3b |er;.Xcha|r piece;|
|00002050| 0a 58 7b 0a 58 20 20 20 | 20 2f 2a 20 68 69 67 68 |.X{.X | /* high|
|00002060| 6c 69 67 68 74 20 74 68 | 65 20 74 77 6f 20 70 61 |light th|e two pa|
|00002070| 77 6e 73 20 2a 2f 0a 58 | 20 20 20 20 68 69 67 68 |wns */.X| high|
|00002080| 6c 69 67 68 74 28 20 73 | 66 2c 20 73 72 2c 20 33 |light( s|f, sr, 3|
|00002090| 20 29 3b 20 68 69 67 68 | 6c 69 67 68 74 28 20 65 | ); high|light( e|
|000020a0| 66 2c 20 73 72 2c 20 33 | 20 29 3b 0a 58 20 20 20 |f, sr, 3| );.X |
|000020b0| 20 73 6c 65 65 70 28 20 | 31 20 29 3b 0a 58 20 20 | sleep( |1 );.X |
|000020c0| 20 20 2f 2a 20 65 72 61 | 73 65 20 74 68 65 6d 20 | /* era|se them |
|000020d0| 2a 2f 0a 58 20 20 20 20 | 65 72 61 73 65 28 20 73 |*/.X |erase( s|
|000020e0| 66 2c 20 73 72 20 29 3b | 20 65 72 61 73 65 28 20 |f, sr );| erase( |
|000020f0| 65 66 2c 20 73 72 20 29 | 3b 0a 58 20 20 20 20 68 |ef, sr )|;.X h|
|00002100| 69 67 68 6c 69 67 68 74 | 28 20 65 66 2c 20 65 72 |ighlight|( ef, er|
|00002110| 2c 20 33 20 29 3b 0a 58 | 20 20 20 20 73 6c 65 65 |, 3 );.X| slee|
|00002120| 70 28 20 31 20 29 3b 0a | 58 20 20 20 20 70 75 74 |p( 1 );.|X put|
|00002130| 70 69 65 63 65 28 20 65 | 66 2c 20 65 72 2c 20 70 |piece( e|f, er, p|
|00002140| 69 65 63 65 20 29 3b 0a | 58 20 20 20 20 75 6e 68 |iece );.|X unh|
|00002150| 69 67 68 6c 69 67 68 74 | 28 20 65 66 2c 20 65 72 |ighlight|( ef, er|
|00002160| 20 29 3b 0a 58 20 20 20 | 20 66 66 6c 75 73 68 28 | );.X | fflush(|
|00002170| 20 73 74 64 6f 75 74 20 | 29 3b 0a 58 7d 0a 58 0a | stdout |);.X}.X.|
|00002180| 58 77 61 69 74 63 6d 64 | 28 29 0a 58 7b 0a 58 20 |Xwaitcmd|().X{.X |
|00002190| 20 20 20 66 66 6c 75 73 | 68 28 20 74 74 79 20 29 | fflus|h( tty )|
|000021a0| 3b 0a 58 20 20 20 20 72 | 65 77 69 6e 64 28 20 74 |;.X r|ewind( t|
|000021b0| 74 79 20 29 3b 0a 58 20 | 20 20 20 73 79 73 74 65 |ty );.X | syste|
|000021c0| 6d 28 20 22 73 74 74 79 | 20 63 62 72 65 61 6b 20 |m( "stty| cbreak |
|000021d0| 2d 65 63 68 6f 22 20 29 | 3b 0a 58 20 20 20 20 77 |-echo" )|;.X w|
|000021e0| 68 69 6c 65 20 28 20 66 | 67 65 74 63 28 74 74 79 |hile ( f|getc(tty|
|000021f0| 29 20 21 3d 20 27 20 27 | 20 29 20 3b 0a 58 20 20 |) != ' '| ) ;.X |
|00002200| 20 20 73 79 73 74 65 6d | 28 20 22 73 74 74 79 20 | system|( "stty |
|00002210| 2d 63 62 72 65 61 6b 20 | 2d 65 63 68 6f 22 20 29 |-cbreak |-echo" )|
|00002220| 3b 0a 58 20 20 20 20 72 | 65 77 69 6e 64 28 20 74 |;.X r|ewind( t|
|00002230| 74 79 20 29 3b 0a 58 7d | 0a 58 0a 58 6d 61 69 6e |ty );.X}|.X.Xmain|
|00002240| 28 20 61 72 67 63 2c 20 | 61 72 67 76 20 29 0a 58 |( argc, |argv ).X|
|00002250| 69 6e 74 20 61 72 67 63 | 3b 0a 58 63 68 61 72 20 |int argc|;.Xchar |
|00002260| 2a 61 72 67 76 5b 5d 3b | 0a 58 7b 0a 58 20 20 20 |*argv[];|.X{.X |
|00002270| 20 69 6e 74 20 68 6f 6c | 64 66 6c 61 67 3b 0a 58 | int hol|dflag;.X|
|00002280| 20 20 20 20 69 6e 74 20 | 6e 61 72 67 73 3b 0a 58 | int |nargs;.X|
|00002290| 20 20 20 20 63 68 61 72 | 20 70 69 65 63 65 3b 0a | char| piece;.|
|000022a0| 58 20 20 20 20 63 68 61 | 72 20 70 72 6f 6d 6f 74 |X cha|r promot|
|000022b0| 65 64 5f 76 61 6c 75 65 | 3b 0a 58 20 20 20 20 63 |ed_value|;.X c|
|000022c0| 68 61 72 20 73 66 6e 61 | 6d 65 2c 20 65 66 6e 61 |har sfna|me, efna|
|000022d0| 6d 65 3b 0a 58 20 20 20 | 20 69 6e 74 20 73 66 2c |me;.X | int sf,|
|000022e0| 20 73 72 2c 20 65 66 2c | 20 65 72 3b 0a 58 20 20 | sr, ef,| er;.X |
|000022f0| 20 20 63 68 61 72 20 70 | 72 6f 6d 76 61 6c 3b 0a | char p|romval;.|
|00002300| 58 20 20 20 20 69 6e 74 | 20 78 70 6f 73 2c 20 79 |X int| xpos, y|
|00002310| 70 6f 73 3b 0a 58 20 20 | 20 20 46 49 4c 45 20 2a |pos;.X | FILE *|
|00002320| 63 68 65 73 73 69 6e 69 | 74 3b 0a 58 20 20 20 20 |chessini|t;.X |
|00002330| 63 68 61 72 20 73 5b 31 | 30 32 34 5d 3b 0a 58 20 |char s[1|024];.X |
|00002340| 20 20 20 63 68 61 72 20 | 62 75 66 5b 31 30 32 34 | char |buf[1024|
|00002350| 5d 3b 0a 58 0a 58 20 20 | 20 20 2f 2a 20 62 6f 61 |];.X.X | /* boa|
|00002360| 72 64 20 61 70 70 65 61 | 72 73 20 75 70 73 69 64 |rd appea|rs upsid|
|00002370| 65 20 64 6f 77 6e 3b 20 | 6c 6f 77 65 72 20 63 61 |e down; |lower ca|
|00002380| 73 65 20 61 72 65 20 77 | 68 69 74 65 20 2a 2f 0a |se are w|hite */.|
|00002390| 58 20 20 20 20 73 74 61 | 74 69 63 0a 58 20 20 20 |X sta|tic.X |
|000023a0| 20 63 68 61 72 20 62 6f | 61 72 64 5b 38 5d 5b 38 | char bo|ard[8][8|
|000023b0| 5d 20 3d 20 7b 27 72 27 | 2c 20 27 6e 27 2c 20 27 |] = {'r'|, 'n', '|
|000023c0| 62 27 2c 20 27 71 27 2c | 20 27 6b 27 2c 20 27 62 |b', 'q',| 'k', 'b|
|000023d0| 27 2c 20 27 6e 27 2c 20 | 27 72 27 2c 0a 58 09 09 |', 'n', |'r',.X..|
|000023e0| 09 27 70 27 2c 20 27 70 | 27 2c 20 27 70 27 2c 20 |.'p', 'p|', 'p', |
|000023f0| 27 70 27 2c 20 27 70 27 | 2c 20 27 70 27 2c 20 27 |'p', 'p'|, 'p', '|
|00002400| 70 27 2c 20 27 70 27 2c | 0a 58 09 09 09 27 20 27 |p', 'p',|.X...' '|
|00002410| 2c 20 27 20 27 2c 20 27 | 20 27 2c 20 27 20 27 2c |, ' ', '| ', ' ',|
|00002420| 20 27 20 27 2c 20 27 20 | 27 2c 20 27 20 27 2c 20 | ' ', ' |', ' ', |
|00002430| 27 20 27 2c 0a 58 09 09 | 09 27 20 27 2c 20 27 20 |' ',.X..|.' ', ' |
|00002440| 27 2c 20 27 20 27 2c 20 | 27 20 27 2c 20 27 20 27 |', ' ', |' ', ' '|
|00002450| 2c 20 27 20 27 2c 20 27 | 20 27 2c 20 27 20 27 2c |, ' ', '| ', ' ',|
|00002460| 0a 58 09 09 09 27 20 27 | 2c 20 27 20 27 2c 20 27 |.X...' '|, ' ', '|
|00002470| 20 27 2c 20 27 20 27 2c | 20 27 20 27 2c 20 27 20 | ', ' ',| ' ', ' |
|00002480| 27 2c 20 27 20 27 2c 20 | 27 20 27 2c 0a 58 09 09 |', ' ', |' ',.X..|
|00002490| 09 27 20 27 2c 20 27 20 | 27 2c 20 27 20 27 2c 20 |.' ', ' |', ' ', |
|000024a0| 27 20 27 2c 20 27 20 27 | 2c 20 27 20 27 2c 20 27 |' ', ' '|, ' ', '|
|000024b0| 20 27 2c 20 27 20 27 2c | 0a 58 09 09 09 27 50 27 | ', ' ',|.X...'P'|
|000024c0| 2c 20 27 50 27 2c 20 27 | 50 27 2c 20 27 50 27 2c |, 'P', '|P', 'P',|
|000024d0| 20 27 50 27 2c 20 27 50 | 27 2c 20 27 50 27 2c 20 | 'P', 'P|', 'P', |
|000024e0| 27 50 27 2c 0a 58 20 20 | 20 20 09 09 09 27 52 27 |'P',.X | ...'R'|
|000024f0| 2c 20 27 4e 27 2c 20 27 | 42 27 2c 20 27 51 27 2c |, 'N', '|B', 'Q',|
|00002500| 20 27 4b 27 2c 20 27 42 | 27 2c 20 27 4e 27 2c 20 | 'K', 'B|', 'N', |
|00002510| 27 52 27 0a 58 20 20 20 | 20 7d 3b 0a 58 0a 58 20 |'R'.X | };.X.X |
|00002520| 20 20 20 2f 2a 20 73 65 | 61 72 63 68 20 63 75 72 | /* se|arch cur|
|00002530| 72 65 6e 74 20 64 69 72 | 65 63 74 6f 72 79 2c 20 |rent dir|ectory, |
|00002540| 48 4f 4d 45 20 64 69 72 | 65 63 74 6f 72 79 2c 20 |HOME dir|ectory, |
|00002550| 61 6e 64 20 61 6e 20 61 | 62 73 6f 6c 75 74 65 20 |and an a|bsolute |
|00002560| 64 69 72 65 63 74 6f 72 | 79 0a 58 20 20 20 20 20 |director|y.X |
|00002570| 2a 20 66 6f 72 20 69 6e | 69 74 69 61 6c 69 7a 61 |* for in|itializa|
|00002580| 74 69 6f 6e 20 66 69 6c | 65 20 2a 2f 0a 58 20 20 |tion fil|e */.X |
|00002590| 20 20 69 66 20 28 28 63 | 68 65 73 73 69 6e 69 74 | if ((c|hessinit|
|000025a0| 20 3d 20 66 6f 70 65 6e | 28 69 6e 69 74 66 69 6c | = fopen|(initfil|
|000025b0| 65 2c 20 22 72 22 29 29 | 20 3d 3d 20 4e 55 4c 4c |e, "r"))| == NULL|
|000025c0| 29 20 7b 0a 58 09 73 70 | 72 69 6e 74 66 28 62 75 |) {.X.sp|rintf(bu|
|000025d0| 66 2c 20 22 25 73 2f 25 | 73 22 2c 20 67 65 74 65 |f, "%s/%|s", gete|
|000025e0| 6e 76 28 22 48 4f 4d 45 | 22 29 2c 20 69 6e 69 74 |nv("HOME|"), init|
|000025f0| 66 69 6c 65 29 3b 0a 58 | 09 69 66 20 28 28 63 68 |file);.X|.if ((ch|
|00002600| 65 73 73 69 6e 69 74 20 | 3d 20 66 6f 70 65 6e 28 |essinit |= fopen(|
|00002610| 62 75 66 2c 20 22 72 22 | 29 29 20 3d 3d 20 4e 55 |buf, "r"|)) == NU|
|00002620| 4c 4c 29 20 7b 0a 58 09 | 20 20 20 20 73 70 72 69 |LL) {.X.| spri|
|00002630| 6e 74 66 28 62 75 66 2c | 20 22 25 73 2f 25 73 22 |ntf(buf,| "%s/%s"|
|00002640| 2c 20 61 62 73 70 61 74 | 68 2c 20 69 6e 69 74 66 |, abspat|h, initf|
|00002650| 69 6c 65 29 3b 0a 58 09 | 20 20 20 20 69 66 20 28 |ile);.X.| if (|
|00002660| 28 63 68 65 73 73 69 6e | 69 74 20 3d 20 66 6f 70 |(chessin|it = fop|
|00002670| 65 6e 28 62 75 66 2c 20 | 22 72 22 29 29 20 3d 3d |en(buf, |"r")) ==|
|00002680| 20 4e 55 4c 4c 29 20 7b | 0a 58 09 09 66 70 72 69 | NULL) {|.X..fpri|
|00002690| 6e 74 66 28 73 74 64 65 | 72 72 2c 20 22 63 61 6e |ntf(stde|rr, "can|
|000026a0| 27 74 20 6f 70 65 6e 20 | 62 6f 61 72 64 20 69 6e |'t open |board in|
|000026b0| 69 74 20 66 69 6c 65 20 | 27 25 73 27 5c 6e 22 2c |it file |'%s'\n",|
|000026c0| 20 69 6e 69 74 66 69 6c | 65 29 3b 0a 58 09 09 65 | initfil|e);.X..e|
|000026d0| 78 69 74 28 31 29 3b 0a | 58 09 20 20 20 20 7d 0a |xit(1);.|X. }.|
|000026e0| 58 09 7d 0a 58 20 20 20 | 20 7d 0a 58 0a 58 20 20 |X.}.X | }.X.X |
|000026f0| 20 20 69 66 20 28 20 61 | 72 67 63 20 3e 3d 20 31 | if ( a|rgc >= 1|
|00002700| 20 29 0a 58 09 68 6f 6c | 64 66 6c 61 67 20 3d 20 | ).X.hol|dflag = |
|00002710| 28 21 20 69 73 61 74 74 | 79 28 20 66 69 6c 65 6e |(! isatt|y( filen|
|00002720| 6f 28 73 74 64 69 6e 29 | 20 29 29 0a 58 09 09 26 |o(stdin)| )).X..&|
|00002730| 26 20 28 73 74 72 63 6d | 70 28 20 61 72 67 76 5b |& (strcm|p( argv[|
|00002740| 31 5d 2c 20 22 2d 68 22 | 20 29 20 3d 3d 20 30 29 |1], "-h"| ) == 0)|
|00002750| 3b 0a 58 20 20 20 20 65 | 6c 73 65 0a 58 09 68 6f |;.X e|lse.X.ho|
|00002760| 6c 64 66 6c 61 67 20 3d | 20 30 3b 0a 58 0a 58 20 |ldflag =| 0;.X.X |
|00002770| 20 20 20 69 66 20 28 20 | 68 6f 6c 64 66 6c 61 67 | if ( |holdflag|
|00002780| 20 26 26 20 28 74 74 79 | 20 3d 20 66 6f 70 65 6e | && (tty| = fopen|
|00002790| 28 20 22 2f 64 65 76 2f | 74 74 79 22 2c 20 22 72 |( "/dev/|tty", "r|
|000027a0| 2b 22 20 29 29 20 3d 3d | 20 4e 55 4c 4c 29 20 7b |+" )) ==| NULL) {|
|000027b0| 0a 58 09 66 70 72 69 6e | 74 66 28 20 73 74 64 65 |.X.fprin|tf( stde|
|000027c0| 72 72 2c 20 22 63 61 6e | 74 20 6f 70 65 6e 20 2f |rr, "can|t open /|
|000027d0| 64 65 76 2f 74 74 79 5c | 6e 22 20 29 3b 0a 58 09 |dev/tty\|n" );.X.|
|000027e0| 65 78 69 74 28 20 31 20 | 29 3b 0a 58 20 20 20 20 |exit( 1 |);.X |
|000027f0| 7d 0a 58 0a 58 20 20 20 | 20 2f 2a 20 74 75 72 6e |}.X.X | /* turn|
|00002800| 20 6f 66 66 20 65 63 68 | 6f 69 6e 67 20 6f 66 20 | off ech|oing of |
|00002810| 74 79 70 65 64 20 63 68 | 61 72 61 63 74 65 72 73 |typed ch|aracters|
|00002820| 20 2a 2f 0a 58 20 20 20 | 20 73 79 73 74 65 6d 28 | */.X | system(|
|00002830| 20 22 73 74 74 79 20 2d | 65 63 68 6f 22 20 29 3b | "stty -|echo" );|
|00002840| 0a 58 0a 58 20 20 20 20 | 2f 2a 20 69 6e 69 74 69 |.X.X |/* initi|
|00002850| 61 6c 69 7a 65 20 76 61 | 72 69 61 62 6c 65 73 20 |alize va|riables |
|00002860| 2a 2f 0a 58 20 20 20 20 | 74 65 78 74 78 20 3d 20 |*/.X |textx = |
|00002870| 30 3b 20 74 65 78 74 79 | 20 3d 20 32 30 3b 0a 58 |0; texty| = 20;.X|
|00002880| 0a 58 20 20 20 20 2f 2a | 20 69 6e 69 74 69 61 6c |.X /*| initial|
|00002890| 69 7a 65 20 62 6f 61 72 | 64 20 2a 2f 0a 58 20 20 |ize boar|d */.X |
|000028a0| 20 20 70 72 69 6e 74 66 | 28 20 22 50 31 70 20 53 | printf|( "P1p S|
|000028b0| 28 45 29 20 53 28 43 30 | 29 20 57 28 46 33 29 22 |(E) S(C0|) W(F3)"|
|000028c0| 20 29 3b 0a 58 20 20 20 | 20 77 68 69 6c 65 28 20 | );.X | while( |
|000028d0| 66 67 65 74 73 28 20 73 | 2c 20 31 30 32 34 2d 31 |fgets( s|, 1024-1|
|000028e0| 2c 20 63 68 65 73 73 69 | 6e 69 74 20 29 20 21 3d |, chessi|nit ) !=|
|000028f0| 20 4e 55 4c 4c 20 29 0a | 58 09 70 72 69 6e 74 66 | NULL ).|X.printf|
|00002900| 28 20 73 20 29 3b 0a 58 | 20 20 20 20 66 66 6c 75 |( s );.X| fflu|
|00002910| 73 68 28 20 73 74 64 6f | 75 74 20 29 3b 0a 58 20 |sh( stdo|ut );.X |
|00002920| 20 20 20 2f 2a 20 73 6c | 65 65 70 28 20 31 34 20 | /* sl|eep( 14 |
|00002930| 29 3b 20 2a 2f 09 2f 2a | 20 77 61 69 74 20 66 6f |); */./*| wait fo|
|00002940| 72 20 74 65 72 6d 69 6e | 61 6c 20 74 6f 20 66 69 |r termin|al to fi|
|00002950| 6e 69 73 68 20 64 72 61 | 77 69 6e 67 20 2a 2f 0a |nish dra|wing */.|
|00002960| 58 20 20 20 20 69 66 20 | 28 20 68 6f 6c 64 66 6c |X if |( holdfl|
|00002970| 61 67 20 29 0a 58 09 77 | 61 69 74 63 6d 64 28 29 |ag ).X.w|aitcmd()|
|00002980| 3b 0a 58 0a 58 0a 58 20 | 20 20 20 2f 2a 20 4d 41 |;.X.X.X | /* MA|
|00002990| 49 4e 20 4c 4f 47 49 43 | 20 2a 2f 0a 58 0a 58 20 |IN LOGIC| */.X.X |
|000029a0| 20 20 20 77 68 69 6c 65 | 28 20 66 67 65 74 73 28 | while|( fgets(|
|000029b0| 20 73 2c 20 31 30 32 34 | 2d 31 2c 20 73 74 64 69 | s, 1024|-1, stdi|
|000029c0| 6e 20 29 20 21 3d 20 4e | 55 4c 4c 20 29 20 7b 0a |n ) != N|ULL ) {.|
|000029d0| 58 0a 58 09 69 66 20 28 | 20 73 74 72 6e 63 6d 70 |X.X.if (| strncmp|
|000029e0| 28 73 2c 22 69 6c 6c 65 | 67 61 6c 22 2c 37 29 20 |(s,"ille|gal",7) |
|000029f0| 3d 3d 20 30 20 7c 7c 20 | 73 74 72 6e 63 6d 70 28 |== 0 || |strncmp(|
|00002a00| 73 2c 22 61 6d 62 69 67 | 75 6f 75 73 22 2c 39 29 |s,"ambig|uous",9)|
|00002a10| 20 3d 3d 20 30 20 29 20 | 7b 0a 58 09 20 20 20 20 | == 0 ) |{.X. |
|00002a20| 66 6c 61 73 68 77 61 72 | 6e 28 20 57 41 52 4e 50 |flashwar|n( WARNP|
|00002a30| 4f 53 58 2c 20 57 41 52 | 4e 50 4f 53 59 2c 20 30 |OSX, WAR|NPOSY, 0|
|00002a40| 2c 20 32 20 29 3b 0a 58 | 09 20 20 20 20 63 6f 6e |, 2 );.X|. con|
|00002a50| 74 69 6e 75 65 3b 0a 58 | 09 7d 0a 58 0a 58 09 6e |tinue;.X|.}.X.X.n|
|00002a60| 61 72 67 73 20 3d 20 73 | 73 63 61 6e 66 28 20 73 |args = s|scanf( s|
|00002a70| 2c 20 22 20 25 63 25 31 | 64 25 63 25 31 64 25 63 |, " %c%1|d%c%1d%c|
|00002a80| 22 2c 0a 58 09 09 26 73 | 66 6e 61 6d 65 2c 20 26 |",.X..&s|fname, &|
|00002a90| 73 72 2c 20 26 65 66 6e | 61 6d 65 2c 20 26 65 72 |sr, &efn|ame, &er|
|00002aa0| 2c 20 26 70 72 6f 6d 76 | 61 6c 20 29 3b 0a 58 09 |, &promv|al );.X.|
|00002ab0| 69 66 20 28 20 6e 61 72 | 67 73 20 3c 20 34 20 29 |if ( nar|gs < 4 )|
|00002ac0| 20 7b 0a 58 09 20 20 20 | 20 66 6c 61 73 68 77 61 | {.X. | flashwa|
|00002ad0| 72 6e 28 20 57 41 52 4e | 50 4f 53 58 2c 20 57 41 |rn( WARN|POSX, WA|
|00002ae0| 52 4e 50 4f 53 59 2c 20 | 30 2c 20 33 20 29 3b 0a |RNPOSY, |0, 3 );.|
|00002af0| 58 09 20 20 20 20 63 6f | 6e 74 69 6e 75 65 3b 0a |X. co|ntinue;.|
|00002b00| 58 09 7d 0a 58 0a 58 09 | 2f 2a 20 64 6f 20 63 6f |X.}.X.X.|/* do co|
|00002b10| 6e 76 65 72 73 69 6f 6e | 20 74 6f 20 69 6e 74 73 |nversion| to ints|
|00002b20| 20 6f 6e 20 66 69 6c 65 | 2f 72 61 6e 6b 20 73 70 | on file|/rank sp|
|00002b30| 65 63 69 66 69 65 72 73 | 20 2a 2f 0a 58 09 73 72 |ecifiers| */.X.sr|
|00002b40| 2d 2d 3b 20 65 72 2d 2d | 3b 0a 58 09 73 66 20 3d |--; er--|;.X.sf =|
|00002b50| 20 6e 61 6d 65 74 6f 66 | 69 6c 65 28 20 73 66 6e | nametof|ile( sfn|
|00002b60| 61 6d 65 20 29 3b 0a 58 | 09 65 66 20 3d 20 6e 61 |ame );.X|.ef = na|
|00002b70| 6d 65 74 6f 66 69 6c 65 | 28 20 65 66 6e 61 6d 65 |metofile|( efname|
|00002b80| 20 29 3b 0a 58 0a 58 09 | 2f 2a 20 63 68 65 63 6b | );.X.X.|/* check|
|00002b90| 20 69 66 20 63 6f 6f 72 | 64 69 6e 61 74 65 73 20 | if coor|dinates |
|00002ba0| 61 72 65 20 62 61 64 20 | 2a 2f 0a 58 09 69 66 20 |are bad |*/.X.if |
|00002bb0| 28 20 73 72 20 3c 20 30 | 20 7c 7c 20 73 72 20 3e |( sr < 0| || sr >|
|00002bc0| 20 37 20 7c 7c 20 73 66 | 20 3c 20 30 20 7c 7c 20 | 7 || sf| < 0 || |
|00002bd0| 73 66 20 3e 20 37 0a 58 | 09 09 7c 7c 20 65 72 20 |sf > 7.X|..|| er |
|00002be0| 3c 20 30 20 7c 7c 20 65 | 72 20 3e 20 37 20 7c 7c |< 0 || e|r > 7 |||
|00002bf0| 20 65 66 20 3c 20 30 20 | 7c 7c 20 65 66 20 3e 20 | ef < 0 ||| ef > |
|00002c00| 37 20 29 20 7b 0a 58 09 | 20 20 20 20 66 6c 61 73 |7 ) {.X.| flas|
|00002c10| 68 77 61 72 6e 28 20 57 | 41 52 4e 50 4f 53 58 2c |hwarn( W|ARNPOSX,|
|00002c20| 20 57 41 52 4e 50 4f 53 | 59 2c 20 30 2c 20 33 20 | WARNPOS|Y, 0, 3 |
|00002c30| 29 3b 0a 58 09 20 20 20 | 20 63 6f 6e 74 69 6e 75 |);.X. | continu|
|00002c40| 65 3b 0a 58 09 7d 0a 58 | 0a 58 09 2f 2a 20 63 68 |e;.X.}.X|.X./* ch|
|00002c50| 65 63 6b 20 69 66 20 74 | 68 65 20 70 69 65 63 65 |eck if t|he piece|
|00002c60| 20 65 78 69 73 74 73 20 | 2a 2f 0a 58 09 69 66 20 | exists |*/.X.if |
|00002c70| 28 20 62 6f 61 72 64 5b | 20 73 72 20 5d 5b 20 73 |( board[| sr ][ s|
|00002c80| 66 20 5d 20 3d 3d 20 27 | 20 27 20 29 20 7b 0a 58 |f ] == '| ' ) {.X|
|00002c90| 09 20 20 20 20 2f 2a 20 | 73 71 75 61 72 65 20 69 |. /* |square i|
|00002ca0| 73 20 65 6d 70 74 79 20 | 2d 2d 20 66 6c 61 73 68 |s empty |-- flash|
|00002cb0| 20 77 61 72 6e 69 6e 67 | 20 2a 2f 0a 58 09 20 20 | warning| */.X. |
|00002cc0| 20 20 66 6c 61 73 68 77 | 61 72 6e 28 20 58 4f 52 | flashw|arn( XOR|
|00002cd0| 47 20 2b 20 58 53 49 5a | 45 20 2a 20 73 66 2c 20 |G + XSIZ|E * sf, |
|00002ce0| 59 4f 52 47 20 2b 20 59 | 53 49 5a 45 20 2a 20 28 |YORG + Y|SIZE * (|
|00002cf0| 37 2d 73 72 29 2c 0a 58 | 09 09 20 20 20 20 28 49 |7-sr),.X|.. (I|
|00002d00| 53 53 57 48 49 54 45 28 | 20 73 66 2c 20 73 72 20 |SSWHITE(| sf, sr |
|00002d10| 29 3f 32 3a 31 29 2c 20 | 33 20 29 3b 0a 58 09 20 |)?2:1), |3 );.X. |
|00002d20| 20 20 20 63 6f 6e 74 69 | 6e 75 65 3b 0a 58 09 7d | conti|nue;.X.}|
|00002d30| 0a 58 0a 58 09 70 72 69 | 6e 74 6d 6f 76 65 28 20 |.X.X.pri|ntmove( |
|00002d40| 73 20 29 3b 0a 58 0a 58 | 09 2f 2a 20 63 68 65 63 |s );.X.X|./* chec|
|00002d50| 6b 20 66 6f 72 20 43 41 | 53 54 4c 45 20 2a 2f 0a |k for CA|STLE */.|
|00002d60| 58 09 69 66 20 28 20 62 | 6f 61 72 64 5b 73 72 5d |X.if ( b|oard[sr]|
|00002d70| 5b 73 66 5d 20 3d 3d 20 | 27 6b 27 20 26 26 20 61 |[sf] == |'k' && a|
|00002d80| 62 73 28 73 66 2d 65 66 | 29 20 3d 3d 20 32 20 29 |bs(sf-ef|) == 2 )|
|00002d90| 20 7b 0a 58 09 20 20 20 | 20 2f 2a 20 77 68 69 74 | {.X. | /* whit|
|00002da0| 65 20 63 61 73 74 6c 65 | 73 20 2a 2f 0a 58 09 20 |e castle|s */.X. |
|00002db0| 20 20 20 69 66 20 28 20 | 65 66 20 3d 3d 20 36 20 | if ( |ef == 6 |
|00002dc0| 29 20 7b 0a 58 09 09 2f | 2a 20 6b 69 6e 67 27 73 |) {.X../|* king's|
|00002dd0| 20 73 69 64 65 20 2a 2f | 0a 58 09 09 62 6f 61 72 | side */|.X..boar|
|00002de0| 64 5b 20 30 20 5d 5b 20 | 34 20 5d 20 3d 20 27 20 |d[ 0 ][ |4 ] = ' |
|00002df0| 27 3b 0a 58 09 09 62 6f | 61 72 64 5b 20 30 20 5d |';.X..bo|ard[ 0 ]|
|00002e00| 5b 20 36 20 5d 20 3d 20 | 27 6b 27 3b 0a 58 09 09 |[ 6 ] = |'k';.X..|
|00002e10| 62 6f 61 72 64 5b 20 30 | 20 5d 5b 20 37 20 5d 20 |board[ 0| ][ 7 ] |
|00002e20| 3d 20 27 20 27 3b 0a 58 | 09 09 62 6f 61 72 64 5b |= ' ';.X|..board[|
|00002e30| 20 30 20 5d 5b 20 35 20 | 5d 20 3d 20 27 72 27 3b | 0 ][ 5 |] = 'r';|
|00002e40| 0a 58 09 09 63 61 73 74 | 6c 65 28 20 34 2c 20 36 |.X..cast|le( 4, 6|
|00002e50| 2c 20 37 2c 20 35 2c 20 | 30 20 29 3b 0a 58 09 09 |, 7, 5, |0 );.X..|
|00002e60| 2f 2a 20 67 6f 74 6f 20 | 65 6e 64 5f 77 61 69 74 |/* goto |end_wait|
|00002e70| 3b 20 2a 2f 0a 58 09 20 | 20 20 20 7d 20 65 6c 73 |; */.X. | } els|
|00002e80| 65 20 7b 0a 58 09 09 2f | 2a 20 71 75 65 65 6e 27 |e {.X../|* queen'|
|00002e90| 73 20 73 69 64 65 20 2a | 2f 0a 58 09 09 62 6f 61 |s side *|/.X..boa|
|00002ea0| 72 64 5b 20 30 20 5d 5b | 20 34 20 5d 20 3d 20 27 |rd[ 0 ][| 4 ] = '|
|00002eb0| 20 27 3b 0a 58 09 09 62 | 6f 61 72 64 5b 20 30 20 | ';.X..b|oard[ 0 |
|00002ec0| 5d 5b 20 32 20 5d 20 3d | 20 27 6b 27 3b 0a 58 09 |][ 2 ] =| 'k';.X.|
|00002ed0| 09 62 6f 61 72 64 5b 20 | 30 20 5d 5b 20 30 20 5d |.board[ |0 ][ 0 ]|
|00002ee0| 20 3d 20 27 20 27 3b 0a | 58 09 09 62 6f 61 72 64 | = ' ';.|X..board|
|00002ef0| 5b 20 30 20 5d 5b 20 33 | 20 5d 20 3d 20 27 72 27 |[ 0 ][ 3| ] = 'r'|
|00002f00| 3b 0a 58 09 09 63 61 73 | 74 6c 65 28 20 34 2c 20 |;.X..cas|tle( 4, |
|00002f10| 32 2c 20 30 2c 20 33 2c | 20 30 20 29 3b 0a 58 09 |2, 0, 3,| 0 );.X.|
|00002f20| 09 2f 2a 20 67 6f 74 6f | 20 65 6e 64 5f 77 61 69 |./* goto| end_wai|
|00002f30| 74 3b 20 2a 2f 0a 58 09 | 20 20 20 20 7d 0a 58 09 |t; */.X.| }.X.|
|00002f40| 7d 20 65 6c 73 65 0a 58 | 09 69 66 20 28 20 62 6f |} else.X|.if ( bo|
|00002f50| 61 72 64 5b 73 72 5d 5b | 73 66 5d 20 3d 3d 20 27 |ard[sr][|sf] == '|
|00002f60| 4b 27 20 26 26 20 61 62 | 73 28 73 66 2d 65 66 29 |K' && ab|s(sf-ef)|
|00002f70| 20 3d 3d 20 32 20 29 20 | 7b 0a 58 09 20 20 20 20 | == 2 ) |{.X. |
|00002f80| 2f 2a 20 62 6c 61 63 6b | 20 63 61 73 74 6c 65 73 |/* black| castles|
|00002f90| 20 2a 2f 0a 58 09 20 20 | 20 20 69 66 20 28 20 65 | */.X. | if ( e|
|00002fa0| 66 20 3d 3d 20 36 20 29 | 20 7b 0a 58 09 09 2f 2a |f == 6 )| {.X../*|
|00002fb0| 20 6b 69 6e 67 27 73 20 | 73 69 64 65 20 2a 2f 0a | king's |side */.|
|00002fc0| 58 09 09 62 6f 61 72 64 | 5b 20 37 20 5d 5b 20 34 |X..board|[ 7 ][ 4|
|00002fd0| 20 5d 20 3d 20 27 20 27 | 3b 0a 58 09 09 62 6f 61 | ] = ' '|;.X..boa|
|00002fe0| 72 64 5b 20 37 20 5d 5b | 20 36 20 5d 20 3d 20 27 |rd[ 7 ][| 6 ] = '|
|00002ff0| 4b 27 3b 0a 58 09 09 62 | 6f 61 72 64 5b 20 37 20 |K';.X..b|oard[ 7 |
|00003000| 5d 5b 20 37 20 5d 20 3d | 20 27 20 27 3b 0a 58 09 |][ 7 ] =| ' ';.X.|
|00003010| 09 62 6f 61 72 64 5b 20 | 37 20 5d 5b 20 35 20 5d |.board[ |7 ][ 5 ]|
|00003020| 20 3d 20 27 52 27 3b 0a | 58 09 09 63 61 73 74 6c | = 'R';.|X..castl|
|00003030| 65 28 20 34 2c 20 36 2c | 20 37 2c 20 35 2c 20 37 |e( 4, 6,| 7, 5, 7|
|00003040| 20 29 3b 0a 58 09 09 2f | 2a 20 67 6f 74 6f 20 65 | );.X../|* goto e|
|00003050| 6e 64 5f 77 61 69 74 3b | 20 2a 2f 0a 58 09 20 20 |nd_wait;| */.X. |
|00003060| 20 20 7d 20 65 6c 73 65 | 20 7b 0a 58 09 09 2f 2a | } else| {.X../*|
|00003070| 20 71 75 65 65 6e 27 73 | 20 73 69 64 65 20 2a 2f | queen's| side */|
|00003080| 0a 58 09 09 62 6f 61 72 | 64 5b 20 37 20 5d 5b 20 |.X..boar|d[ 7 ][ |
|00003090| 34 20 5d 20 3d 20 27 20 | 27 3b 0a 58 09 09 62 6f |4 ] = ' |';.X..bo|
|000030a0| 61 72 64 5b 20 37 20 5d | 5b 20 32 20 5d 20 3d 20 |ard[ 7 ]|[ 2 ] = |
|000030b0| 27 4b 27 3b 0a 58 09 09 | 62 6f 61 72 64 5b 20 37 |'K';.X..|board[ 7|
|000030c0| 20 5d 5b 20 30 20 5d 20 | 3d 20 27 20 27 3b 0a 58 | ][ 0 ] |= ' ';.X|
|000030d0| 09 09 62 6f 61 72 64 5b | 20 37 20 5d 5b 20 33 20 |..board[| 7 ][ 3 |
|000030e0| 5d 20 3d 20 27 52 27 3b | 0a 58 09 09 63 61 73 74 |] = 'R';|.X..cast|
|000030f0| 6c 65 28 20 34 2c 20 32 | 2c 20 30 2c 20 33 2c 20 |le( 4, 2|, 0, 3, |
|00003100| 37 20 29 3b 0a 58 09 09 | 2f 2a 20 67 6f 74 6f 20 |7 );.X..|/* goto |
|00003110| 65 6e 64 5f 77 61 69 74 | 3b 20 2a 2f 0a 58 09 20 |end_wait|; */.X. |
|00003120| 20 20 20 7d 0a 58 09 7d | 20 65 6c 73 65 0a 58 0a | }.X.}| else.X.|
|00003130| 58 09 2f 2a 20 63 68 65 | 63 6b 20 66 6f 72 20 45 |X./* che|ck for E|
|00003140| 4e 20 50 41 53 53 41 4e | 54 20 2a 2f 0a 58 09 69 |N PASSAN|T */.X.i|
|00003150| 66 20 28 20 28 73 72 20 | 3d 3d 20 33 20 26 26 20 |f ( (sr |== 3 && |
|00003160| 65 72 20 3d 3d 20 32 20 | 26 26 20 62 6f 61 72 64 |er == 2 |&& board|
|00003170| 5b 73 72 5d 5b 73 66 5d | 20 3d 3d 20 27 50 27 0a |[sr][sf]| == 'P'.|
|00003180| 58 09 20 20 20 7c 7c 20 | 73 72 20 3d 3d 20 34 20 |X. || |sr == 4 |
|00003190| 26 26 20 65 72 20 3d 3d | 20 35 20 26 26 20 62 6f |&& er ==| 5 && bo|
|000031a0| 61 72 64 5b 73 72 5d 5b | 73 66 5d 20 3d 3d 20 27 |ard[sr][|sf] == '|
|000031b0| 70 27 29 0a 58 09 20 20 | 20 26 26 20 73 66 20 21 |p').X. | && sf !|
|000031c0| 3d 20 65 66 20 26 26 20 | 62 6f 61 72 64 5b 65 72 |= ef && |board[er|
|000031d0| 5d 5b 65 66 5d 20 3d 3d | 20 27 20 27 20 29 20 7b |][ef] ==| ' ' ) {|
|000031e0| 0a 58 09 09 70 69 65 63 | 65 20 3d 20 62 6f 61 72 |.X..piec|e = boar|
|000031f0| 64 5b 73 72 5d 5b 73 66 | 5d 3b 0a 58 09 09 62 6f |d[sr][sf|];.X..bo|
|00003200| 61 72 64 5b 73 72 5d 5b | 73 66 5d 20 3d 20 27 20 |ard[sr][|sf] = ' |
|00003210| 27 3b 0a 58 09 09 62 6f | 61 72 64 5b 73 72 5d 5b |';.X..bo|ard[sr][|
|00003220| 65 66 5d 20 3d 20 27 20 | 27 3b 0a 58 09 09 62 6f |ef] = ' |';.X..bo|
|00003230| 61 72 64 5b 65 72 5d 5b | 65 66 5d 20 3d 20 70 69 |ard[er][|ef] = pi|
|00003240| 65 63 65 3b 0a 58 09 09 | 65 6e 5f 70 61 73 73 61 |ece;.X..|en_passa|
|00003250| 6e 74 28 20 73 66 2c 20 | 73 72 2c 20 65 66 2c 20 |nt( sf, |sr, ef, |
|00003260| 65 72 2c 20 70 69 65 63 | 65 20 29 3b 0a 58 09 09 |er, piec|e );.X..|
|00003270| 2f 2a 20 67 6f 74 6f 20 | 65 6e 64 5f 77 61 69 74 |/* goto |end_wait|
|00003280| 3b 20 2a 2f 0a 58 09 7d | 20 65 6c 73 65 0a 58 0a |; */.X.}| else.X.|
|00003290| 58 09 2f 2a 20 63 68 65 | 63 6b 20 66 6f 72 20 50 |X./* che|ck for P|
|000032a0| 41 57 4e 20 50 52 4f 4d | 4f 54 49 4f 4e 20 2a 2f |AWN PROM|OTION */|
|000032b0| 0a 58 09 69 66 20 28 20 | 65 72 20 3d 3d 20 37 20 |.X.if ( |er == 7 |
|000032c0| 26 26 20 62 6f 61 72 64 | 5b 73 72 5d 5b 73 66 5d |&& board|[sr][sf]|
|000032d0| 20 3d 3d 20 27 70 27 0a | 58 09 20 20 7c 7c 20 65 | == 'p'.|X. || e|
|000032e0| 72 20 3d 3d 20 30 20 26 | 26 20 62 6f 61 72 64 5b |r == 0 &|& board[|
|000032f0| 73 72 5d 5b 73 66 5d 20 | 3d 3d 20 27 50 27 20 29 |sr][sf] |== 'P' )|
|00003300| 20 7b 0a 58 09 09 2f 2a | 20 70 72 6f 6d 6f 74 65 | {.X../*| promote|
|00003310| 20 74 6f 20 61 70 70 72 | 6f 70 72 69 61 74 65 20 | to appr|opriate |
|00003320| 70 69 65 63 65 20 2a 2f | 0a 58 09 09 73 77 69 74 |piece */|.X..swit|
|00003330| 63 68 28 20 70 72 6f 6d | 76 61 6c 20 29 20 7b 0a |ch( prom|val ) {.|
|00003340| 58 09 09 63 61 73 65 20 | 27 71 27 3a 0a 58 09 09 |X..case |'q':.X..|
|00003350| 63 61 73 65 20 27 51 27 | 3a 0a 58 09 09 63 61 73 |case 'Q'|:.X..cas|
|00003360| 65 20 27 72 27 3a 0a 58 | 09 09 63 61 73 65 20 27 |e 'r':.X|..case '|
|00003370| 52 27 3a 0a 58 09 09 63 | 61 73 65 20 27 62 27 3a |R':.X..c|ase 'b':|
|00003380| 0a 58 09 09 63 61 73 65 | 20 27 42 27 3a 0a 58 09 |.X..case| 'B':.X.|
|00003390| 09 63 61 73 65 20 27 6e | 27 3a 0a 58 09 09 63 61 |.case 'n|':.X..ca|
|000033a0| 73 65 20 27 4e 27 3a 0a | 58 09 09 20 20 20 20 69 |se 'N':.|X.. i|
|000033b0| 66 20 28 20 69 73 6c 6f | 77 65 72 28 70 72 6f 6d |f ( islo|wer(prom|
|000033c0| 76 61 6c 29 20 29 0a 58 | 09 09 09 70 72 6f 6d 76 |val) ).X|...promv|
|000033d0| 61 6c 20 3d 20 74 6f 75 | 70 70 65 72 28 70 72 6f |al = tou|pper(pro|
|000033e0| 6d 76 61 6c 29 3b 0a 58 | 09 09 20 20 20 20 70 72 |mval);.X|.. pr|
|000033f0| 6f 6d 6f 74 65 64 5f 76 | 61 6c 75 65 20 3d 20 28 |omoted_v|alue = (|
|00003400| 65 72 20 3d 3d 20 37 29 | 20 3f 20 74 6f 6c 6f 77 |er == 7)| ? tolow|
|00003410| 65 72 28 70 72 6f 6d 76 | 61 6c 29 20 3a 20 70 72 |er(promv|al) : pr|
|00003420| 6f 6d 76 61 6c 3b 0a 58 | 09 09 20 20 20 20 62 72 |omval;.X|.. br|
|00003430| 65 61 6b 3b 0a 58 09 09 | 64 65 66 61 75 6c 74 3a |eak;.X..|default:|
|00003440| 0a 58 09 09 20 20 20 20 | 70 72 6f 6d 6f 74 65 64 |.X.. |promoted|
|00003450| 5f 76 61 6c 75 65 20 3d | 20 28 65 72 20 3d 3d 20 |_value =| (er == |
|00003460| 37 29 20 3f 20 27 71 27 | 20 3a 20 27 51 27 3b 20 |7) ? 'q'| : 'Q'; |
|00003470| 62 72 65 61 6b 3b 0a 58 | 09 09 7d 0a 58 09 09 62 |break;.X|..}.X..b|
|00003480| 6f 61 72 64 5b 65 72 5d | 5b 65 66 5d 20 3d 20 70 |oard[er]|[ef] = p|
|00003490| 72 6f 6d 6f 74 65 64 5f | 76 61 6c 75 65 3b 0a 58 |romoted_|value;.X|
|000034a0| 09 09 62 6f 61 72 64 5b | 73 72 5d 5b 73 66 5d 20 |..board[|sr][sf] |
|000034b0| 3d 20 27 20 27 3b 0a 58 | 09 09 72 65 6d 6f 76 65 |= ' ';.X|..remove|
|000034c0| 28 20 73 66 2c 20 73 72 | 20 29 3b 0a 58 09 09 72 |( sf, sr| );.X..r|
|000034d0| 65 64 72 61 77 28 20 65 | 66 2c 20 65 72 2c 20 70 |edraw( e|f, er, p|
|000034e0| 72 6f 6d 6f 74 65 64 5f | 76 61 6c 75 65 20 29 3b |romoted_|value );|
|000034f0| 0a 58 09 09 2f 2a 20 67 | 6f 74 6f 20 65 6e 64 5f |.X../* g|oto end_|
|00003500| 77 61 69 74 3b 20 2a 2f | 0a 58 09 7d 20 65 6c 73 |wait; */|.X.} els|
|00003510| 65 20 7b 0a 58 0a 58 09 | 2f 2a 20 49 66 20 6e 6f |e {.X.X.|/* If no|
|00003520| 74 20 43 41 53 54 4c 45 | 2c 20 45 4e 20 50 41 53 |t CASTLE|, EN PAS|
|00003530| 53 41 4e 54 2c 20 6f 72 | 20 50 41 57 4e 20 50 52 |SANT, or| PAWN PR|
|00003540| 4f 4d 4f 54 49 4f 4e 20 | 2a 2f 0a 58 0a 58 09 2f |OMOTION |*/.X.X./|
|00003550| 2a 20 75 70 64 61 74 65 | 20 74 68 65 20 62 6f 61 |* update| the boa|
|00003560| 72 64 20 69 6e 20 6d 65 | 6d 6f 72 79 20 2a 2f 0a |rd in me|mory */.|
|00003570| 58 09 70 69 65 63 65 20 | 3d 20 62 6f 61 72 64 5b |X.piece |= board[|
|00003580| 20 73 72 20 5d 5b 20 73 | 66 20 5d 3b 0a 58 09 62 | sr ][ s|f ];.X.b|
|00003590| 6f 61 72 64 5b 20 73 72 | 20 5d 5b 20 73 66 20 5d |oard[ sr| ][ sf ]|
|000035a0| 20 3d 20 27 20 27 3b 0a | 58 09 62 6f 61 72 64 5b | = ' ';.|X.board[|
|000035b0| 20 65 72 20 5d 5b 20 65 | 66 20 5d 20 3d 20 70 69 | er ][ e|f ] = pi|
|000035c0| 65 63 65 3b 0a 58 0a 58 | 09 2f 2a 20 65 72 61 73 |ece;.X.X|./* eras|
|000035d0| 65 20 61 6e 64 20 72 65 | 64 72 61 77 20 74 68 65 |e and re|draw the|
|000035e0| 20 70 69 65 63 65 20 2a | 2f 0a 58 09 72 65 6d 6f | piece *|/.X.remo|
|000035f0| 76 65 28 20 73 66 2c 20 | 73 72 20 29 3b 0a 58 09 |ve( sf, |sr );.X.|
|00003600| 72 65 64 72 61 77 28 20 | 65 66 2c 20 65 72 2c 20 |redraw( |ef, er, |
|00003610| 70 69 65 63 65 20 29 3b | 0a 58 0a 58 20 20 20 20 |piece );|.X.X |
|00003620| 20 20 20 20 7d 0a 58 0a | 58 2f 2a 20 65 6e 64 5f | }.X.|X/* end_|
|00003630| 77 61 69 74 3a 20 2a 2f | 0a 58 09 69 66 20 28 20 |wait: */|.X.if ( |
|00003640| 68 6f 6c 64 66 6c 61 67 | 20 29 0a 58 09 20 20 20 |holdflag| ).X. |
|00003650| 20 77 61 69 74 63 6d 64 | 28 29 3b 0a 58 20 20 20 | waitcmd|();.X |
|00003660| 20 7d 0a 58 0a 58 20 20 | 20 20 66 66 6c 75 73 68 | }.X.X | fflush|
|00003670| 28 20 73 74 64 6f 75 74 | 20 29 3b 0a 58 20 20 20 |( stdout| );.X |
|00003680| 20 73 6c 65 65 70 28 20 | 31 20 29 3b 0a 58 20 20 | sleep( |1 );.X |
|00003690| 20 20 70 72 69 6e 74 66 | 28 20 22 2f 22 20 29 3b | printf|( "/" );|
|000036a0| 0a 58 7d 0a 45 4e 44 5f | 4f 46 5f 63 68 65 73 73 |.X}.END_|OF_chess|
|000036b0| 62 6f 61 72 64 2e 63 0a | 69 66 20 74 65 73 74 20 |board.c.|if test |
|000036c0| 39 36 36 38 20 2d 6e 65 | 20 60 77 63 20 2d 63 20 |9668 -ne| `wc -c |
|000036d0| 3c 63 68 65 73 73 62 6f | 61 72 64 2e 63 60 3b 20 |<chessbo|ard.c`; |
|000036e0| 74 68 65 6e 0a 20 20 20 | 20 65 63 68 6f 20 73 68 |then. | echo sh|
|000036f0| 61 72 3a 20 5c 22 63 68 | 65 73 73 62 6f 61 72 64 |ar: \"ch|essboard|
|00003700| 2e 63 5c 22 20 75 6e 70 | 61 63 6b 65 64 20 77 69 |.c\" unp|acked wi|
|00003710| 74 68 20 77 72 6f 6e 67 | 20 73 69 7a 65 21 0a 66 |th wrong| size!.f|
|00003720| 69 0a 23 20 65 6e 64 20 | 6f 66 20 6f 76 65 72 77 |i.# end |of overw|
|00003730| 72 69 74 69 6e 67 20 63 | 68 65 63 6b 0a 66 69 0a |riting c|heck.fi.|
|00003740| 69 66 20 74 65 73 74 20 | 2d 66 20 62 6f 61 72 64 |if test |-f board|
|00003750| 69 6e 69 74 20 2d 61 20 | 22 24 7b 31 7d 22 20 21 |init -a |"${1}" !|
|00003760| 3d 20 22 2d 63 22 20 3b | 20 74 68 65 6e 20 0a 20 |= "-c" ;| then . |
|00003770| 20 65 63 68 6f 20 73 68 | 61 72 3a 20 57 69 6c 6c | echo sh|ar: Will|
|00003780| 20 6e 6f 74 20 6f 76 65 | 72 2d 77 72 69 74 65 20 | not ove|r-write |
|00003790| 65 78 69 73 74 69 6e 67 | 20 66 69 6c 65 20 5c 22 |existing| file \"|
|000037a0| 62 6f 61 72 64 69 6e 69 | 74 5c 22 0a 65 6c 73 65 |boardini|t\".else|
|000037b0| 0a 65 63 68 6f 20 73 68 | 61 72 3a 20 45 78 74 72 |.echo sh|ar: Extr|
|000037c0| 61 63 74 69 6e 67 20 5c | 22 62 6f 61 72 64 69 6e |acting \|"boardin|
|000037d0| 69 74 5c 22 20 5c 28 32 | 32 36 34 20 63 68 61 72 |it\" \(2|264 char|
|000037e0| 61 63 74 65 72 73 5c 29 | 0a 73 65 64 20 22 73 2f |acters\)|.sed "s/|
|000037f0| 5e 58 2f 2f 22 20 3e 62 | 6f 61 72 64 69 6e 69 74 |^X//" >b|oardinit|
|00003800| 20 3c 3c 27 45 4e 44 5f | 4f 46 5f 62 6f 61 72 64 | <<'END_|OF_board|
|00003810| 69 6e 69 74 27 0a 58 57 | 28 50 28 4d 31 29 29 0a |init'.XW|(P(M1)).|
|00003820| 58 57 28 50 31 29 0a 58 | 57 28 53 5b 2c 30 5d 29 |XW(P1).X|W(S[,0])|
|00003830| 0a 58 57 28 53 28 78 29 | 5b 30 5d 29 0a 58 0a 58 |.XW(S(x)|[0]).X.X|
|00003840| 40 3a 57 0a 58 57 28 53 | 31 29 0a 58 50 5b 31 36 |@:W.XW(S|1).XP[16|
|00003850| 30 2c 2d 36 30 5d 0a 58 | 57 28 49 32 29 20 56 5b |0,-60].X|W(I2) V[|
|00003860| 2b 36 30 2c 2b 30 5d 0a | 58 57 28 49 31 29 20 56 |+60,+0].|XW(I1) V|
|00003870| 5b 2b 36 30 2c 2b 30 5d | 0a 58 57 28 49 32 29 20 |[+60,+0]|.XW(I2) |
|00003880| 56 5b 2b 36 30 2c 2b 30 | 5d 0a 58 57 28 49 31 29 |V[+60,+0|].XW(I1)|
|00003890| 20 56 5b 2b 36 30 2c 2b | 30 5d 0a 58 57 28 49 32 | V[+60,+|0].XW(I2|
|000038a0| 29 20 56 5b 2b 36 30 2c | 2b 30 5d 0a 58 57 28 49 |) V[+60,|+0].XW(I|
|000038b0| 31 29 20 56 5b 2b 36 30 | 2c 2b 30 5d 0a 58 57 28 |1) V[+60|,+0].XW(|
|000038c0| 49 32 29 20 56 5b 2b 36 | 30 2c 2b 30 5d 0a 58 57 |I2) V[+6|0,+0].XW|
|000038d0| 28 49 31 29 20 56 5b 2b | 36 30 2c 2b 30 5d 0a 58 |(I1) V[+|60,+0].X|
|000038e0| 40 3b 0a 58 0a 58 40 3a | 42 0a 58 57 28 53 31 29 |@;.X.X@:|B.XW(S1)|
|000038f0| 0a 58 50 5b 31 36 30 2c | 2d 36 30 5d 0a 58 57 28 |.XP[160,|-60].XW(|
|00003900| 49 31 29 20 56 5b 2b 36 | 30 2c 2b 30 5d 0a 58 57 |I1) V[+6|0,+0].XW|
|00003910| 28 49 32 29 20 56 5b 2b | 36 30 2c 2b 30 5d 0a 58 |(I2) V[+|60,+0].X|
|00003920| 57 28 49 31 29 20 56 5b | 2b 36 30 2c 2b 30 5d 0a |W(I1) V[|+60,+0].|
|00003930| 58 57 28 49 32 29 20 56 | 5b 2b 36 30 2c 2b 30 5d |XW(I2) V|[+60,+0]|
|00003940| 0a 58 57 28 49 31 29 20 | 56 5b 2b 36 30 2c 2b 30 |.XW(I1) |V[+60,+0|
|00003950| 5d 0a 58 57 28 49 32 29 | 20 56 5b 2b 36 30 2c 2b |].XW(I2)| V[+60,+|
|00003960| 30 5d 0a 58 57 28 49 31 | 29 20 56 5b 2b 36 30 2c |0].XW(I1|) V[+60,|
|00003970| 2b 30 5d 0a 58 57 28 49 | 32 29 20 56 5b 2b 36 30 |+0].XW(I|2) V[+60|
|00003980| 2c 2b 30 5d 0a 58 40 3b | 0a 58 0a 58 40 3a 4c 0a |,+0].X@;|.X.X@:L.|
|00003990| 58 57 28 49 33 29 0a 58 | 57 28 53 30 29 0a 58 50 |XW(I3).X|W(S0).XP|
|000039a0| 5b 31 36 30 2c 2b 31 32 | 30 5d 20 56 5b 2b 34 38 |[160,+12|0] V[+48|
|000039b0| 30 2c 2b 30 5d 0a 58 40 | 3b 0a 58 0a 58 57 28 49 |0,+0].X@|;.X.XW(I|
|000039c0| 33 29 0a 58 57 28 53 30 | 29 0a 58 50 5b 31 36 30 |3).XW(S0|).XP[160|
|000039d0| 2c 36 30 5d 20 56 5b 2b | 34 38 30 2c 2b 30 5d 0a |,60] V[+|480,+0].|
|000039e0| 58 0a 58 40 57 20 40 4c | 20 40 42 20 40 4c 20 40 |X.X@W @L| @B @L @|
|000039f0| 57 20 40 4c 20 40 42 20 | 40 4c 20 40 57 20 40 4c |W @L @B |@L @W @L|
|00003a00| 20 40 42 20 40 4c 20 40 | 57 20 40 4c 20 40 42 0a | @B @L @|W @L @B.|
|00003a10| 58 40 3a 50 0a 58 20 20 | 20 20 56 28 42 29 0a 58 |X@:P.X | V(B).X|
|00003a20| 20 20 20 20 20 20 20 20 | 5b 2b 33 34 2c 2b 30 5d | |[+34,+0]|
|00003a30| 5b 2b 30 2c 2d 35 5d 5b | 2d 35 2c 2d 35 5d 5b 2d |[+0,-5][|-5,-5][-|
|00003a40| 34 2c 2b 30 5d 0a 58 09 | 5b 2b 30 2c 2d 35 5d 5b |4,+0].X.|[+0,-5][|
|00003a50| 2b 35 2c 2d 37 5d 5b 2b | 30 2c 2d 35 5d 5b 2d 35 |+5,-7][+|0,-5][-5|
|00003a60| 2c 2d 37 5d 0a 58 09 5b | 2d 35 2c 2d 33 5d 5b 2d |,-7].X.[|-5,-3][-|
|00003a70| 36 2c 2b 30 5d 0a 58 09 | 5b 2d 35 2c 2b 33 5d 5b |6,+0].X.|[-5,+3][|
|00003a80| 2d 35 2c 2b 37 5d 0a 58 | 09 5b 2b 30 2c 2b 35 5d |-5,+7].X|.[+0,+5]|
|00003a90| 5b 2b 35 2c 2b 37 5d 5b | 2b 30 2c 2b 35 5d 0a 58 |[+5,+7][|+0,+5].X|
|00003aa0| 20 20 20 20 20 20 20 20 | 5b 2d 34 2c 2b 30 5d 5b | |[-4,+0][|
|00003ab0| 2d 35 2c 2b 35 5d 0a 58 | 20 20 20 20 56 28 45 29 |-5,+5].X| V(E)|
|00003ac0| 0a 58 40 3b 0a 58 40 3a | 4e 0a 58 20 20 20 20 56 |.X@;.X@:|N.X V|
|00003ad0| 28 42 29 0a 58 20 20 20 | 20 20 20 20 20 5b 2b 33 |(B).X | [+3|
|00003ae0| 34 2c 2b 30 5d 5b 2b 30 | 2c 2d 35 5d 5b 2d 35 2c |4,+0][+0|,-5][-5,|
|00003af0| 2d 35 5d 5b 2d 32 2c 2b | 30 5d 0a 58 20 20 20 20 |-5][-2,+|0].X |
|00003b00| 20 20 20 20 5b 2b 30 2c | 2d 31 32 5d 5b 2b 31 30 | [+0,|-12][+10|
|00003b10| 2c 2b 32 5d 5b 2b 35 2c | 2d 35 5d 5b 2d 31 35 2c |,+2][+5,|-5][-15,|
|00003b20| 2d 31 35 5d 0a 58 20 20 | 20 20 20 20 20 20 5b 2d |-15].X | [-|
|00003b30| 31 30 2c 2b 30 5d 5b 2d | 35 2c 2d 35 5d 5b 2d 35 |10,+0][-|5,-5][-5|
|00003b40| 2c 2b 35 5d 5b 2d 35 2c | 2b 30 5d 0a 58 20 20 20 |,+5][-5,|+0].X |
|00003b50| 20 20 20 20 20 5b 2b 30 | 2c 2b 32 30 5d 5b 2b 35 | [+0|,+20][+5|
|00003b60| 2c 2b 30 5d 5b 2b 30 2c | 2b 31 30 5d 5b 2d 32 2c |,+0][+0,|+10][-2,|
|00003b70| 2b 30 5d 0a 58 20 20 20 | 20 20 20 20 20 5b 2d 35 |+0].X | [-5|
|00003b80| 2c 2b 35 5d 0a 58 20 20 | 20 20 56 28 45 29 0a 58 |,+5].X | V(E).X|
|00003b90| 40 3b 0a 58 40 3a 42 0a | 58 20 20 20 20 56 28 42 |@;.X@:B.|X V(B|
|00003ba0| 29 0a 58 20 20 20 20 20 | 20 20 20 5b 2b 33 34 2c |).X | [+34,|
|00003bb0| 2b 30 5d 5b 2b 30 2c 2d | 35 5d 5b 2d 35 2c 2d 35 |+0][+0,-|5][-5,-5|
|00003bc0| 5d 5b 2d 34 2c 2b 30 5d | 0a 58 09 5b 2b 30 2c 2d |][-4,+0]|.X.[+0,-|
|00003bd0| 31 32 5d 5b 2b 35 2c 2d | 33 5d 5b 2b 30 2c 2d 35 |12][+5,-|3][+0,-5|
|00003be0| 5d 5b 2d 33 2c 2d 35 5d | 0a 58 09 5b 2d 35 2c 2b |][-3,-5]|.X.[-5,+|
|00003bf0| 35 5d 5b 2b 30 2c 2d 37 | 5d 5b 2d 33 2c 2d 33 5d |5][+0,-7|][-3,-3]|
|00003c00| 5b 2b 32 2c 2d 33 5d 0a | 58 09 5b 2d 34 2c 2d 32 |[+2,-3].|X.[-4,-2|
|00003c10| 5d 5b 2d 34 2c 2b 32 5d | 0a 58 09 5b 2b 32 2c 2b |][-4,+2]|.X.[+2,+|
|00003c20| 33 5d 5b 2d 38 2c 2b 35 | 5d 5b 2d 33 2c 2b 35 5d |3][-8,+5|][-3,+5]|
|00003c30| 5b 2b 30 2c 2b 35 5d 0a | 58 09 5b 2b 35 2c 2b 33 |[+0,+5].|X.[+5,+3|
|00003c40| 5d 5b 2b 30 2c 2b 31 32 | 5d 0a 58 20 20 20 20 20 |][+0,+12|].X |
|00003c50| 20 20 20 5b 2d 34 2c 2b | 30 5d 5b 2d 35 2c 2b 35 | [-4,+|0][-5,+5|
|00003c60| 5d 0a 58 20 20 20 20 56 | 28 45 29 0a 58 40 3b 0a |].X V|(E).X@;.|
|00003c70| 58 40 3a 52 0a 58 20 20 | 20 20 56 28 42 29 0a 58 |X@:R.X | V(B).X|
|00003c80| 20 20 20 20 20 20 20 20 | 5b 2b 33 34 2c 2b 30 5d | |[+34,+0]|
|00003c90| 5b 2b 30 2c 2d 35 5d 5b | 2d 35 2c 2d 35 5d 5b 2d |[+0,-5][|-5,-5][-|
|00003ca0| 34 2c 2b 30 5d 5b 2b 30 | 2c 2d 38 5d 0a 58 09 5b |4,+0][+0|,-8].X.[|
|00003cb0| 2b 37 2c 2d 33 5d 5b 2b | 30 2c 2d 32 30 5d 0a 58 |+7,-3][+|0,-20].X|
|00003cc0| 09 5b 2d 37 2c 2b 30 5d | 5b 2b 30 2c 2b 37 5d 5b |.[-7,+0]|[+0,+7][|
|00003cd0| 2d 34 2c 2b 30 5d 5b 2b | 30 2c 2d 37 5d 5b 2d 38 |-4,+0][+|0,-7][-8|
|00003ce0| 2c 2b 30 5d 5b 2b 30 2c | 2b 37 5d 5b 2d 34 2c 2b |,+0][+0,|+7][-4,+|
|00003cf0| 30 5d 5b 2b 30 2c 2d 37 | 5d 5b 2d 37 2c 2b 30 5d |0][+0,-7|][-7,+0]|
|00003d00| 0a 58 09 5b 2b 30 2c 2b | 32 30 5d 5b 2b 37 2c 2b |.X.[+0,+|20][+7,+|
|00003d10| 33 5d 0a 58 09 5b 2b 30 | 2c 2b 38 5d 5b 2d 34 2c |3].X.[+0|,+8][-4,|
|00003d20| 2b 30 5d 5b 2d 35 2c 2b | 35 5d 0a 58 20 20 20 20 |+0][-5,+|5].X |
|00003d30| 56 28 45 29 0a 58 40 3b | 0a 58 40 3a 51 0a 58 20 |V(E).X@;|.X@:Q.X |
|00003d40| 20 20 20 56 28 42 29 0a | 58 20 20 20 20 20 20 20 | V(B).|X |
|00003d50| 20 5b 2b 33 34 2c 2b 30 | 5d 5b 2b 30 2c 2d 35 5d | [+34,+0|][+0,-5]|
|00003d60| 5b 2d 35 2c 2d 35 5d 5b | 2d 34 2c 2b 30 5d 0a 58 |[-5,-5][|-4,+0].X|
|00003d70| 09 5b 2b 30 2c 2d 35 5d | 5b 2b 33 2c 2d 32 5d 5b |.[+0,-5]|[+3,-2][|
|00003d80| 2d 33 2c 2d 33 5d 5b 2b | 33 2c 2d 33 5d 5b 2d 33 |-3,-3][+|3,-3][-3|
|00003d90| 2c 2d 32 5d 5b 2b 30 2c | 2d 35 5d 0a 58 09 5b 2b |,-2][+0,|-5].X.[+|
|00003da0| 35 2c 2d 33 5d 5b 2b 30 | 2c 2d 34 5d 5b 2d 35 2c |5,-3][+0|,-4][-5,|
|00003db0| 2d 33 5d 0a 58 09 5b 2b | 34 2c 2d 31 30 5d 5b 2d |-3].X.[+|4,-10][-|
|00003dc0| 38 2c 2b 35 5d 5b 2d 34 | 2c 2d 35 5d 5b 2d 34 2c |8,+5][-4|,-5][-4,|
|00003dd0| 2b 35 5d 5b 2d 38 2c 2d | 35 5d 5b 2b 34 2c 2b 31 |+5][-8,-|5][+4,+1|
|00003de0| 30 5d 0a 58 09 5b 2d 35 | 2c 2b 33 5d 5b 2b 30 2c |0].X.[-5|,+3][+0,|
|00003df0| 2b 34 5d 5b 2b 35 2c 2b | 33 5d 0a 58 09 5b 2b 30 |+4][+5,+|3].X.[+0|
|00003e00| 2c 2b 35 5d 5b 2d 33 2c | 2b 32 5d 5b 2b 33 2c 2b |,+5][-3,|+2][+3,+|
|00003e10| 33 5d 5b 2d 33 2c 2b 33 | 5d 5b 2b 33 2c 2b 32 5d |3][-3,+3|][+3,+2]|
|00003e20| 5b 2b 30 2c 2b 35 5d 0a | 58 09 5b 2d 34 2c 2b 30 |[+0,+5].|X.[-4,+0|
|00003e30| 5d 5b 2d 35 2c 2b 35 5d | 0a 58 20 20 20 20 56 28 |][-5,+5]|.X V(|
|00003e40| 45 29 0a 58 40 3b 0a 58 | 40 3a 4b 0a 58 20 20 20 |E).X@;.X|@:K.X |
|00003e50| 20 56 28 42 29 0a 58 0a | 58 20 20 20 20 20 20 20 | V(B).X.|X |
|00003e60| 20 5b 2b 33 34 2c 2b 30 | 5d 0a 58 09 5b 2b 30 2c | [+34,+0|].X.[+0,|
|00003e70| 2d 35 5d 5b 2d 35 2c 2d | 35 5d 5b 2d 34 2c 2b 30 |-5][-5,-|5][-4,+0|
|00003e80| 5d 0a 58 09 5b 2b 30 2c | 2d 34 5d 5b 2b 33 2c 2d |].X.[+0,|-4][+3,-|
|00003e90| 32 5d 5b 2d 33 2c 2d 33 | 5d 5b 2b 33 2c 2d 33 5d |2][-3,-3|][+3,-3]|
|00003ea0| 5b 2d 33 2c 2d 32 5d 5b | 2b 30 2c 2d 35 5d 0a 58 |[-3,-2][|+0,-5].X|
|00003eb0| 09 5b 2b 35 2c 2d 33 5d | 5b 2b 30 2c 2d 34 5d 5b |.[+5,-3]|[+0,-4][|
|00003ec0| 2d 35 2c 2d 33 5d 5b 2d | 35 2c 2b 30 5d 0a 58 09 |-5,-3][-|5,+0].X.|
|00003ed0| 5b 2b 30 2c 2d 36 5d 5b | 2b 35 2c 2b 30 5d 5b 2b |[+0,-6][|+5,+0][+|
|00003ee0| 30 2c 2d 34 5d 5b 2d 35 | 2c 2b 30 5d 5b 2b 30 2c |0,-4][-5|,+0][+0,|
|00003ef0| 2d 34 5d 0a 58 09 5b 2d | 36 2c 2b 30 5d 0a 58 09 |-4].X.[-|6,+0].X.|
|00003f00| 5b 2b 30 2c 2b 34 5d 5b | 2d 35 2c 2b 30 5d 5b 2b |[+0,+4][|-5,+0][+|
|00003f10| 30 2c 2b 34 5d 5b 2b 35 | 2c 2b 30 5d 5b 2b 30 2c |0,+4][+5|,+0][+0,|
|00003f20| 2b 36 5d 0a 58 09 5b 2d | 35 2c 2b 30 5d 5b 2d 35 |+6].X.[-|5,+0][-5|
|00003f30| 2c 2b 33 5d 5b 2b 30 2c | 2b 34 5d 5b 2b 35 2c 2b |,+3][+0,|+4][+5,+|
|00003f40| 33 5d 0a 58 09 5b 2b 30 | 2c 2b 35 5d 5b 2d 33 2c |3].X.[+0|,+5][-3,|
|00003f50| 2b 32 5d 5b 2b 33 2c 2b | 33 5d 5b 2d 33 2c 2b 33 |+2][+3,+|3][-3,+3|
|00003f60| 5d 5b 2b 33 2c 2b 32 5d | 5b 2b 30 2c 2b 34 5d 0a |][+3,+2]|[+0,+4].|
|00003f70| 58 09 5b 2d 34 2c 2b 30 | 5d 5b 2d 35 2c 2b 35 5d |X.[-4,+0|][-5,+5]|
|00003f80| 0a 58 20 20 20 20 56 28 | 45 29 0a 58 40 3b 0a 58 |.X V(|E).X@;.X|
|00003f90| 57 28 50 28 4d 31 29 29 | 0a 58 57 28 50 31 29 0a |W(P(M1))|.XW(P1).|
|00003fa0| 58 57 28 53 30 29 0a 58 | 0a 58 57 28 49 30 29 0a |XW(S0).X|.XW(I0).|
|00003fb0| 58 0a 58 50 5b 31 37 30 | 2c 35 36 5d 20 40 52 0a |X.XP[170|,56] @R.|
|00003fc0| 58 50 5b 2b 36 30 2c 2b | 30 5d 20 40 4e 0a 58 50 |XP[+60,+|0] @N.XP|
|00003fd0| 5b 2b 36 30 2c 2b 30 5d | 20 40 42 0a 58 50 5b 2b |[+60,+0]| @B.XP[+|
|00003fe0| 36 30 2c 2b 30 5d 20 40 | 51 0a 58 50 5b 2b 36 30 |60,+0] @|Q.XP[+60|
|00003ff0| 2c 2b 30 5d 20 40 4b 0a | 58 50 5b 2b 36 30 2c 2b |,+0] @K.|XP[+60,+|
|00004000| 30 5d 20 40 42 0a 58 50 | 5b 2b 36 30 2c 2b 30 5d |0] @B.XP|[+60,+0]|
|00004010| 20 40 4e 0a 58 50 5b 2b | 36 30 2c 2b 30 5d 20 40 | @N.XP[+|60,+0] @|
|00004020| 52 0a 58 0a 58 50 5b 31 | 37 30 2c 31 31 36 5d 20 |R.X.XP[1|70,116] |
|00004030| 40 50 0a 58 50 5b 2b 36 | 30 2c 2b 30 5d 20 40 50 |@P.XP[+6|0,+0] @P|
|00004040| 0a 58 50 5b 2b 36 30 2c | 2b 30 5d 20 40 50 0a 58 |.XP[+60,|+0] @P.X|
|00004050| 50 5b 2b 36 30 2c 2b 30 | 5d 20 40 50 0a 58 50 5b |P[+60,+0|] @P.XP[|
|00004060| 2b 36 30 2c 2b 30 5d 20 | 40 50 0a 58 50 5b 2b 36 |+60,+0] |@P.XP[+6|
|00004070| 30 2c 2b 30 5d 20 40 50 | 0a 58 50 5b 2b 36 30 2c |0,+0] @P|.XP[+60,|
|00004080| 2b 30 5d 20 40 50 0a 58 | 50 5b 2b 36 30 2c 2b 30 |+0] @P.X|P[+60,+0|
|00004090| 5d 20 40 50 0a 58 0a 58 | 57 28 49 33 29 0a 58 0a |] @P.X.X|W(I3).X.|
|000040a0| 58 50 5b 31 37 30 2c 34 | 31 36 5d 20 40 50 0a 58 |XP[170,4|16] @P.X|
|000040b0| 50 5b 2b 36 30 2c 2b 30 | 5d 20 40 50 0a 58 50 5b |P[+60,+0|] @P.XP[|
|000040c0| 2b 36 30 2c 2b 30 5d 20 | 40 50 0a 58 50 5b 2b 36 |+60,+0] |@P.XP[+6|
|000040d0| 30 2c 2b 30 5d 20 40 50 | 0a 58 50 5b 2b 36 30 2c |0,+0] @P|.XP[+60,|
|000040e0| 2b 30 5d 20 40 50 0a 58 | 50 5b 2b 36 30 2c 2b 30 |+0] @P.X|P[+60,+0|
|000040f0| 5d 20 40 50 0a 58 50 5b | 2b 36 30 2c 2b 30 5d 20 |] @P.XP[|+60,+0] |
|00004100| 40 50 0a 58 50 5b 2b 36 | 30 2c 2b 30 5d 20 40 50 |@P.XP[+6|0,+0] @P|
|00004110| 0a 58 0a 58 50 5b 31 37 | 30 2c 34 37 36 5d 20 40 |.X.XP[17|0,476] @|
|00004120| 52 0a 58 50 5b 2b 36 30 | 2c 2b 30 5d 20 40 4e 0a |R.XP[+60|,+0] @N.|
|00004130| 58 50 5b 2b 36 30 2c 2b | 30 5d 20 40 42 0a 58 50 |XP[+60,+|0] @B.XP|
|00004140| 5b 2b 36 30 2c 2b 30 5d | 20 40 51 0a 58 50 5b 2b |[+60,+0]| @Q.XP[+|
|00004150| 36 30 2c 2b 30 5d 20 40 | 4b 0a 58 50 5b 2b 36 30 |60,+0] @|K.XP[+60|
|00004160| 2c 2b 30 5d 20 40 42 0a | 58 50 5b 2b 36 30 2c 2b |,+0] @B.|XP[+60,+|
|00004170| 30 5d 20 40 4e 0a 58 50 | 5b 2b 36 30 2c 2b 30 5d |0] @N.XP|[+60,+0]|
|00004180| 20 40 52 0a 45 4e 44 5f | 4f 46 5f 62 6f 61 72 64 | @R.END_|OF_board|
|00004190| 69 6e 69 74 0a 69 66 20 | 74 65 73 74 20 32 32 36 |init.if |test 226|
|000041a0| 34 20 2d 6e 65 20 60 77 | 63 20 2d 63 20 3c 62 6f |4 -ne `w|c -c <bo|
|000041b0| 61 72 64 69 6e 69 74 60 | 3b 20 74 68 65 6e 0a 20 |ardinit`|; then. |
|000041c0| 20 20 20 65 63 68 6f 20 | 73 68 61 72 3a 20 5c 22 | echo |shar: \"|
|000041d0| 62 6f 61 72 64 69 6e 69 | 74 5c 22 20 75 6e 70 61 |boardini|t\" unpa|
|000041e0| 63 6b 65 64 20 77 69 74 | 68 20 77 72 6f 6e 67 20 |cked wit|h wrong |
|000041f0| 73 69 7a 65 21 0a 66 69 | 0a 23 20 65 6e 64 20 6f |size!.fi|.# end o|
|00004200| 66 20 6f 76 65 72 77 72 | 69 74 69 6e 67 20 63 68 |f overwr|iting ch|
|00004210| 65 63 6b 0a 66 69 0a 65 | 63 68 6f 20 73 68 61 72 |eck.fi.e|cho shar|
|00004220| 3a 20 45 6e 64 20 6f 66 | 20 73 68 65 6c 6c 20 61 |: End of| shell a|
|00004230| 72 63 68 69 76 65 2e 0a | 65 78 69 74 20 30 0a |rchive..|exit 0. |
+--------+-------------------------+-------------------------+--------+--------+