Annotation of 43BSDReno/games/backgammon/teachgammon/data.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1980 Regents of the University of California.
                      3:  * All rights reserved.
                      4:  *
                      5:  * Redistribution and use in source and binary forms are permitted
                      6:  * provided that: (1) source distributions retain this entire copyright
                      7:  * notice and comment, and (2) distributions including binaries display
                      8:  * the following acknowledgement:  ``This product includes software
                      9:  * developed by the University of California, Berkeley and its contributors''
                     10:  * in the documentation or other materials provided with the distribution
                     11:  * and in all advertising materials mentioning features or use of this
                     12:  * software. Neither the name of the University nor the names of its
                     13:  * contributors may be used to endorse or promote products derived
                     14:  * from this software without specific prior written permission.
                     15:  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                     16:  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                     17:  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     18:  */
                     19: 
                     20: #ifndef lint
                     21: static char sccsid[] = "@(#)data.c     5.4 (Berkeley) 6/1/90";
                     22: #endif /* not lint */
                     23: 
                     24: #include "tutor.h"
                     25: 
                     26: int    maxmoves = 23;
                     27: 
                     28: char  *text0[] = {
                     29:        "To start the game, I roll a 3, and you roll a 1.  This means",
                     30:        "that I get to start first.  I move 8-5,6-5 since this makes a",
                     31:        "new point and helps to trap your back men on 1.  You should be",
                     32:        "able to do a similar move with your roll.",
                     33:        0
                     34: };
                     35: 
                     36: char  *text1[] = {
                     37:        "Now you shall see a move using doubles.  I just rolled double",
                     38:        "5's.  I will move two men from position 13 to position 3.  The",
                     39:        "notation for this is 13-8,13-8,8-3,8-3.  You will also roll dou-",
                     40:        "bles, but you will be able to make a much stronger move.",
                     41:        0
                     42: };
                     43: 
                     44: char  *text2[] = {
                     45:        "Excellent!  As you can see, you are beginning to develop a wall",
                     46:        "which is trapping my men on position 24.  Also, moving your back",
                     47:        "men forward not only improves your board position safely, but it",
                     48:        "thwarts my effort to make a wall.",
                     49:        "",
                     50:        "My roll now is 5 6.  Normally, I would use that roll to move from",
                     51:        "position 24 to position 13 (24-18-13), but your new point prevents",
                     52:        "that.  Instead, I am forced to move from 13 to 2, where my man is",
                     53:        "open but cannot be hit.",
                     54:        0
                     55: };
                     56: 
                     57: char  *text3[] = {
                     58:        "As you can see, although you left a man open, it is a rela-",
                     59:        "tively safe move to an advantageous position, which might help",
                     60:        "you make a point later.  Only two rolls (4 5 or 5 4) will allow",
                     61:        "me to hit you.  With an unprecedented amount of luck, I happen",
                     62:        "to roll a 4 5 and hit you as just mentioned.",
                     63:        0
                     64: };
                     65: 
                     66: char  *text4[] = {
                     67:        "You're pretty lucky yourself, you know.  I follow by rolling 2 3",
                     68:        "and moving 25-22,24-22, forming a new point.",
                     69:        0
                     70: };
                     71: 
                     72: char  *text5[] = {
                     73:        "Not a spectacular move, but a safe one.  I follow by rolling 6 1.",
                     74:        "I decide to use this roll to move 22-16,16-17.  It leaves me with",
                     75:        "one man still open, but the blot is farther back on the board, and",
                     76:        "would suffer less of a loss by being hit.",
                     77:        0
                     78: };
                     79: 
                     80: char  *text6[] = {
                     81:        "By moving your two men from 17 to 20, you lessen my chance of",
                     82:        "getting my man off the board.  In fact, the odds are 5 to 4",
                     83:        "against me getting off.  I roll with the odds and helplessly",
                     84:        "receive a 3 5.",
                     85:        0
                     86: };
                     87: 
                     88: char  *text7[] = {
                     89:        "Note that the blot on 7 cannot be hit unless I get off the bar",
                     90:        "and have a 1 or a 6 left over, and doing so will leave two of",
                     91:        "my men open.  Also, the blot on 16 cannot be hit at all!  With",
                     92:        "a sigh of frustration, I roll double 6's and remain immobile.",
                     93:        0
                     94: };
                     95: 
                     96: char  *text8[] = {
                     97:        "See, you did not get hit and, you got to 'cover up' your open men.",
                     98:        "Quite an accomplishment.  Finally, I get off the bar by rolling",
                     99:        "6 2 and moving 25-23,23-17.",
                    100:        0
                    101: };
                    102: 
                    103: char  *text9[] = {
                    104:        "My venture off the bar did not last long.  However, I got lucky",
                    105:        "and rolled double 1's, allowing me to move 0-1,1-2,15-14,15-14.",
                    106:        0
                    107: };
                    108: 
                    109: char  *text10[] = {
                    110:        "You are improving your position greatly and safely, and are well",
                    111:        "on the way to winning the game.  I roll a 6 2 and squeak past",
                    112:        "your back man.  Now the game becomes a race to the finish.",
                    113:        0
                    114: };
                    115: 
                    116: char  *text11[] = {
                    117:        "Now that it is merely a race, you are trying to get as many men",
                    118:        "as possible into the inner table, so you can start removing them.",
                    119:        "I roll a 3 4 and move my two men farthest back to position 11",
                    120:        "(15-11,14-11).",
                    121:        0
                    122: };
                    123: 
                    124: char  *text12[] = {
                    125:        "The race is still on, and you have seem to be doing all right.",
                    126:        "I roll 6 1 and move 14-8,13-12.",
                    127:        0
                    128: };
                    129: 
                    130: char  *text13[] = {
                    131:        "Notice that you get to remove men the instant you have all of",
                    132:        "them at your inner table, even if it is the middle of a turn.",
                    133:        "I roll 1 2 and move 13-11,12-11.",
                    134:        0
                    135: };
                    136: 
                    137: char  *text14[] = {
                    138:        "Although you could have removed a man, this move illustrates two",
                    139:        "points:  1) You never have to remove men, and 2) You should try",
                    140:        "to spread out your men on your inner table.  Since you have one",
                    141:        "man on each position, you should be able to remove at least two",
                    142:        "men next turn.  I roll 2 5 and move 8-6,11-6.",
                    143:        0
                    144: };
                    145: 
                    146: char  *text15[] = {
                    147:        "This time you were able to remove men.  I roll 3 4 and move",
                    148:        "11-7,11-8.  The race continues.",
                    149:        0
                    150: };
                    151: 
                    152: char  *text16[] = {
                    153:        "More holes are opening up in your inner table, but you are",
                    154:        "still very much ahead.  If we were doubling, you would have",
                    155:        "doubled long ago.  I roll 2 6 and move 8-6,11-5.",
                    156:        0
                    157: };
                    158: 
                    159: char  *text17[] = {
                    160:        "It pays to spread out your men.  I roll 3 5 and move 7-4,8-3.",
                    161:        0
                    162: };
                    163: 
                    164: char  *text18[] = {
                    165:        "You can only remove some men, but you spread out more and",
                    166:        "more, in order to be able to remove men more efficiently.",
                    167:        "I roll double 3's, which help, but not that much.  I move",
                    168:        "8-5,3-0,3-0,3-0.",
                    169:        0
                    170: };
                    171: 
                    172: char  *text19[] = {
                    173:        "I roll 1 4 and move 5-4,4-0.",
                    174:        0
                    175: };
                    176: 
                    177: char  *text20[] = {
                    178:        "You are now nicely spread out to win a game.  I roll 5 6 and",
                    179:        "move 5-0,6-0.",
                    180:        0
                    181: };
                    182: 
                    183: char  *text21[] = {
                    184:        "Any minute now.  Just a few short steps from victory.  I roll",
                    185:        "2 4 and move 6-4,4-0.",
                    186:        0
                    187: };
                    188: 
                    189: char  *text22[] = {
                    190:        "It looks pretty hopeless for me, but I play on, rolling 1 3 and",
                    191:        "moving 4-3,3-0.",
                    192:        0
                    193: };
                    194: 
                    195: char  *text23[] = {
                    196:        "Congratulations!  You just won a game of backgammon against the",
                    197:        "computer!  You will now be able to play a game, but remember,",
                    198:        "when you start playing, that doubling will be enabled, which",
                    199:        "will add another factor to the game...  Good luck!!",
                    200:        "",
                    201:        0
                    202: };
                    203: 
                    204: struct situatn  test[] = {
                    205:        {
                    206:                {0,2,0,0,0,0,-5,0,-3,0,0,0,5,-5,0,0,0,3,0,5,0,0,0,0,-2,0},
                    207:                3, 1, {8,6,0,0}, {5,5,0,0}, 4, 2, text0
                    208:        },
                    209:        {
                    210:                {0,2,0,0,0,-2,-4,0,-2,0,0,0,5,-5,0,0,0,2,0,4,0,2,0,0,-2,0},
                    211:                5, 5, {13,13,8,8}, {8,8,3,3}, 6, 6, text1
                    212:        },
                    213:        {
                    214:                {0,0,0,-2,0,-2,-4,2,-2,0,0,0,3,-3,0,0,0,2,2,4,0,2,0,0,-2,0},
                    215:                6, 5, {13,8,0,0}, {8,2,0,0}, 1, 2, text2
                    216:        },
                    217:        {
                    218:                {0,0,-1,-2,0,-2,-4,2,-2,0,0,0,2,-2,0,1,0,2,2,4,0,2,0,0,-2,0},
                    219:                4, 5, {24,20,0,0}, {20,15,0,0}, 2, 5, text3
                    220:        },
                    221:        {
                    222:                {0,0,0,-2,0,-2,-4,3,-2,0,0,0,2,-2,0,-1,0,2,2,4,0,2,0,0,-1,-1},
                    223:                2, 3, {25,24,0,0}, {22,22,0,0}, 4, 1, text4
                    224:        },
                    225:        {
                    226:                {0,0,0,-2,0,-2,-4,2,-2,0,0,0,3,-2,0,-1,0,2,2,4,0,2,-2,0,0,0},
                    227:                6, 1, {22,16,0,0}, {16,15,0,0}, 3, 3, text5
                    228:        },
                    229:        {
                    230:                {0,0,0,-2,0,-2,-4,2,-2,0,0,0,3,-2,0,-2,0,0,2,2,2,2,2,0,0,-1},
                    231:                3, 5, {0,0,0,0}, {0,0,0,0}, 5, 4, text6
                    232:        },
                    233:        {
                    234:                {0,0,0,-2,0,-2,-4,1,-2,0,0,0,3,-2,0,-2,1,0,2,2,2,2,2,0,0,-1},
                    235:                6, 6, {0,0,0,0}, {0,0,0,0}, 3, 6, text7
                    236:        },
                    237:        {
                    238:                {0,0,0,-2,0,-2,-4,0,-2,0,0,0,3,-2,0,-2,2,0,2,2,2,2,2,0,0,-1},
                    239:                2, 6, {25,23,0,0}, {23,17,0,0}, 5, 1, text8
                    240:        },
                    241:        {
                    242:                {0,0,0,-2,0,-2,-4,0,-2,0,0,0,2,-2,0,-2,2,0,3,2,2,2,2,0,0,-1},
                    243:                1, 1, {25,24,15,15}, {24,23,14,14}, 4, 6, text9
                    244:        },
                    245:        {
                    246:                {0,0,0,-2,0,-2,-4,0,-2,0,0,0,0,-2,-2,0,3,0,4,2,2,2,2,-1,0,0},
                    247:                6, 2, {23,17,0,0}, {17,15,0,0}, 1, 3, text10
                    248:        },
                    249:        {
                    250:                {0,0,0,-2,0,-2,-4,0,-2,0,0,0,0,-2,-2,-1,2,0,3,4,2,2,2,0,0,0},
                    251:                4, 3, {15,14,0,0}, {11,11,0,0}, 5, 3, text11
                    252:        },
                    253:        {
                    254:                {0,0,0,-2,0,-2,-4,0,-2,0,0,-2,0,-2,-1,0,0,0,3,5,2,3,2,0,0,0},
                    255:                6, 1, {14,13,0,0}, {8,12,0,0}, 4, 4, text12
                    256:        },
                    257:        {
                    258:                {0,0,0,-2,0,-2,-4,0,-3,0,0,-2,-1,-1,0,0,0,0,0,5,2,2,5,0,0,0},
                    259:                2, 1, {13,12,0,0}, {11,11,0,0}, 2, 1, text13
                    260:        },
                    261:        {
                    262:                {0,0,0,-2,0,-2,-4,0,-3,0,0,-4,0,0,0,0,0,0,0,5,2,2,3,1,1,0},
                    263:                2, 5, {8,11,0,0}, {6,6,0,0}, 6, 3, text14
                    264:        },
                    265:        {
                    266:                {0,0,0,-2,0,-2,-6,0,-2,0,0,-3,0,0,0,0,0,0,0,4,2,2,2,1,1,0},
                    267:                4, 3, {11,11,0,0}, {7,8,0,0}, 2, 5, text15
                    268:        },
                    269:        {
                    270:                {0,0,0,-2,0,-2,-6,-1,-3,0,0,-1,0,0,0,0,0,0,0,4,1,2,2,0,1,0},
                    271:                2, 6, {8,11,0,0}, {6,5,0,0}, 6, 1, text16
                    272:        },
                    273:        {
                    274:                {0,0,0,-2,0,-3,-7,-1,-2,0,0,0,0,0,0,0,0,0,0,3,1,2,2,0,0,0},
                    275:                5, 3, {8,7,0,0}, {3,4,0,0}, 5, 2, text17
                    276:        },
                    277:        {
                    278:                {0,0,0,-3,-1,-3,-7,0,-1,0,0,0,0,0,0,0,0,0,0,3,0,1,2,1,0,0},
                    279:                3, 3, {8,3,3,3}, {5,0,0,0}, 1, 6, text18
                    280:        },
                    281:        {
                    282:                {0,0,0,0,-1,-4,-7,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,1,0,0},
                    283:                1, 4, {4,5,0,0}, {0,4,0,0}, 2, 3, text19
                    284:        },
                    285:        {
                    286:                {0,0,0,0,-1,-3,-7,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0},
                    287:                5, 6, {6,5,0,0}, {0,0,0,0}, 1, 4, text20
                    288:        },
                    289:        {
                    290:                {0,0,0,0,-1,-2,-6,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0},
                    291:                2, 4, {4,6,0,0}, {0,4,0,0}, 6, 2, text21
                    292:        },
                    293:        {
                    294:                {0,0,0,0,-1,-2,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0},
                    295:                3, 1, {4,3,0,0}, {3,0,0,0}, 4, 3, text22
                    296:        },
                    297:        {
                    298:                {0,0,0,0,0,-2,-5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                    299:                0, 0, {0,0,0,0}, {0,0,0,0}, 0, 0, text23
                    300:        }
                    301: };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.