home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume39 / nhl / part01 / schedule92.c < prev   
C/C++ Source or Header  |  1993-09-16  |  13KB  |  335 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 1992-93 season. The schedule[] array has been
  7.  * translated from that distributed with the original nhl.c to correspond
  8.  * to the new format as of 93-94.
  9.  *
  10.  * See the README file for instructions on updating this for a
  11.  * new season.
  12.  *
  13.  * This file is included directly in nhl.c. Don't bug me about it...
  14.  */
  15.  
  16. /*
  17.  * Set these to the starting and ending dates of the season.
  18.  * They have to be strings (ie., enclosed in double-quotes) and
  19.  * should be in form MM/DD/YYYY (the year must be all four digits).
  20.  * The START_DOW should be a capitalized string representing the
  21.  * day-of-the-week for the START_DATE. Check weekday[] in nhl.c for spelling.
  22.  */
  23. #define NHL_START_DATE        "10/6/1992"
  24. #define NHL_START_DOW        "Tuesday"
  25. #define NHL_END_DATE        "4/15/1993"
  26.  
  27. /*
  28.  * The list of teams referenced by the schedule[] array.
  29.  */
  30. #define NUM_TEAMS 24
  31.  
  32. struct _team_struct {
  33.     char *city;                    /* City name for team */
  34.     char *name;                    /* Team nickname */
  35.     char *abbrev;                /* Team code for cmd-line */
  36. } teams[NUM_TEAMS] = {
  37.     { "Boston",        "Bruins",    "bos" },
  38.     { "Buffalo",    "Sabres",    "buf" },
  39.     { "Calgary",    "Flames",    "cgy" },
  40.     { "Chicago",    "Blackhawks",    "chi" },
  41.     { "Detroit",    "Red Wings",    "det" },
  42.     { "Edmonton",    "Oilers",    "edm" },
  43.     { "Hartford",    "Whalers",    "hfd" },
  44.     { "Los Angeles",    "Kings",    "los" },
  45.     { "Minnesota",    "Stars",    "min" },
  46.     { "Montreal",    "Canadiens",    "mtl" },
  47.     { "New Jersey",    "Devils",    "njd" },
  48.     { "NY Islanders",    "Islanders",    "nyi" },
  49.     { "NY Rangers",    "Rangers",    "nyr" },
  50.     { "Ottawa",        "Senators",    "ott" },
  51.     { "Philadelphia",    "Flyers",    "phl" },
  52.     { "Pittsburgh",    "Penguins",    "pit" },
  53.     { "Quebec",        "Nordiques",    "que" },
  54.     { "St. Louis",    "Blues",    "stl" },
  55.     { "San Jose",    "Sharks",    "sjs" },
  56.     { "Tampa Bay",    "Lightning",    "tmp" },
  57.     { "Toronto",    "Maple Leafs",    "tor" },
  58.     { "Vancouver",    "Canucks",    "van" },
  59.     { "Washington",    "Capitals",    "wsh" },
  60.     { "Winnipeg",    "Jets",        "wpg" },
  61. };
  62.  
  63. #define NUM_DIVISIONS 4
  64. #define MAX_TEAMS_PER_DIVISION 6
  65.  
  66. struct _division_struct {
  67.     char *name;                    /* Division name */
  68.     char *teams[MAX_TEAMS_PER_DIVISION];    /* List of team abbrevs */
  69.     char *abbrev;                /* Division abbrev */
  70.     char flags[NUM_TEAMS];            /* Array of flags for teams */
  71. } divisions[NUM_DIVISIONS] = {
  72.     { "Adams",     { "bos","buf","hfd","mtl","ott","que" }, "adams" },
  73.     { "Patrick", { "njd","nyi","nyr","phl","pit","wsh" }, "patrick" },
  74.     { "Norris",     { "chi","det","min","stl","tmp","tor" }, "norris" },
  75.     { "Smythe",     { "cgy","edm","los","sjs","van","wpg" }, "smythe" },
  76. };
  77.  
  78. /*
  79.  * Special dates for which there are no games this season:
  80.  */
  81. struct _special_struct {
  82.     int month,day;                    /* Date */
  83.     char *text;                        /* Message to print */
  84. } special_dates[] = {
  85.     { 12, 24, "Holiday Break" },
  86.     { 12, 25, "Holiday Break" },
  87.     {  2,  4, "All Star Break" },
  88.     {  2,  5, "All Star Break" },
  89.     {  2,  6, "All Star Game in Montreal" },
  90.     {  2,  7, "All Star Break" },
  91.     {  0,  0, NULL },
  92. };
  93.  
  94. /*
  95.  * The list of neutral sites referenced in the schedule[] array
  96.  */
  97. char *neutral_sites[] = {
  98.     "Atlanta, GA",
  99.     "Birmingham, AL",
  100.     "Cincinnati, OH",
  101.     "Cleveland, OH",
  102.     "Dallas, TX",
  103.     "Halifax, N.S.",
  104.     "Hamilton, Ont.",
  105.     "Indianapolis, IN",
  106.     "Miami, FL",
  107.     "Milwaukee, WI",
  108.     "Oklahoma City, OK",
  109.     "Phoenix, AZ",
  110.     "Providence, RI",
  111.     "Saskatoon, Sask.",
  112.     "Sacramento, CA",
  113. };
  114.  
  115. /*
  116.  * Schedule matrix:
  117.  *   Each string represents one day of the season, The Nth character in
  118.  *   the string represents what the Nth team (in the teams[] array) is
  119.  *   doing on that day. The entries are interpreted as follows:
  120.  *    -   : This team is idle
  121.  *    +   : This team is home
  122.  *    a-z : This team is away at the team given by the letter
  123.  *    A-Z : This team is the home team at a neutral site given by the letter
  124.  *   Accessors are defined here for accessing the array. This will make
  125.  *   it easier when the day comes that size of the league exceeds the
  126.  *   size of the alphabet. The accessors have to map from the characters
  127.  *   used in schedule[] into the teams[] and neutral_sites[] arrays.
  128.  */
  129.  
  130. #define ISIDLECODE(C)        ((C) == '-')
  131. #define ISHOMECODE(C)        ((C) == '+')
  132. #define ISAWAYCODE(C)        ((C) >= 'a' && (C) <= 'z')
  133. #define ISSITECODE(C)        ((C) >= 'A' && (C) <= 'Z')
  134.  
  135. #define TEAMCODETOINDEX(C)    ((int)((C) - 'a'))
  136. #define INDEXTOTEAMCODE(C)    ((char)((C) + 'a'))
  137.  
  138. #define SITECODETOINDEX(C)    ((int)((C) - 'A'))
  139. #define INDEXTOSITECODE(C)    ((char)((C) + 'A'))
  140.  
  141. char *schedule[] = {
  142.     "--+-x++crg+k--p+-+--+fu+", /* 10/6 */
  143.     "---t---------------+----", /* 10/7 */
  144.     "+++-hca++n-p-+-+bi+----s", /* 10/8 */
  145.     "----------o-w-+-------+-", /* 10/9 */
  146.     "+g+rsv+++++akqwj+++ic++h", /* 10/10 */
  147.     "-+-+-+---b---------df---", /* 10/11 */
  148.     "+-----m---+-+a-------+kv", /* 10/12 */
  149.     "-pi----+N-----q+++hr----", /* 10/13 */
  150.     "-----x+---m-+g---------+", /* 10/14 */
  151.     "s-h++d-+rp-o--++e++u+---", /* 10/15 */
  152.     "-+-----------w-----b-x++", /* 10/16 */
  153.     "hwsu+e++j+++l-kg+q+-+-+-", /* 10/17 */
  154.     "---+----u--m+-+-----+d-o", /* 10/18 */
  155.     "---------+-------j------", /* 10/19 */
  156.     "--+-+tkc--++-ul+---+Gp-e", /* 10/20 */
  157.     "-+-b-----+--+---r+j---m-", /* 10/21 */
  158.     "c-++p-n-+-d--+++i--+to--", /* 10/22 */
  159.     "f+---+-x-m-w+-----b---++", /* 10/23 */
  160.     "----r-li+o++n++kt+u++---", /* 10/24 */
  161.     "v-f+d+---------------+--", /* 10/25 */
  162.     "------------+-m--+r---x+", /* 10/26 */
  163.     "-------l---+-+-n+--q----", /* 10/27 */
  164.     "-ux-+++-f+g-------ej++v+", /* 10/28 */
  165.     "+--+---a----+-drm+------", /* 10/29 */
  166.     "-++-+---v-+k-b----t+e+c-", /* 10/30 */
  167.     "+n+au++gc+l+j+r-++--+-fq", /* 10/31 */
  168.     "---+-----------t--d+----", /* 11/1 */
  169.     "-m+------+--+--------c-j", /* 11/2 */
  170.     "---w-++----p-f-+gt-+--H-", /* 11/3 */
  171.     "--v-+----e--+-m------+--", /* 11/4 */
  172.     "+s++---++-hi-c-+ap+-d---", /* 11/5 */
  173.     "----+xe------v-----w-+++", /* 11/6 */
  174.     "+h-qji++++s+a-+u+o+l+-g-", /* 11/7 */
  175.     "--q+---s-------d+-+--+-v", /* 11/8 */
  176.     "--j------+--++-----mn---", /* 11/9 */
  177.     "-----r-x+------i-+v--+-+", /* 11/10 */
  178.     "b+g-t-+--k+-++--n--+--m-", /* 11/11 */
  179.     "+-a+-s-++--o--++pd+--h-i", /* 11/12 */
  180.     "-+--+-b---+--t-e---+--k-", /* 11/13 */
  181.     "+ltigh++++w+q-j-++++as+r", /* 11/14 */
  182.     "---+----d----o+---------", /* 11/15 */
  183.     "j------v-+-------u--++--", /* 11/16 */
  184.     "-p-e+--s-n---+-+G-++q--t", /* 11/17 */
  185.     "-k---++-w-G------g---f+-", /* 11/18 */
  186.     "+-+h+-n+tq-ao++-+-++sc-e", /* 11/19 */
  187.     "----w-----+----k------+-", /* 11/20 */
  188.     "+++s-vq+b+pcxja++++rh+-+", /* 11/21 */
  189.     "-o---+-----f--+-+-----q-", /* 11/22 */
  190.     "n--v+----+--++-m---e-+j-", /* 11/23 */
  191.     "-----------x-------u+--+", /* 11/24 */
  192.     "w++-+++f+gn-p+-+bec--i+-", /* 11/25 */
  193.     "----------------u+--+r--", /* 11/26 */
  194.     "+++f++ae+--oib+w--xc--++", /* 11/27 */
  195.     "g-+cr++u++q+--l+++if+jp-", /* 11/28 */
  196.     "-n-----------+----------", /* 11/29 */
  197.     "qj--+---m+--+---+-----e-", /* 11/30 */
  198.     "---J-srdn-++-+-l-++-k---", /* 12/1 */
  199.     "--+-m-------+----------c", /* 12/2 */
  200.     "+--++vs+ean--++ho-+-d+--", /* 12/3 */
  201.     "-++--------bw----c----+-", /* 12/4 */
  202.     "k--ut+h+qx++-+ns+f+++-l+", /* 12/5 */
  203.     "o+-+-----db-+-+-----m---", /* 12/6 */
  204.     "-q+--c-----t-+--+v-+-+n-", /* 12/7 */
  205.     "--fe++-L-h-----+-------p", /* 12/8 */
  206.     "b+--u-+---+-Ig----vm++k-", /* 12/9 */
  207.     "+--+-i-++--d-a--hs+-----", /* 12/10 */
  208.     "-+u-+-b---+-t-ek---++-+w", /* 12/11 */
  209.     "jgni-t++++p+-+++sh++--ol", /* 12/12 */
  210.     "-----l---m-K+---v----+--", /* 12/13 */
  211.     "+ae-+-------------------", /* 12/14 */
  212.     "--m-n--++-xr++p+-E-hi--+", /* 12/15 */
  213.     "-----++--+------j-+s-fg-", /* 12/16 */
  214.     "---+-----q-+rl+o++-----d", /* 12/17 */
  215.     "e---++wf--t-------v+-++-", /* 12/18 */
  216.     "+j+oi-+c++-pgu++-++-+sar", /* 12/19 */
  217.     "-+-+----d--q--t-+--+b---", /* 12/20 */
  218.     "--+--cj--++-k+-+p-x---n+", /* 12/21 */
  219.     "+---+--++--------i-aeh--", /* 12/22 */
  220.     "-+xn-++--+mj+++o--fg--b+", /* 12/23 */
  221.     "------------------------", /* 12/24 */
  222.     "------------------------", /* 12/25 */
  223.     "g--+u-+s+--+lqw-+d+-+-+i", /* 12/26 */
  224.     "m+f+d+k-xv+-++-bn+--r+-+", /* 12/27 */
  225.     "------------------------", /* 12/28 */
  226.     "x--e++B+-fq+w-h-+gv-l+++", /* 12/29 */
  227.     "--------------s---+-----", /* 12/30 */
  228.     "i++++x+v+c-rbe-+g+-dp+-+", /* 12/31 */
  229.     "----------w-----------+-", /* 1/1 */
  230.     "+n+wq+a+lh++p+c++u+f+s+k", /* 1/2 */
  231.     "-+-+-++-g-----f--b-v-+-d", /* 1/3 */
  232.     "----+----Om-+-----j-e---", /* 1/4 */
  233.     "p-+--r---s-+---+l++----c", /* 1/5 */
  234.     "-g----++k-+-+m-----h+u--", /* 1/6 */
  235.     "+-r+-d--p-----++a+----o-", /* 1/7 */
  236.     "-+--+--x--+b-k----u-+e-+", /* 1/8 */
  237.     "+-pr-w+-++a+o-++g+-ijl+-", /* 1/9 */
  238.     "-+b+-o+d-g---++x--n----+", /* 1/10 */
  239.     "----+-------+----e-u+m--", /* 1/11 */
  240.     "+ali---n+-++-+----x--k-+", /* 1/12 */
  241.     "----++j--+--+----u-e+-mf", /* 1/13 */
  242.     "+-o+---kdq++-++a+n----l-", /* 1/14 */
  243.     "-v--++f-----------e--+--", /* 1/15 */
  244.     "+-iu--v++++kjpa++tq+++-h", /* 1/16 */
  245.     "-f-+o+-----n-++----+d-t-", /* 1/17 */
  246.     "+-----x-----------a----N", /* 1/18 */
  247.     "lc+x++-ft--+e+-vn+-+r+-+", /* 1/19 */
  248.     "---------+j-------------", /* 1/20 */
  249.     "o--++-+++----i+--eg+thd-", /* 1/21 */
  250.     "-++--+---k+----fb------c", /* 1/22 */
  251.     "+q+grx+++ua+hwlc++t++i++", /* 1/23 */
  252.     "---+--o-t-----+----+-d--", /* 1/24 */
  253.     "j--------+--------------", /* 1/25 */
  254.     "qo+-c--+u-l+-r++++h-+-p-", /* 1/26 */
  255.     "-+-vf+j--+--+--------+bm", /* 1/27 */
  256.     "+-h---n++-ip-+++ot-+---a", /* 1/28 */
  257.     "-+-s--------b---w-+---+-", /* 1/29 */
  258.     "l-shv-++++r+ujp+-++i++-g", /* 1/30 */
  259.     "-+---b---+----jw------+-", /* 1/31 */
  260.     "--------v--+l+---++sr+-n", /* 2/1 */
  261.     "+-w--a-q--------+-----+-", /* 2/2 */
  262.     "q+ke+nbjs++u++m-+x+v++-+", /* 2/3 */
  263.     "------------------------", /* 2/4 */
  264.     "------------------------", /* 2/5 */
  265.     "------------------------", /* 2/6 */
  266.     "------------------------", /* 2/7 */
  267.     "pn--------+-k+-A--------", /* 2/8 */
  268.     "r---+h-++le+-o+-++-+tqi-", /* 2/9 */
  269.     "-x+---------+--m--c----+", /* 2/10 */
  270.     "d--+h--+to----+--+-++ur-", /* 2/11 */
  271.     "-++--+x----m+---c-f--b-+", /* 2/12 */
  272.     "--+pr-c+un++l+k+-+--+-h-", /* 2/13 */
  273.     "t+-+d+--+-o---+bf-x+i--+", /* 2/14 */
  274.     "-------+----+----m---h--", /* 2/15 */
  275.     "--C--l-----+--c---+---s-", /* 2/16 */
  276.     "jgu-+-+i+++--q--+k-e+---", /* 2/17 */
  277.     "---+-p-d---+--v+-l+--+-s", /* 2/18 */
  278.     "-ke-+-----+--------u+---", /* 2/19 */
  279.     "u----g+w++-+sjilt-+F+++v", /* 2/20 */
  280.     "--d+ij+-+++----gkw----+-", /* 2/21 */
  281.     "----o--t----sxD---O+v+-+", /* 2/22 */
  282.     "--s--q---rp+-N-++++---ln", /* 2/23 */
  283.     "-+--b-+-----v-g------+--", /* 2/24 */
  284.     "+--t---ra-oq-++n++++s---", /* 2/25 */
  285.     "-++------b--c--------x-+", /* 2/26 */
  286.     "+j+e++q+r++ofk++++cph-a-", /* 2/27 */
  287.     "---+k++-x-+g-+-wndf---++", /* 2/28 */
  288.     "+G-------a-----------b--", /* 3/1 */
  289.     "--h-l--+---+-s+ox-+--w++", /* 3/2 */
  290.     "-m----+-utg-+------++---", /* 3/3 */
  291.     "+-r+-+-+-----h--d+---a-f", /* 3/4 */
  292.     "-+-k+-b---+-+-wm----e-+-", /* 3/5 */
  293.     "+-t--h+++i--q---+a-++g-u", /* 3/6 */
  294.     "-+-+is--+-+w-dk---+---+b", /* 3/7 */
  295.     "------q---------+-------", /* 3/8 */
  296.     "p------m+-v++-l+--i+w++t", /* 3/9 */
  297.     "-q--f+u--+-j----+---+---", /* 3/10 */
  298.     "+-++c--pva--d-++-+r--No-", /* 3/11 */
  299.     "-----+----f--------u+x-+", /* 3/12 */
  300.     "+g+---+or+c+wa+lj+----+-", /* 3/13 */
  301.     "-++fs++b+--+--g--i+x-cl+", /* 3/14 */
  302.     "m-----------+---+---q---", /* 3/15 */
  303.     "Mr+cJ-t+o-as--+--+++--eh", /* 3/16 */
  304.     "-----m------+-----------", /* 3/17 */
  305.     "n---+k-+eq+h-+p++--+t+-v", /* 3/18 */
  306.     "------w-----+-----m---+-", /* 3/19 */
  307.     "+t-jau-+-++v-p-+kh-+++--", /* 3/20 */
  308.     "--x+iD--+-o---+f--wd--++", /* 3/21 */
  309.     "+j----a--+--n+---v---+--", /* 3/22 */
  310.     "----+-----+e---+w-pkx-++", /* 3/23 */
  311.     "b++---+v-g--+-m--c---+--", /* 3/24 */
  312.     "+d-+----+al+-+++--oni-p-", /* 3/25 */
  313.     "--vm-+-f----+----x---+-+", /* 3/26 */
  314.     "+---t+i-++w+-jqa+-l+f-+-", /* 3/27 */
  315.     "-+++--dx----+b-wm---c-++", /* 3/28 */
  316.     "----+--e--+-------k-----", /* 3/29 */
  317.     "gw+---+----+--l--+---r+c", /* 3/30 */
  318.     "-+---+-uf+b-----j---+---", /* 3/31 */
  319.     "--++d-p-c----+++n-++ot-s", /* 4/1 */
  320.     "---------w-m+---------+-", /* 4/2 */
  321.     "+asr++++hlu+-g+q+++o+e-f", /* 4/3 */
  322.     "b+s+------+-w+-k-d+--n+-", /* 4/4 */
  323.     "------m-----+-----------", /* 4/5 */
  324.     "qih--s-++--w--x-+t++--++", /* 4/6 */
  325.     "-----vn--p+-k+-+-----+--", /* 4/7 */
  326.     "+--lt--+---+--+-a-h+x-o+", /* 4/8 */
  327.     "--+---------+--m-----c--", /* 4/9 */
  328.     "je-t+-qs++w+plu++i+++-+-", /* 4/10 */
  329.     "++v+-++-r-+k-a--b+-dg+-f", /* 4/11 */
  330.     "---------+--o-+-------j-", /* 4/12 */
  331.     "-+fi-+-v+b---q--+u-x++-+", /* 4/13 */
  332.     "n-----+---+g++-k------m-", /* 4/14 */
  333.     "-++++xl+e-p+--b+-+crdh-+", /* 4/15 */
  334. };
  335.