home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / compsrcs / games / volume01 / lotto < prev    next >
Encoding:
Internet Message Format  |  1991-08-27  |  17.0 KB

  1. From mipos3!intelca!oliveb!ames!ll-xn!husc6!mit-eddie!uw-beaver!tektronix!tekgen!tekred!games-request Wed Jul  1 07:25:35 PDT 1987
  2. Article 11 of comp.sources.games:
  3. Path: td2cad!mipos3!intelca!oliveb!ames!ll-xn!husc6!mit-eddie!uw-beaver!tektronix!tekgen!tekred!games-request
  4. From: games-request@tekred.TEK.COM
  5. Newsgroups: comp.sources.games
  6. Subject: v01i065: lotto - guess the winning numbers
  7. Message-ID: <1355@tekred.TEK.COM>
  8. Date: 29 Jun 87 23:45:16 GMT
  9. Expires: 29 Jul 87 23:40:10 GMT
  10. Sender: billr@tekred.TEK.COM
  11. Lines: 542
  12. Approved: billr@tekred.TEK.COM
  13.  
  14. Submitted by: Bruce Holloway <drivax!holloway@ames.arpa>
  15. Comp.sources.games: Volume 1, Issue 65
  16. Archive-name: lotto
  17.  
  18.     [OK, now you too can enter the lottery and win (if you
  19.      can win at lotto-droid).    -br]
  20.  
  21. Here's a little program I whipped up after getting one too many offers
  22. for little devices that would pick numbers for you, psychics who've
  23. predicted my lucky, guaranteed numbers, and people who hawk scientific
  24. methods for figuring out numbers.
  25.  
  26. Well, this is my entry into the fray, and if you win a million bucks, feel
  27. free to float some my way.
  28.  
  29. (Oh yeah - some real life testimonials...)
  30.     ********
  31.  
  32. I was so confident that LOTTO-DROID would fulfill my wildest fantasies, I 
  33. quit my job! Now I'm broke and living on welfare, but I still play, every 
  34. day! - D.O., Burlington, VT. 
  35.  
  36. I wouldn't give up my new subscription to GiantsVision for anything... 
  37. Thank you, LOTTO-DROID! - P.I., Melbourne. 
  38.  
  39. My friends laughed when they saw LOTTO-DROID. Now that I have a Rembrandt 
  40. and $694843.00 besides... they don't laugh anymore. - G.V., Montpelier, 
  41. VT. 
  42.  
  43. I wouldn't give up my new cellular telephone for anything... Thank you, 
  44. LOTTO-DROID! - T.E., Eugene, OR. 
  45.  
  46. I got a copy of LOTTO-DROID to buy a 30 foot yacht with, and another for a 
  47. string of pearlys, and another for a butler - the more you have, the more 
  48. you win! - M.T., Havana. 
  49.  
  50. My friends laughed when they saw LOTTO-DROID. Now that I have a sex change 
  51. operation and $319053.00 besides... they don't laugh anymore. - G.D., San 
  52. Diego. 
  53.  
  54. I thought I was stuck with my old husband, but with LOTTO-DROID, I can 
  55. have a new one every year! - S.B., San Diego. 
  56. -----------------------
  57. #! /bin/sh
  58. # This is a shell archive.  Remove anything before this line, then unpack
  59. # it by saving it into a file and typing "sh file".  To overwrite existing
  60. # files, type "sh file -c".  You can also feed this as standard input via
  61. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  62. # will see the following message at the end:
  63. #        "End of shell archive."
  64. # Contents:  README Makefile getopt.c lotto.c
  65. # Wrapped by billr@tekred on Mon Jun 29 16:35:22 1987
  66. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  67. if test -f README -a "${1}" != "-c" ; then 
  68.   echo shar: Will not over-write existing file \"README\"
  69. else
  70. echo shar: Extracting \"README\" \(654 characters\)
  71. sed "s/^X//" >README <<'END_OF_README'
  72. Xusage: lotto [-t n] [-b n] [-n n] [-?]
  73. X
  74. XLotto plays any of those games where you choose several numbers, and
  75. Xtry to match a random drawing.
  76. X
  77. XBut it's more than just another random number generator - this one works
  78. Xon the principle that, the more you believe, the better it works! It includes
  79. Xa nearly infinite number of testimonials from real, actual people who have
  80. Xused Lotto to change their lives.
  81. X
  82. XSwitches:
  83. X
  84. X    -?    This message.
  85. X    -h    Ditto.
  86. X    -t    Sets the top number of the range (default 49)
  87. X    -b    Sets the bottom number of the range (default 1)
  88. X    -n    Sets the number of numbers to pick (default 6, maximum 0)
  89. X
  90. XLet me know when you make your first million!
  91. X
  92. END_OF_README
  93. if test 654 -ne `wc -c <README`; then
  94.     echo shar: \"README\" unpacked with wrong size!
  95. fi
  96. # end of overwriting check
  97. fi
  98. if test -f Makefile -a "${1}" != "-c" ; then 
  99.   echo shar: Will not over-write existing file \"Makefile\"
  100. else
  101. echo shar: Extracting \"Makefile\" \(63 characters\)
  102. sed "s/^X//" >Makefile <<'END_OF_Makefile'
  103. Xlotto:    lotto.c
  104. X    cc -o lotto -O lotto.c /usr/local/bin/getopt.o
  105. END_OF_Makefile
  106. if test 63 -ne `wc -c <Makefile`; then
  107.     echo shar: \"Makefile\" unpacked with wrong size!
  108. fi
  109. # end of overwriting check
  110. fi
  111. if test -f getopt.c -a "${1}" != "-c" ; then 
  112.   echo shar: Will not over-write existing file \"getopt.c\"
  113. else
  114. echo shar: Extracting \"getopt.c\" \(2996 characters\)
  115. sed "s/^X//" >getopt.c <<'END_OF_getopt.c'
  116. X/*
  117. X    I got this off net.sources from Henry Spencer.
  118. X    It is a public domain getopt(3) like in System V.
  119. X    I have made the following modifications:
  120. X
  121. X    index(s,c) was added because too many people could
  122. X    not compile getopt without it.
  123. X
  124. X    A test main program was added, ifdeffed by GETOPT.
  125. X    This main program is a public domain implementation
  126. X    of the getopt(1) program like in System V.  The getopt
  127. X    program can be used to standardize shell option handling.
  128. X        e.g.  cc -DGETOPT getopt.c -o getopt
  129. X*/
  130. X#include <stdio.h>
  131. X
  132. X#ifndef lint
  133. Xstatic    char    sccsfid[] = "@(#) getopt.c 5.0 (UTZoo) 1985";
  134. X#endif
  135. X
  136. X#define    ARGCH    (int)':'
  137. X#define BADCH     (int)'?'
  138. X#define EMSG     ""
  139. X#define    ENDARGS  "--"
  140. X
  141. X/* this is included because index is not on some UNIX systems */
  142. Xstatic
  143. Xchar *
  144. Xindex (s, c)
  145. Xregister    char    *s;
  146. Xregister    int     c;
  147. X    {
  148. X    while (*s)
  149. X        if (c == *s) return (s);
  150. X        else s++;
  151. X    return (NULL);
  152. X    }
  153. X
  154. X/*
  155. X * get option letter from argument vector
  156. X */
  157. Xint    opterr = 1,        /* useless, never set or used */
  158. X    optind = 1,        /* index into parent argv vector */
  159. X    optopt;            /* character checked for validity */
  160. Xchar    *optarg;        /* argument associated with option */
  161. X
  162. X#define tell(s)    fputs(*nargv,stderr);fputs(s,stderr); \
  163. X        fputc(optopt,stderr);fputc('\n',stderr);return(BADCH);
  164. X
  165. X
  166. Xgetopt(nargc,nargv,ostr)
  167. Xint    nargc;
  168. Xchar    **nargv,
  169. X    *ostr;
  170. X{
  171. X    static char    *place = EMSG;    /* option letter processing */
  172. X    register char    *oli;        /* option letter list index */
  173. X    char    *index();
  174. X
  175. X    if(!*place) {            /* update scanning pointer */
  176. X        if(optind >= nargc || *(place = nargv[optind]) != '-' || !*++place) return(EOF);
  177. X        if (*place == '-') {    /* found "--" */
  178. X            ++optind;
  179. X            return(EOF);
  180. X        }
  181. X    }                /* option letter okay? */
  182. X    if ((optopt = (int)*place++) == ARGCH || !(oli = index(ostr,optopt))) {
  183. X        if(!*place) ++optind;
  184. X        tell(": illegal option -- ");
  185. X    }
  186. X    if (*++oli != ARGCH) {        /* don't need argument */
  187. X        optarg = NULL;
  188. X        if (!*place) ++optind;
  189. X    }
  190. X    else {                /* need an argument */
  191. X        if (*place) optarg = place;    /* no white space */
  192. X        else if (nargc <= ++optind) {    /* no arg */
  193. X            place = EMSG;
  194. X            tell(": option requires an argument -- ");
  195. X        }
  196. X         else optarg = nargv[optind];    /* white space */
  197. X        place = EMSG;
  198. X        ++optind;
  199. X    }
  200. X    return(optopt);            /* dump back option letter */
  201. X}
  202. X
  203. X
  204. X#ifdef GETOPT
  205. X
  206. X#ifndef lint
  207. Xstatic    char    sccspid[] = "@(#) getopt.c 5.1 (WangInst) 6/15/85";
  208. X#endif
  209. X
  210. Xmain (argc, argv) char **argv;
  211. X    {
  212. X    char    *optstring = argv[1];
  213. X    char    *argv0 = argv[0];
  214. X    extern    int     optind;
  215. X    extern    char    *optarg;
  216. X    int     opterr = 0;
  217. X    int     C;
  218. X    char    *opi;
  219. X    if (argc == 1)
  220. X        {
  221. X        fprintf (stderr, "Usage: %s optstring args\n", argv0);
  222. X        exit (1);
  223. X        }
  224. X    argv++;
  225. X    argc--;
  226. X    argv[0] = argv0;
  227. X    while ((C = getopt (argc, argv, optstring)) != EOF)
  228. X        {
  229. X        if (C == BADCH) opterr++;
  230. X        printf ("-%c ", C);
  231. X        opi = index (optstring, C);
  232. X        if (opi && opi[1] == ARGCH)
  233. X            if (optarg)
  234. X                printf ("\"%s\" ", optarg);
  235. X            else opterr++;
  236. X        }
  237. X    printf ("%s", ENDARGS);
  238. X    while (optind < argc)
  239. X        printf (" \"%s\"", argv[optind++]);
  240. X    putchar ('\n');
  241. X    exit (opterr);
  242. X    }
  243. X
  244. X#endif
  245. END_OF_getopt.c
  246. if test 2996 -ne `wc -c <getopt.c`; then
  247.     echo shar: \"getopt.c\" unpacked with wrong size!
  248. fi
  249. # end of overwriting check
  250. fi
  251. if test -f lotto.c -a "${1}" != "-c" ; then 
  252.   echo shar: Will not over-write existing file \"lotto.c\"
  253. else
  254. echo shar: Extracting \"lotto.c\" \(9116 characters\)
  255. sed "s/^X//" >lotto.c <<'END_OF_lotto.c'
  256. X#include <stdio.h>
  257. X
  258. X#define    DFTHIGH    49        /* Default high number of range */
  259. X#define    DFTLOW    1        /* Default low number of range */
  260. X#define    DFTNUM    6        /* Default number of numbers to pick */
  261. X#define    MAXCOL    75        /* Screen Width */
  262. X
  263. Xint *mixem;
  264. X
  265. Xchar iline[512];
  266. X
  267. Xint high = DFTHIGH;        /* Highest Number */
  268. Xint low = DFTLOW;        /* Lowest Number */
  269. Xint number = DFTNUM;        /* Number of numbers to pick */
  270. Xint range;            /* Range of numbers */
  271. Xint numtest = 3;        /* Number of testimonials */
  272. X
  273. Xchar *order[] = {
  274. X    "FIRST", "SECOND", "THIRD", "FOURTH", "FIFTH", "SIXTH", "SEVENTH",
  275. X    "EIGHTH", "NINTH", "TENTH"
  276. X    };
  277. X
  278. X#define    MAXNUM    ((sizeof order)/sizeof(char *))
  279. X
  280. Xchar *testimony[] = {
  281. X    "The first time I used LOTTO-DROID, I won ~$!",
  282. X    "I was unemployed, in debt for ~$, but now I have a ~T and a new ~T!",
  283. X    "Before I found LOTTO-DROID, I could only DREAM of winning ~$, but now that I have it, I'm looking forward to my first ~T!",
  284. X    "I never won a thing in my life, until I won the lottery with LOTTO-DROID.",
  285. X    "With LOTTO-DROID, I have a steady annual income of ~$ for the first time in my life!",
  286. X    "I thought I was stuck with my old ~T, but with LOTTO-DROID, I can have a new one every year!",
  287. X    "I saw those people on TV win a ~T or a ~T, but I never thought it could be me. Then I won ~$ with LOTTO-DROID!",
  288. X    "My friends laughed when they saw LOTTO-DROID. Now that I have a ~T and ~$ besides... they don't laugh anymore.",
  289. X    "I was so confident that LOTTO-DROID would fulfill my wildest fantasies, I quit my job! Now I'm broke and living on welfare, but I still play, every day!",
  290. X    "I got a copy of LOTTO-DROID to buy a ~T with, and another for a ~T, and another for a ~T - the more you have, the more you win!",
  291. X    "When my clients come to me to buy a ~T, I tell them to get a copy of LOTTO-DROID first.",
  292. X    "I didn't *always* have a ~T... but it was the first thing I got after winning ~$ with LOTTO-DROID!",
  293. X    "I wouldn't give up my new ~T for anything... Thank you, LOTTO-DROID!",
  294. X    "I've got a ~T in the garage and ~$ in the bank - thanks to LOTTO-DROID."
  295. X    };
  296. X
  297. X#define    NUMTESTIMONY    ((sizeof testimony)/sizeof(char *))
  298. X
  299. Xchar *things[] = {
  300. X    "Corvette","Lamborghini","home in Pebble Beach","Florida condo",
  301. X    "vacation home","ceramic dalmatian","husband","wife",
  302. X    "case of herpes","30 foot yacht","living room set",
  303. X    "mink stoll","set of clothes","Picasso","Rembrandt","Da Vinci",
  304. X    "sailboat","set of plastic silverware","selection of blue chip stocks",
  305. X    "mortgage","string of pearlys","cubic zirconia diamond","nanny",
  306. X    "live in lover","personal maid","butler","Learjet","Rolls Royce",
  307. X    "Caribbean island","five year membership in Club Med",
  308. X    "luxury suite in the PTL theme park","Presidential nomination",
  309. X    "matched pen and pencil set","rack full of wire coat hangers",
  310. X    "condo on Park Avenue","condo on Pennsylvania Avenue",
  311. X    "child on the way","seat on the stock exchange",
  312. X    "gift certificate for the Home Shopping Network",
  313. X    "thousand bags of Doritos","marijauna ranch in Nicaragua",
  314. X    "documentary of my life on PBS",
  315. X    "television station that shows the movies *I* want to watch",
  316. X    "Mac II","IBM PS/2","Amiga 2000","Atari Mega ST","Epson QX-10",
  317. X    "Rolex","meerschaum pipe","free movie rental",
  318. X    "reserved seat at the next Superbowl","Turbo Porsche",
  319. X    "\"nugget\" bracelet","platinum tooth filling","facelift",
  320. X    "stretch limo","cellular telephone","plot in Forest Lawn",
  321. X    "major Hollywood audition","cruise around the world",
  322. X    "sense of self-worth","fatal disease","reason to go on living",
  323. X    "sex change operation","embassy post in the Marines",
  324. X    "night with Gary Hart","ministry","Suzuki Samurai",
  325. X    "sumo wrestler","subscription to GiantsVision","projection TV",
  326. X    "baseball team","basketball team","NBA franchise",
  327. X    "Jazzercise membership","barrel of pickels","herd of cattle",
  328. X    "space shuttle","private jet","phone call from the President"
  329. X    };
  330. X
  331. X#define    NUMTHINGS    ((sizeof things)/sizeof(char *))
  332. X
  333. Xchar *locs[] = {
  334. X    "Sydney","Melbourne","Brasilia","Juneau","Honolulu","Anchorage",
  335. X    "Fairbanks","Hartford","Rochester","Burlington, VT","Montpelier, VT",
  336. X    "Manchester, NH","Linwood, MA","Whitinsville, MA","Worcester, MA",
  337. X    "Guam","Samoa","Mariana's Trench","Fiji","Mt. St. Helens",
  338. X    "Dover, NH","Seaside, CA","Los Angeles","New York City",
  339. X    "Great Neck","Pittsburgh","Boston","Providence, RI","Buffalo",
  340. X    "somewhere in Kansas","Minneapolis","San Jose","San Francisco",
  341. X    "Freiberg","Houston","Dallas","St. Louis","Chicago","Miami",
  342. X    "Las Vegas","Nashville","Tijuana","Havana","Philadelphia",
  343. X    "San Diego","Eugene, OR","Seattle","Sacramento","Portland, ME",
  344. X    "Eureka, CA","Sunnyvale, CA","San Juan","Tibet","Beijing",
  345. X    "Cincinnatti","Lansing, MI","Cleveland","Gary, IN","Little Rock",
  346. X    "Tallahasee","Boise","Salt Lake City","Tulsa","Nebraska City"
  347. X    };
  348. X
  349. X#define    NUMLOCS        ((sizeof locs)/sizeof(char *))
  350. X
  351. Xchar usage[] =
  352. X
  353. X"usage: lotto [-t n] [-b n] [-n n] [-a n] [-?] [-h]\n\n\
  354. XLotto plays any of those games where you choose several numbers, and\n\
  355. Xtry to match a random drawing.\n\n\
  356. XBut it's more than just another random number generator - this one works\n\
  357. Xon the principle that, the more you believe, the better it works! It includes\n\
  358. Xa nearly infinite number of testimonials from real, actual people who have\n\
  359. Xused Lotto to change their lives.\n\nSwitches:\n\n\
  360. X\t-?\tThis message.\n\
  361. X\t-h\tDitto.\n\
  362. X\t-a\tNumber of testimonials, if wanted.\n\
  363. X\t-t\tSets the top number of the range (default %d)\n\
  364. X\t-b\tSets the bottom number of the range (default %d)\n\
  365. X\t-n\tSets the number of numbers to pick (default %d, maximum %d)\n\n\
  366. XLet me know when you make your first million!\n\n";
  367. X
  368. Xextern int optind;            /* Used by getopt */
  369. Xextern char *optarg;
  370. X
  371. Xextern int atoi(), getopt();
  372. Xextern char *gets(), *malloc();
  373. X
  374. Xmain(acnt,avar)
  375. Xint acnt;
  376. Xchar *avar[];
  377. X{
  378. X    int i, ni, t;
  379. X
  380. X    while((i=getopt(acnt,avar,"t:b:n:a:h?-")) != EOF){
  381. X    switch(i){
  382. X        case 'a':
  383. X        numtest = atoi(optarg);
  384. X        if(numtest < 1) numtest = 1;
  385. X        break;
  386. X        case 't':
  387. X        high = atoi(optarg);
  388. X        break;
  389. X        case 'b':
  390. X        low = atoi(optarg);
  391. X        break;
  392. X        case 'n':
  393. X        number = atoi(optarg);
  394. X        break;
  395. X        case '?':
  396. X        case 'h':
  397. X        printf(usage,high,low,number);
  398. X        return;
  399. X        }
  400. X    }
  401. X
  402. X    if(high < low){
  403. X    printf("The high number of the range should be >= the low number.\n");
  404. X    return;
  405. X    }
  406. X
  407. X    if(number < 1 || number > MAXNUM){
  408. X    printf("Sorry, can't pick that many numbers. Must be between 1 and %d.\n",MAXNUM);
  409. X    return;
  410. X    }
  411. X
  412. X    range = high-low+1;
  413. X    mixem = (int *)malloc(sizeof(int) * range);
  414. X
  415. X    if(!mixem){
  416. X    printf("Couldn't allocate enough memory for the numbers!\n");
  417. X    return;
  418. X    }
  419. X
  420. X    srand(time(0L));            /* Randomize */
  421. X
  422. X    printf("LOTTO-DROID\n\n");
  423. X    printf("Win the lottery the way the experts do!\n\n");
  424. X
  425. X    if(yesno("Do you want to hear some testimonials from REAL PEOPLE? ")){
  426. X    printf("\n");
  427. X    for(i=0; i<numtest; ++i){
  428. X        testify();
  429. X        printf("\n");
  430. X        }
  431. X    }
  432. X
  433. X    printf("\nPut the power of RANDOM NUMBERS to work FOR YOU!\n");
  434. X    printf("Can %d lottery winners be wrong? You decide!\n\n",rnd(10000));
  435. X
  436. X    while(!yesno("Do you believe? "))
  437. X    printf("RANDOM NUMBERS only work if YOU BELIEVE!\n");
  438. X
  439. X    printf("\n");
  440. X
  441. X    if(yesno("Do you REALLY believe? "))
  442. X    printf("Don't tell me, tell them RANDOM NUMBERS!\n\n");
  443. X    else
  444. X    printf("Deep in your heart, I KNOW you believe!\n\n");
  445. X
  446. X    for(i=0; i<range; ++i) *(mixem+i) = i;
  447. X
  448. X    for(i=0; i<range; ++i){
  449. X    ni = rnd(range);
  450. X    t = *(mixem+i);
  451. X    *(mixem+i) = *(mixem+ni);
  452. X    *(mixem+ni) = t;
  453. X    }
  454. X
  455. X    printf("I can FEEL the POWER commin' over me....");
  456. X    fflush(stdout); sleep(1);
  457. X    printf("It's the POWER of RANDOM NUMBERS!\n\n");
  458. X
  459. X    for(i=0; i<number; ++i){
  460. X    sleep(1);
  461. X    printf("Your %s number is %d!\n",order[i],*(mixem+i)+low);
  462. X    }
  463. X
  464. X    sleep(1);
  465. X    printf("\nI BELIEVE! you will win!\n");
  466. X}
  467. X
  468. Xyesno(s)
  469. Xchar *s;
  470. X{
  471. X    char *s1;
  472. X
  473. X    for(;;){
  474. X    printf("%s",s);
  475. X    s1 = gets(iline);
  476. X    if(!s1) return(0);
  477. X    if(iline[0] == 'y' || iline[0] == 'Y') return(1);
  478. X    if(iline[0] == 'n' || iline[0] == 'N') return(0);
  479. X    printf("Yes or No! ");
  480. X    }
  481. X}
  482. X
  483. Xint col=0;
  484. Xchar token[80];
  485. X
  486. Xtestify(){
  487. X    sprintf(iline,"%s - %c.%c., %s.",testimony[rnd(NUMTESTIMONY)],
  488. X                rnd(26)+'A', rnd(26)+'A',
  489. X                locs[rnd(NUMLOCS)]);
  490. X    tokenize(iline);
  491. X    if(col){
  492. X    printf("\n");
  493. X    col = 0;
  494. X    }
  495. X}
  496. X
  497. Xint isspace(ch)
  498. Xint ch;
  499. X{
  500. X    return(ch == ' ');
  501. X}
  502. X
  503. Xint rnd(n)
  504. Xint n;
  505. X{
  506. X    return((rand() & 0x7FFF) % n);
  507. X}
  508. X
  509. Xtokenize(s)
  510. Xchar *s;
  511. X{
  512. X    char tmptok[80];
  513. X    char *s1;
  514. X    int l;
  515. X
  516. Xfor(;;){
  517. X
  518. X    while(isspace(*s)) ++s;
  519. X    if(!*s) return;
  520. X    for(s1=token; *s && !isspace(*s);) *s1++ = *s++;
  521. X    *s1++ = ' ';
  522. X    *s1 = 0;
  523. X    l = (s1-token);
  524. X    if(l > 1 && token[0] == '~'){
  525. X    switch(token[1]){
  526. X        case '$':
  527. X        sprintf(tmptok,"$%d%02d.00",rnd(10000),rnd(100));
  528. X        break;
  529. X        case 'T':
  530. X        strcpy(tmptok,things[rnd(NUMTHINGS)]);
  531. X        break;
  532. X        default:
  533. X        strcpy(tmptok,">>WHOOPS<<");
  534. X        break;
  535. X        }
  536. X    strcat(tmptok,&token[2]);
  537. X    tokenize(tmptok);
  538. X    continue;
  539. X    }
  540. X    if((col + l) > MAXCOL){
  541. X    printf("\n");
  542. X    col = 0;
  543. X    }
  544. X    printf("%s",token);
  545. X    col += l;
  546. X    }
  547. X}
  548. END_OF_lotto.c
  549. if test 9116 -ne `wc -c <lotto.c`; then
  550.     echo shar: \"lotto.c\" unpacked with wrong size!
  551. fi
  552. # end of overwriting check
  553. fi
  554. echo shar: End of shell archive.
  555. exit 0
  556.  
  557.  
  558.