home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume39 / nhl / part01 / schedule.c < prev    next >
C/C++ Source or Header  |  1993-09-16  |  13KB  |  329 lines

  1. /*
  2.  * schedule.c : This file defines the teams, the schedule matrix,
  3.  *    special dates, and neutral sites for the season. It is the
  4.  *    the only file you should have to change for a new season.
  5.  *
  6.  * This file is for the 1993-94 season.
  7.  * Compiled by George Ferguson, ferguson@cs.rochester.edu, 20 Aug 1993.
  8.  *
  9.  * See the README file for instructions on updating this for a
  10.  * new season.
  11.  *
  12.  * This file is included directly in nhl.c. Don't bug me about it...
  13.  */
  14.  
  15. /*
  16.  * Set these to the starting and ending dates of the season.
  17.  * They have to be strings (ie., enclosed in double-quotes) and
  18.  * should be in form MM/DD/YYYY (the year must be all four digits).
  19.  * The START_DOW should be a capitalized string representing the
  20.  * day-of-the-week for the START_DATE. Check weekday[] in nhl.c for spelling.
  21.  */
  22. #define NHL_START_DATE        "10/5/1993"
  23. #define NHL_START_DOW        "Tuesday"
  24. #define NHL_END_DATE        "4/14/1994"
  25.  
  26. /*
  27.  * The list of teams referenced by the schedule[] array.
  28.  */
  29. #define NUM_TEAMS 26
  30.  
  31. struct _team_struct {
  32.     char *city;                    /* City name for team */
  33.     char *name;                    /* Team nickname */
  34.     char *abbrev;                /* Team code for cmd-line */
  35. } teams[NUM_TEAMS] = {
  36.     { "Anaheim",    "Mighty Ducks",    "ana" },
  37.     { "Boston",        "Bruins",    "bos" },
  38.     { "Buffalo",    "Sabres",    "buf" },
  39.     { "Calgary",    "Flames",    "cgy" },
  40.     { "Chicago",    "Blackhawks",    "chi" },
  41.     { "Dallas",        "Stars",    "dal" },
  42.     { "Detroit",    "Red Wings",    "det" },
  43.     { "Edmonton",    "Oilers",    "edm" },
  44.     { "Florida",    "Panthers",    "fla" },
  45.     { "Hartford",    "Whalers",    "hfd" },
  46.     { "Los Angeles",    "Kings",    "los" },
  47.     { "Montreal",    "Canadiens",    "mtl" },
  48.     { "New Jersey",    "Devils",    "njd" },
  49.     { "NY Islanders",    "Islanders",    "nyi" },
  50.     { "NY Rangers",    "Rangers",    "nyr" },
  51.     { "Ottawa",        "Senators",    "ott" },
  52.     { "Philadelphia",    "Flyers",    "phl" },
  53.     { "Pittsburgh",    "Penguins",    "pit" },
  54.     { "Quebec",        "Nordiques",    "que" },
  55.     { "St. Louis",    "Blues",    "stl" },
  56.     { "San Jose",    "Sharks",    "sjs" },
  57.     { "Tampa Bay",    "Lightning",    "tmp" },
  58.     { "Toronto",    "Maple Leafs",    "tor" },
  59.     { "Vancouver",    "Canucks",    "van" },
  60.     { "Washington",    "Capitals",    "wsh" },
  61.     { "Winnipeg",    "Jets",        "wpg" },
  62. };
  63.  
  64. #define NUM_DIVISIONS 4
  65. #define MAX_TEAMS_PER_DIVISION 7
  66.  
  67. struct _division_struct {
  68.     char *name;                    /* Division name */
  69.     char *teams[MAX_TEAMS_PER_DIVISION];    /* List of team abbrevs */
  70.     char *abbrev;                /* Division abbrev */
  71.     char flags[NUM_TEAMS];            /* Array of flags for teams */
  72. } divisions[NUM_DIVISIONS] = {
  73.     { "Northeast", { "bos","buf","hfd","mtl","ott","pit","que" }, "nea" },
  74.     { "Atlantic",  { "fla","njd","nyi","nyr","phl","tmp","wsh" }, "atl" },
  75.     { "Central",   { "chi","det","dal","stl","tor","wpg",NULL },  "ctl" },
  76.     { "Pacific",   { "ana","cgy","edm","los","sjs","van",NULL },  "pac" },
  77. };
  78.  
  79. /*
  80.  * Special dates for which there are no games this season:
  81.  */
  82. struct _special_struct {
  83.     int month,day;                    /* Date */
  84.     char *text;                        /* Message to print */
  85. } special_dates[] = {
  86.     { 12, 24, "Holiday Break" },
  87.     { 12, 25, "Holiday Break" },
  88.     {  1, 20, "All Star Break" },
  89.     {  1, 21, "All Star Break" },
  90.     {  1, 22, "All Star Game in New York City" },
  91.     {  1, 23, "All Star Break" },
  92.     {  0,  0, NULL },
  93. };
  94.  
  95. /*
  96.  * The list of neutral sites referenced in the schedule[] array
  97.  */
  98. char *neutral_sites[] = {
  99.     "Cleveland, OH",
  100.     "Halifax, NS",
  101.     "Hamilton, ON",
  102.     "Minneapolis, MN",
  103.     "Orlando, FL",
  104.     "Phoenix, AZ",
  105.     "Sacramento, CA",
  106.     "Saskatoon, SK",
  107. };
  108.  
  109. /*
  110.  * Schedule matrix:
  111.  *   Each string represents one day of the season, The Nth character in
  112.  *   the string represents what the Nth team (in the teams[] array) is
  113.  *   doing on that day. The entries are interpreted as follows:
  114.  *    -   : This team is idle
  115.  *    +   : This team is home
  116.  *    a-z : This team is away at the team given by the letter
  117.  *    A-Z : This team is the home team at a neutral site given by the letter
  118.  *   Accessors are defined here for accessing the array. This will make
  119.  *   it easier when the day comes that size of the league exceeds the
  120.  *   size of the alphabet. The accessors have to map from the characters
  121.  *   used in schedule[] into the teams[] and neutral_sites[] arrays.
  122.  */
  123.  
  124. #define ISIDLECODE(C)        ((C) == '-')
  125. #define ISHOMECODE(C)        ((C) == '+')
  126. #define ISAWAYCODE(C)        ((C) >= 'a' && (C) <= 'z')
  127. #define ISSITECODE(C)        ((C) >= 'A' && (C) <= 'Z')
  128.  
  129. #define TEAMCODETOINDEX(C)    ((int)((C) - 'a'))
  130. #define INDEXTOTEAMCODE(N)    ((char)((N) + 'a'))
  131.  
  132. #define SITECODETOINDEX(C)    ((int)((C) - 'A'))
  133. #define INDEXTOSITECODE(N)    ((char)((N) + 'A'))
  134.  
  135. char *schedule[] = {
  136.     "-o-+-+f------d+-+q--------", /* 10/5  */
  137.     "----+--+el+++--+--p-hm-kz+", /* 10/6  */
  138.     "-+b+-w--t--r--+--+-+do+---", /* 10/7  */
  139.     "+-----a+----yh----------+-", /* 10/8  */
  140.     "-+lxw+k-v++++-rtj+b+-+++mf", /* 10/9  */
  141.     "+-+-+----c+--a--+s+-k-q--e", /* 10/10 */
  142.     "-+-----x---b--+--------+o-", /* 10/11 */
  143.     "--q-f+--+-+-+k--+i-------m", /* 10/12 */
  144.     "+-----+a-+-j--+---og--+-w-", /* 10/13 */
  145.     "---u+--k+e+----i-v--++----", /* 10/14 */
  146.     "+a+---w-------c-y-----+-+-", /* 10/15 */
  147.     "-uykz+++-r++n+qv++lf++gh++", /* 10/16 */
  148.     "+--a----+------------i----", /* 10/17 */
  149.     "--+-+ecz---s------+------+", /* 10/18 */
  150.     "ox------+wi--++--n-u+-++--", /* 10/19 */
  151.     "m--h-l-+-+v++-----j--+----", /* 10/20 */
  152.     "---++p+-+----q-++-eGt-id-g", /* 10/21 */
  153.     "-h+----+--y---v--c---+--+-", /* 10/22 */
  154.     "ldj++se-m+-+++-n+++r++vu-q", /* 10/23 */
  155.     "-------+--o---+-----x--+h-", /* 10/24 */
  156.     "p--+-g+--------+--------d-", /* 10/25 */
  157.     "----+--u+-nm++--s-+e+----i", /* 10/26 */
  158.     "--d+-++--fg----+p----+-+xv", /* 10/27 */
  159.     "u+--+---+t-o-i+b-+r++-e---", /* 10/28 */
  160.     "+-h----+--z--v-------+--a+", /* 10/29 */
  161.     "-+x+r+sd++-++-jfm++b+il+u-", /* 10/30 */
  162.     "+--z+-------o-B-e---a----+", /* 10/31 */
  163.     "-----+---+---------j--f---", /* 11/1  */
  164.     "-g----+-+----+--iu+-+s-n--", /* 11/2  */
  165.     "+-Gj-a-+w+++k-+h-c-z-l+o-+", /* 11/3  */
  166.     "-+-b+-+------e--+-q---g---", /* 11/4  */
  167.     "+----u------a--z----+--y++", /* 11/5  */
  168.     "-+-l---t-n++-+s-wk++-b+---", /* 11/6  */
  169.     "+c+-++-es---u---+a+-+--q-f", /* 11/7  */
  170.     "--------------+------o----", /* 11/8  */
  171.     "F--+-a+g--d--+---ty++-u-+n", /* 11/9  */
  172.     "--+-----l+x++m+jc------+-o", /* 11/10 */
  173.     "d+-+++-bp---q--++e-+f+t-v-", /* 11/11 */
  174.     "--------------------------", /* 11/12 */
  175.     "-nq+wzrj-+++++yl++vkm++d++", /* 11/13 */
  176.     "x---+e--+-----+---i-o--+--", /* 11/14 */
  177.     "---+---w---p---+------+--d", /* 11/15 */
  178.     "--------+-----i-r+-xy--++-", /* 11/16 */
  179.     "+jm--+zl-+-++p-+-----fa--+", /* 11/17 */
  180.     "-+-ti---+q+Cpl-+++-+b-k-r-", /* 11/18 */
  181.     "x-+-----------v------+-+-c", /* 11/19 */
  182.     "-+-fv+m+++t++---bl++j+h-is", /* 11/20 */
  183.     "h-+--+t+--f--q--+--+c-----", /* 11/21 */
  184.     "d-p+-----------+------x+--", /* 11/22 */
  185.     "------u-+i-os-+---+-+-----", /* 11/23 */
  186.     "zr++h+x+-v-qcfp+++-y-+d+++", /* 11/24 */
  187.     "----------s-------+-------", /* 11/25 */
  188.     "++++d---b---t--c+y-+aq-z++", /* 11/26 */
  189.     "uws--g++j+l+-+nrv++-+++h--", /* 11/27 */
  190.     "------n------++----+----ot", /* 11/28 */
  191.     "--w-xh-+-p-----+------++--", /* 11/29 */
  192.     "-s-+-d----+-++m---+-----nk", /* 11/30 */
  193.     "+-v---j+-+-+---lh--w-++--a", /* 12/1  */
  194.     "k+i-----+-+-rb--x+-+--t+--", /* 12/2  */
  195.     "------+----y-+-g--n-+---+u", /* 12/3  */
  196.     "-+-+mt---++b+-w+dj++-k+sp-", /* 12/4  */
  197.     "+c+--+zfu---o-+-----+a---+", /* 12/5  */
  198.     "---p--+----+---+-------l-g", /* 12/6  */
  199.     "+--st--nay---+----+++u--+-", /* 12/7  */
  200.     "--p--+-ok+++l-++-f----+j-w", /* 12/8  */
  201.     "-+---D+-----+--f+-mg---bq-", /* 12/9  */
  202.     "--+c----z----------------+", /* 12/10 */
  203.     "-+jwb-+m-+++++-snv+kg++-l-", /* 12/11 */
  204.     "++--++-qfb------+--ae-z--+", /* 12/12 */
  205.     "--o-------p---++--+-----s-", /* 12/13 */
  206.     "g--+--+---rvn+---+---E-d--", /* 12/14 */
  207.     "wm--f+-++o-i+-+v---u+++h--", /* 12/15 */
  208.     "--r-------------++q-------", /* 12/16 */
  209.     "f-++-+++--c--+gy---dh-n++x", /* 12/17 */
  210.     "-v-+q-l--+w+s---+-+--++-jd", /* 12/18 */
  211.     "ei+-+x-++---+r+om++hsc-+--", /* 12/19 */
  212.     "z--+------d--------------+", /* 12/20 */
  213.     "----g-+x-------+++p--r-+q-", /* 12/21 */
  214.     "+--h-a-+++-+jli-----w-+---", /* 12/22 */
  215.     "-++x+kq--p+c+-y++bz+etmH++", /* 12/23 */
  216.     "--------------------------", /* 12/24 */
  217.     "--------------------------", /* 12/25 */
  218.     "+-n-t---v+a-o++j-y-+-E--+-", /* 12/26 */
  219.     "-p+-++f+---t---+c--+--e--h", /* 12/27 */
  220.     "n--u----ym+-++--r++-+s-k+-", /* 12/28 */
  221.     "----z+-+j+-h-st---++--f--+", /* 12/29 */
  222.     "y--+---d-------+-----p--+-", /* 12/30 */
  223.     "-D+++e+---gd--c-b+rzx--+-+", /* 12/31 */
  224.     "i-------+nw-p+-+-----y+-+-", /*  1/1  */
  225.     "v++t++-+-+-x-----jf+hEc+be", /*  1/2  */
  226.     "--------o-----++-p--------", /*  1/3  */
  227.     "----f+t---+u+m----k++wC---", /*  1/4  */
  228.     "---o-----+-s--++--F----p-j", /*  1/5  */
  229.     "e+--++u--A-----wf--j+-+--b", /*  1/6  */
  230.     "--+n---+m---++---ch-------", /*  1/7  */
  231.     "t+-ry-k-b+++-jl+v+-+-++w+p", /*  1/8  */
  232.     "--+-++-e----+------f---cm-", /*  1/9  */
  233.     "++----a----+-p++-----ob--l", /*  1/10 */
  234.     "-re+++-f--u----q++d-+-y-+-", /*  1/11 */
  235.     "+-z---+--k++l-----x-ag-+-+", /*  1/12 */
  236.     "-q--+w-tr-------++-+-e+---", /*  1/13 */
  237.     "+----g+--a-ny++xo------++-", /*  1/14 */
  238.     "-+t+n-brlum+++-d-++++-z-s+", /*  1/15 */
  239.     "+-f-++----q---e-+----z-a-+", /*  1/16 */
  240.     "-+-u--v-nb-+-+------+D--l-", /*  1/17 */
  241.     "w----+-p--f---++-s+o--+---", /*  1/18 */
  242.     "gl+x--+c++-+zv--+--q-+j+i+", /*  1/19 */
  243.     "--------------------------", /*  1/20 */
  244.     "--------------------------", /*  1/21 */
  245.     "--------------------------", /*  1/22 */
  246.     "--------------------------", /*  1/23 */
  247.     "+jvF-+-H++dif------a-E-h--", /*  1/24 */
  248.     "-y--g-+---+---urs++x+--++k", /*  1/25 */
  249.     "+--+-d-+v+-jhw-------++--a", /*  1/26 */
  250.     "--+-+xe--p+---k+-+r----+c-", /*  1/27 */
  251.     "+n-+---++---d+a----hi-----", /*  1/28 */
  252.     "k+l++h++-+++xb-e+wjdv+++qg", /*  1/29 */
  253.     "--+---y-c--+----l-------+-", /*  1/30 */
  254.     "-+--p-----x---++-ob----+--", /*  1/31 */
  255.     "--------rs---+---+++n-t---", /*  2/1  */
  256.     "+-maxzv+plh++o++A----+-+q+", /*  2/2  */
  257.     "-+------------b-+-t+q-----", /*  2/3  */
  258.     "+-i-h-+++z-y+--m-g-----a++", /*  2/4  */
  259.     "-+-k--w---+p+s-+bm++ty+-+-", /*  2/5  */
  260.     "+i+-a+-++x---c------f--+-h", /*  2/6  */
  261.     "---+---d---r--+--+---w+-o-", /*  2/7  */
  262.     "-sn-u-+------+-+p-++G--g-t", /*  2/8  */
  263.     "---hk+-+--++--l----------f", /*  2/9  */
  264.     "-+b-----q---+r-+++-+-p-mt-", /*  2/10 */
  265.     "+-++u-+--dac--+-g-o-+-z--+", /*  2/11 */
  266.     "-+-+-rt+nh++b+p+-+l+-+dvk-", /*  2/12 */
  267.     "h-+-uc-++---v---+q--++-i--", /*  2/13 */
  268.     "-k-+d-----+---s---+-------", /*  2/14 */
  269.     "------wy-----+--u+-++n+t+r", /*  2/15 */
  270.     "+fj--++-g+------a---------", /*  2/16 */
  271.     "----+----r-vw----+u-+++e--", /*  2/17 */
  272.     "+t+fz++gc-+--y+ok-a+----++", /*  2/18 */
  273.     "-------w-+u+++jn-l--+m+---", /*  2/19 */
  274.     "tvyz+-i-+---e------+-+--++", /*  2/20 */
  275.     "--+--u----+q-++-+oc-+-k-n-", /*  2/21 */
  276.     "---x----z--------------+-C", /*  2/22 */
  277.     "co+--k++--++g-+-----l-h---", /*  2/23 */
  278.     "r--++-A-+g--+qm++++spd--ie", /*  2/24 */
  279.     "-z+-c--+--h--+--n--------+", /*  2/25 */
  280.     "s-r+-++-y+dwj-f+-++pgx+++-", /*  2/26 */
  281.     "-e--+--+-+---+----n--h--j-", /*  2/27 */
  282.     "--------+-+k+--+-i-mz-p--+", /*  2/28 */
  283.     "--sg--+x-----+----+n-y-++-", /*  3/1  */
  284.     "+-p--z--++jai-++o--------+", /*  3/2  */
  285.     "-+-e+--u--b-v------+++-t--", /*  3/3  */
  286.     "+-+--++a+i---o+Dyc----gf+p", /*  3/4  */
  287.     "-+-m-----v--++nb--+--+s---", /*  3/5  */
  288.     "u-gy+++---ef----vz--++--++", /*  3/6  */
  289.     "-+----o-x---+z+---mw--++b+", /*  3/7  */
  290.     "eru-Fq---------s+++-+-----", /*  3/8  */
  291.     "+-a+kwd+h+++-xy----l-j++B-", /*  3/9  */
  292.     "-+-------m-s+ubq+++-+-r---", /*  3/10 */
  293.     "+--+a-h+d--------------z-+", /*  3/11 */
  294.     "-mk+-j---++++tr-l+y+d-+-+w", /*  3/12 */
  295.     "+---+m---+--+--a+j---q-e--", /*  3/13 */
  296.     "-l--s---+--+--i---+-------", /*  3/14 */
  297.     "---v--+---+-n+-k-+---+-gr-", /*  3/15 */
  298.     "+--il--v+oa+--+----z-++w-+", /*  3/16 */
  299.     "-++---+--s--cg-u-b+-+-----", /*  3/17 */
  300.     "--n-o+-i+----D+----w--+-f-", /*  3/18 */
  301.     "-+----z--q++b---++l-k--r-+", /*  3/19 */
  302.     "--+w++-s+-u--+-cin+e+E+fv-", /*  3/20 */
  303.     "--------+---i-------------", /*  3/21 */
  304.     "fs-+g++--y---+d-t+++rn--+-", /*  3/22 */
  305.     "--+---p+C-+z--h+---c--ik-+", /*  3/23 */
  306.     "b+--+---q--e+--r++--wm+---", /*  3/24 */
  307.     "--+--t++-ch---x----+z--+g+", /*  3/25 */
  308.     "j+-+----n+-b++--mdw---+---", /*  3/26 */
  309.     "qy+-+ve+--x-Dcz-+hm+t+-+++", /*  3/27 */
  310.     "-----i--+--+---l------x+--", /*  3/28 */
  311.     "------+--g-m+yq-+---+---+u", /*  3/29 */
  312.     "k-+-j---+++----+-xpi-c-+--", /*  3/30 */
  313.     "++-q+b+a--------+-g-+-u-e-", /*  3/31 */
  314.     "-c+--o-----ny++----v-+-++x", /*  4/1  */
  315.     "+-sg--+k+++++lmij-+-+-au--", /*  4/2  */
  316.     "-r-e+y+k--G------A-g----+-", /*  4/3  */
  317.     "--------o-----+-z+---r---+", /*  4/4  */
  318.     "----t+x-s-+--y----++k-f++-", /*  4/5  */
  319.     "d--+---z-+-+rj-+-+---l--p+", /*  4/6  */
  320.     "-+------qst----b+-++x--+--", /*  4/7  */
  321.     "h-+++n-+---c+++--m-ed-o---", /*  4/8  */
  322.     "x+-+--d---z+---y-l---b-+++", /*  4/9  */
  323.     "-q+-+th+++e-i+n-+-c++j+u-w", /*  4/10 */
  324.     "+--a-----+-j---+-p--------", /*  4/11 */
  325.     "--o-w+--+---q-+-+-if--+-+y", /*  4/12 */
  326.     "+p-k--+u--+g-v-+----++-a--", /*  4/13 */
  327.     "-++-++fk+b+-+i+mo-v+-+e-ct", /*  4/14 */
  328. };
  329.