From: wilson@cs.ucf.edu (tom wilson)
Subject: A Christmas Present
Organization: University of Central Florida, Orlando
Date: Fri, 25 Dec 1992 09:11:30 GMT

Since I haven't seen the player stats posted but once in a couple months,
here's a little gift. You can thank Joe (of St. Louis Blues fame 8-) for
providing most of the numbers. A few warnings: (1) since Joe didn't track
EN and PS goals, these fields are incorrect. I'm short 7 PS goals and more than
40 EN goals. Team contacts can certainly help out here. (2) PIMs haven't been
updated in over a week. (3) the first field which is 0 is reserved for GP and
won't be filled in. So if you use the program below, ignore all options that
compute stats per game.

So following 600+ lines of player stats are a description of a program and
the program itself.

Tom

 0  97 36  61  8  1  0  0  20 CAN PIT  C 66  Mario Lemieux
 0  62 24  38 10  2  0  0  33 USA BUF  C 16  Pat LaFontaine
 0  56 26  30 14  2  0  0  18 CAN QUE  C 19  Joe Sakic
 0  56 17  39  8  1  0  0  12 FIN LA   C 17  Jari Kurri
 0  55 23  32  8  3  0  0  30 SWE QUE  C 13  Mats Sundin
 0  55 21  34  7  0  0  1  14 CAN NYI  C 77  Pierre Turgeon
 0  55 18  37 10  0  0  0  12 CAN BOS  C 12  Adam Oates
 0  54 27  27 12  0  0  0  38 USA PIT LW 25  Kevin Stevens
 0  53 29  24  9  0  0  0  30 CAN LA  LW 20  Luc Robitaille
 0  53 20  33  3  3  1  0  24 CAN PHI RW  8  Mark Recchi
 0  52 27  25  5  2  0  0  13 CAN DET  C 19  Steve Yzerman
 0  50 28  22 12  0  2  0  32 CAN TB   C 19  Brian Bradley
 0  50 23  27 15  0  0  0  86 CAN PIT RW 22  Rick Tocchet
 0  50 17  33  6  2  0  0  26 CAN NYR  C 11  Mark Messier
 0  50 12  38  5  2  0  0  38 CAN TOR  C 93  Doug Gilmour
 0  50 12  38  2  0  0  0  34 CAN MON LW 11  Kirk Muller
 0  48 21  27  3  1  1  0 101 CAN CAL LW 10  Gary Roberts
 0  48 18  30  4  2  0  0  33 USA CHI  C 27  Jeremy Roenick
 0  47 28  19 11  0  0  0  20 RUS BUF RW 89  Alexander Mogilny
 0  46  7  39  3  0  0  0   2 USA STL  C 15  Craig Janney
 0  45 27  18  7  5  0  0  22 RUS VAN RW 10  Pavel Bure
 0  45 23  22 17  0  0  0  36 CAN BUF LW 25  Dave Andreychuk
 0  45 11  34  4  2  0  0  28 CAN PIT  C 10  Ron Francis
 0  44 25  19 10  0  0  0  33 FIN WIN RW 13 *Teemu Selanne
 0  44 20  24  5  2  0  0  30 CAN MON LW 25  Vincent Damphousse
 0  44 18  26 11  0  0  0  25 USA STL RW 16  Brett Hull
 0  44 17  27  6  0  0  0  63 CAN VAN LW 14  Geoff Courtnall
 0  44 12  32  3  0  0  0  19 CAN BOS  C 49 *Joe Juneau
 0  43 17  26  5  1  0  0  18 TCH PIT RW 68  Jaromir Jagr
 0  43 17  26  3  0  0  0  14 CAN MON  C 47  Stephan Lebeau
 0  43 15  28  5  0  0  0  24 CAN CAL RW 14  Theoren Fleury
 0  43 10  33  3  0  0  0  24 CAN QUE  D 28  Steve Duchesne
 0  42 19  23  8  0  0  0  69 IRL QUE RW 11  Owen Nolan
 0  42 18  24  6  0  0  0  28 RUS WAS RW 12  Peter Bondra
 0  42  8  34  2  0  0  0  26 CAN LA   D 77  Paul Coffey
 0  42  6  36  2  0  0  0  10 CAN BUF  C 10  Dale Hawerchuk
 0  41 15  26 10  0  0  0  33 CAN DET RW 22  Dino Ciccarelli
 0  41  9  32  4  0  0  0  22 CAN PIT  D 55  Larry Murphy
 0  40 14  26  4  0  0  0  14 CAN WAS  C 17  Mike Ridley
 0  39 20  19 10  1  0  0  26 CAN CHI RW 28  Steve Larmer
 0  39 16  23  8  0  0  0  18 CAN MON LW 23  Brian Bellows
 0  39 13  26  3  0  0  0  12 RUS CAL RW 42  Sergei Makarov
 0  38 16  22  3  1  0  0   6 CAN VAN LW  8  Greg Adams
 0  37 21  16  1  0  0  0  36 TCH VAN  C 19  Petr Nedved
 0  37 14  23  4  0  0  0  30 USA MIN  C  9  Mike Modano
 0  37 13  24  5  0  0  0  66 USA WAS  D 34  Al Iafrate
 0  37 11  26  6  0  0  0  38 CAN QUE  C  9  Mike Ricci
 0  36 16  20  6  0  0  0   4 RUS BOS LW 10  Dimitri Kvartalnov
 0  36 15  21  4  2  0  0  10 CAN HAR LW 32  Murray Craven
 0  36 14  22  3  1  0  0  20 USA LA  RW 11  Mike Donnelly
 0  36 13  23  3  0  0  0  61 USA LA  LW 21  Tony Granato
 0  36 12  24  3  1  0  0  30 CAN MIN RW 26  Russ Courtnall
 0  35 22  13  9  1  0  0   8 CAN TB  LW 16  Chris Kontos
 0  35 17  18  6  2  1  0  10 USA QUE RW 48  Scott Young
 0  35 10  25  5  1  0  0  41 CAN SJ   C 11  Kelly Kisio
 0  35 10  25  4  0  0  0  10 CAN VAN  C  7  Cliff Ronning
 0  34 17  17  7  1  0  0  31 RUS DET  C 91  Sergei Fedorov
 0  34 14  20  1  2  0  0  16 CAN STL RW  7  Nelson Emerson
 0  34 14  20  9  0  1  0  58 CAN NJ  RW 22  Claude Lemieux
 0  34  9  25  1  1  0  0  47 CAN MON  C 18  Denis Savard
 0  34  6  28  2  1  0  0  26 USA NYR  D  2  Brian Leetch
 0  33 20  13 11  0  0  0  25 CAN NYI LW 27  Derek King
 0  33 18  15  5  2  0  0  16 USA NYR  C  8  Darren Turcotte
 0  33  7  26  3  0  0  0  91 CAN WAS  C 32  Dale Hunter
 0  33  7  26  0  0  0  0  30 CAN MON RW 12  Mike Keane
 0  32 17  15  8  0  0  0  26 CAN CAL  C 25  Joe Nieuwendyk
 0  32 14  18  2  1  1  0  56 CAN NYI RW 33  Benoit Hogue
 0  32 13  19  7  0  0  0  30 GBR NYI LW 32  Steve Thomas
 0  32 13  19  6  0  0  0  84 CAN HAR RW 16  Pat Verbeek
 0  32  8  24  4  0  0  0  22 USA WIN  D  6  Phil Housley
 0  31 20  11  7  2  0  0  40 CAN LA   C 23  Corey Millen
 0  31 18  13  4  0  0  0  10 USA PIT  C 15 *Shawn McEachern
 0  31 12  19  4  0  0  0  32 SWE LA  RW  7  Tomas Sandstrom
 0  31  8  23  4  0  0  0  36 CAN EDM  C  9  Bernie Nicholls
 0  30 18  12  6  0  0  0  20 CAN NYR RW 22  Mike Gartner
 0  30 17  13  8  0  0  0  12 USA DET  C 12  Jimmy Carson
 0  30 16  14  3  1  0  0  44 CAN PHI  C 88 *Eric Lindros
 0  30 15  15  6  0  0  0  16 RUS TOR RW 16  Nikolai Borschevsky
 0  30 12  18  7  0  0  0  32 CAN STL  D 21  Jeff Brown
 0  30  8  22  4  0  0  0  92 USA CHI  D  7  Chris Chelios
 0  30  6  24  3  0  0  0  27 USA NYI  D  8  Jeff Norton
 0  30  6  24  2  1  0  0  50 USA CAL  D 20  Gary Suter
 0  29 18  11  7  0  0  0  14 CAN STL LW 19  Brendan Shanahan
 0  29 18  11 10  0  0  0  26 CAN EDM LW 18  Craig Simpson
 0  29 14  15  8  0  0  0  12 USA NYR RW 33  Tony Amonte
 0  29 13  16  4  1  0  0  24 RUS QUE RW 51 *Andrei Kovalenko
 0  29 12  17  1  1  0  0  18 CAN PHI LW 18  Brent Fedyk
 0  28 17  11  7  0  0  0  26 TCH EDM LW 85  Petr Klima
 0  28 13  15  0  1  0  0  24 RUS NYR  C 13  Sergei Nemchinov
 0  28 11  17  4  1  0  0  27 CAN PHI  C 17  Rod Brind'Amour
 0  28 11  17  6  0  0  0   2 SWE MIN RW 22  Ulf Dahlen
 0  28 10  18  2  0  0  0  49 USA MON  D  8  Matt Schneider
 0  28  9  19  5  0  0  0  18 CAN VAN RW 16  Trevor Linden
 0  28  6  22  3  0  0  0  93 CAN DET  D  3  Steve Chiasson
 0  28  6  22  2  1  0  0  10 RUS VAN  C 20  Anatoli Semenov
 0  28  6  22  1  1  0  0  28 CAN TB   C 14  John Tucker
 0  27 15  12  1  1  0  0  22 CAN DET LW 21  Paul Ysebaert
 0  27 11  16  6  0  0  0  24 USA WAS  D  4  Kevin Hatcher
 0  27  9  18  5  0  0  0  22 CAN WAS RW 19  Pat Elynuik
 0  26 16  10  4  0  0  0   6 CAN HAR  C  8  Geoff Sanderson
 0  26 14  12  4  1  0  0  36 CAN NYR LW  9  Adam Graves
 0  26 12  14  7  0  0  0  56 CAN MIN RW 20  Mike Craig
 0  26 12  14  4  0  0  0  27 CAN VAN RW 17 *Dixon Ward
 0  26 11  15  3  0  0  0  16 TCH CAL  C 26  Robert Reichel
 0  26 11  15  3  0  0  0  60 FIN CHI  C 22  Christian Ruuttu
 0  26 10  16  4  0  0  0   8 CAN DET RW 26  Ray Sheppard
 0  26  9  17  4  0  0  0  54 CAN MIN  C 15  Dave Gagner
 0  26  6  20  2  0  0  0  48 CAN OTT  D 22  Norm MacIver
 0  26  4  22  2  0  0  0  20 CAN BOS  D 77  Ray Bourque
 0  25 11  14  1  2  0  0  67 USA BUF  C 20  Bob Sweeney
 0  25  6  19  2  0  0  0  12 SWE SJ  LW 10  Johan Garpenlov
 0  25  6  19  5  0  0  0  16 SWE WAS  D  6  Calle Johansson
 0  24 14  10  6  0  0  0  56 CAN OTT LW 61  Sylvain Turgeon
 0  24 13  11  1  0  0  0  32 CAN NJ  RW 44  Stephane Richer
 0  24 11  13  4  1  0  0   8 CAN WAS  D  3  Sylvain Cote
 0  24 10  14  3  1  0  0  43 USA CAL  C 29  Joel Otto
 0  24  9  15  3  0  0  0  18 TCH QUE LW 25 *Martin Rucinsky
 0  24  7  17  2  0  0  0  14 CAN TB   D  3  Doug Crossman
 0  24  6  18  4  0  0  0  14 SWE WIN  D  4  Fredrik Olausson
 0  24  6  18  2  0  0  0  34 CAN WIN LW 34  Darrin Shannon
 0  24  6  18  3  0  0  0  29 RUS WIN  C 10 *Alexei Zhamnov
 0  24  5  19  4  0  0  0  75 SCO CHI  D  5  Steve Smith
 0  24  4  20  2  0  0  0  30 CAN HAR  D  3  Zarley Zalapski
 0  23 16   7  6  0  0  0  22 RUS WIN LW 11 *Evgeny Davydov
 0  23  9  14  3  0  0  0  22 CAN MIN  C 14  Todd Elik
 0  23  9  14  0  2  1  0  28 CAN BOS  C 19  Dave Poulin
 0  23  8  15  2  0  0  0   2 USA PIT RW  7  Joe Mullen
 0  23  7  16  4  1  0  0  91 CAN EDM  D 24  Dave Manson
 0  23  4  19  2  0  0  0  66 CAN LA   D  4  Rob Blake
 0  23  4  19  0  2  0  0  35 CAN NYI RW 26  Patrick Flatley
 0  22 11  11  2  2  0  0  43 USA STL RW 14  Kevin Miller
 0  22  8  14  6  0  0  0  39 CAN NJ   D  4  Scott Stevens
 0  22  7  15  4  0  0  0 101 CAN DET RW 24  Bob Probert
 0  22  5  17  3  0  0  0  43 CAN BUF  D  8  Doug Bodger
 0  22  5  17  1  2  0  0  31 CAN HAR  C 21  Andrew Cassels
 0  22  4  18  1  1  0  0  12 TCH WAS  C 20  Michal Pivonka
 0  21 12   9  6  0  0  0  20 TCH NJ  LW 16  Bobby Holik
 0  21  8  13  3  0  0  0  30 CAN TOR RW  9  Glenn Anderson
 0  21  8  13  4  0  0  0  30 CAN MON  D 28  Eric Desjardins
 0  21  7  14  4  0  0  0  35 RUS NYI  D 23 *Vladimir Malakhov
 0  21  7  14  2  2  0  0  18 USA BUF LW 19  Randy Wood
 0  21  6  15  4  1  0  0 108 CAN EDM LW 21  Shayne Corson
 0  21  5  16  1  0  0  0  30 CAN TB   C  7 *Rob Zamuner
 0  21  5  16  0  0  0  0   6 CAN TOR  C 25  Peter Zezel
 0  21  4  17  0  0  0  0  17 TCH BUF  D 42 *Richard Smehlik
 0  20 12   8  4  0  0  0   4 CAN SJ  RW 17  Pat Falloon
 0  20 12   8  4  0  0  0  50 USA BOS RW 27  Stephen Leach
 0  20 11   9  2  0  0  0  10 CAN HAR LW 24 *Patrick Poulin
 0  20 10  10  2  0  0  0  16 USA WAS LW 10  Kelly Miller
 0  20  9  11  2  0  0  0  80 CAN VAN LW 27  Sergio Momesso
 0  20  8  12  4  0  0  0   4 TCH NJ   C 26  Peter Stastny
 0  20  6  14  2  0  0  0  32 LAT SJ   D  6 *Sandis Ozolinsh
 0  20  6  14  0  0  0  0  29 RUS NJ  LW 25  Valeri Zelepukin
 0  20  3  17  0  1  0  0  19 FIN WIN  D 27  Teppo Numminen
 0  20  2  18  1  0  0  0  53 TCH BUF  D  7  Petr Svoboda
 0  19 11   8  2  1  0  0  22 CAN TOR  C 26  Mike Krushelnyski
 0  19 11   8  3  0  0  0  65 CAN EDM RW 27  Scott Mellanby
 0  19 10   9  5  0  0  0  12 CAN OTT  C 13  Jamie Baker
 0  19 10   9  7  0  0  0  60 CAN TOR  C 19  John Cullen
 0  19 10   9  4  0  0  0  18 TCH BOS  C 38  Vladimir Ruzicka
 0  19  8  11  2  0  0  0  35 CAN DET  C 28 *Dallas Drake
 0  19  8  11  2  0  0  0 188 CAN LA   D 33  Marty McSorley
 0  19  8  11  2  0  0  0  26 USA NYR  C 39  Doug Weight
 0  19  6  13  0  0  0  0   8 USA MON  C 17  John LeClair
 0  19  6  13  1  0  0  0  24 SWE WIN  C 25  Thomas Steen
 0  19  5  14  1  1  0  0  23 CAN DET LW 11  Shawn Burr
 0  19  5  14  2  1  0  0  14 CAN CHI  C 12  Brent Sutter
 0  18 11   7  1  2  0  0  53 CAN CHI RW 33  Dirk Graham
 0  18  9   9  3  0  0  0   6 CAN PHI RW 12  Greg Paslawski
 0  18  8  10  3  1  1  0  57 CAN TB   C 10  Adam Creighton
 0  18  7  11  0  1  0  0 106 CAN PHI RW 20  Kevin Dineen
 0  18  7  11  2  1  0  0  12 CAN MON LW 45  Gilbert Dionne
 0  18  7  11  2  0  0  0  20 USA CAL LW 28  Paul Ranheim
 0  18  6  12  4  0  0  0  18 CAN OTT  C 12  Neil Brady
 0  18  6  12  4  0  0  0  10 RUS TOR  D 15  Dimitri Mironov
 0  18  5  13  1  0  0  0  64 CAN TOR LW 17  Wendel Clark
 0  18  5  13  0  2  0  0   8 CAN MIN LW 17  Mike McPhee
 0  18  5  13  3  0  0  0   8 SWE MIN  D 33  Tommy Sjodin
 0  18  4  14  0  0  0  0  30 GER NYI  D  4  Uwe Krupp
 0  18  4  14  2  0  0  0  36 RUS LA   D  2 *Alexei Zhitnik
 0  18  2  16  0  0  0  0  22 CAN NJ   D 23  Bruce Driver
 0  18  1  17  1  0  0  0   8 SWE DET  D  5  Nicklas Lidstrom
 0  17 11   6  0  2  0  0  16 CAN MIN LW 10  Gaetan Duchesne
 0  17  9   8  3  0  0  0  30 CAN NYI  C 20  Ray Ferraro
 0  17  8   9  6  0  0  0  75 CAN PHI  D 19  Brian Benning
 0  17  8   9  0  1  0  0  36 RUS NJ   C 20  Alexander Semak
 0  17  8   9  1  0  1  0   8 CAN HAR  C 38  Terry Yake
 0  17  7  10  1  0  0  0  24 RUS NYR RW 27 *Alexei Kovalev
 0  17  7  10  0  1  0  0  50 USA BUF RW 18  Wayne Presley
 0  17  6  11  1  0  0  0   2 CAN OTT RW 17  Jody Hull
 0  17  6  11  2  0  0  0  18 USA WIN  C 16  Ed Olczyk
 0  17  4  13  3  0  0  0  22 CAN CAL  D  2  Al Macinnis
 0  17  3  14  1  1  0  0  18 FIN VAN  D 21  Jyrki Lumme
 0  17  2  15  0  0  0  0 110 SWE PIT  D  5  Ulf Samuelsson
 0  16 12   4  3  1  0  0   2 USA SJ  RW 37 *Rob Gaudreau
 0  16 10   6  3  0  0  0  89 USA WIN RW  7 *Keith Tkachuk
 0  16  9   7  0  1  0  0  14 USA BOS RW 23 *Stephen Heinze
 0  16  8   8  2  2  0  0  45 USA BOS  C 21 *Ted Donato
 0  16  7   9  0  0  0  0   8 USA MIN  C  7  Neal Broten
 0  16  6  10  0  0  0  0  10 CAN CHI LW 14  Greg Gilbert
 0  16  5  11  2  0  0  0  42 CAN MIN  D 24  Mark Tinordi
 0  16  4  12  1  0  0  0  33 CAN EDM  D 34  Greg Hawgood
 0  16  3  13  2  0  0  0   6 RUS STL  C 38 *Igor Korolev
 0  16  3  13  2  0  0  0  24 CAN NYR  D  3  James Patrick
 0  16  2  14  2  0  0  0  23 CAN VAN  D  6  Adrien Plavsic
 0  16  0  16  0  0  0  0   8 USA DET  D  4  Mark Howe
 0  15  9   6  0  0  0  0  88 CAN BUF LW 27  Brad May
 0  15  7   8  0  0  0  0   0 CAN MON LW 22  Benoit Brunet
 0  15  7   8  3  0  0  0  10 CAN CHI LW 16  Michel Goulet
 0  15  6   9  3  0  0  0  22 USA TB   D  2  Bob Beers
 0  15  6   9  1  1  0  0  27 CAN TB   C 28  Marc Bureau
 0  15  5  10  1  0  0  0  43 CAN SJ   C 12  Dean Evason
 0  15  4  11  0  0  0  0  25 CAN TB   C 18  Rob DiMaio
 0  15  3  12  0  0  0  0  34 CAN WIN  C 36  Mike Eagles
 0  15  3  12  2  0  0  0  14 CAN VAN  D  3  Doug Lidster
 0  15  3  12  2  0  0  0  38 CAN DET  D 33  Yves Racine
 0  15  3  12  1  0  0  0  12 CAN OTT  D  4  Brad Shaw
 0  15  2  13  2  0  0  0  25 USA TOR  D  4  Dave Ellett
 0  14  8   6  0  0  0  0  36 CAN PHI LW 15  Doug Evans
 0  14  8   6  0  0  0  0  18 USA NYI RW 16  Brian Mullen
 0  14  6   8  0  0  0  0  16 CAN CAL LW 32 *Chris Lindberg
 0  14  6   8  0  0  0  0  45 CAN CHI LW 32  Stephane Matteau
 0  14  5   9  5  0  0  0  78 CAN TB   D  5  Rob Ramage
 0  14  4  10  1  0  0  0  34 CAN PHI  D  3  Garry Galley
 0  14  4  10  0  0  0  0  26 CAN CHI LW 26  Jocelyn Lemieux
 0  14  2  12  0  0  0  0  20 RUS PHI  D  2 *Dimitri Yushkevich
 0  14  1  13  0  0  0  0   8 USA NYI  D 28  Tom Kurvers
 0  14  0  14  0  0  0  0  22 CAN SJ   D 24  Doug Wilson
 0  13  8   5  4  0  0  0   0 RUS WAS  C  8  Dimitri Khristich
 0  13  8   5  2  0  0  0  71 CAN TOR RW 12  Rob Pearson
 0  13  7   6  3  0  0  0  16 CAN MON  D 43  Patrice Brisebois
 0  13  6   7  1  0  0  0  14 CAN WIN  C 38  Luciano Borsato
 0  13  6   7  0  1  0  0  85 CAN DET LW 55  Keith Primeau
 0  13  5   8  0  1  0  1  10 SWE TB  LW 24  Mikael Andersson
 0  13  5   8  1  0  0  0  47 USA WAS LW 11  Bob Carpenter
 0  13  4   9  0  2  0  0  26 USA NYI RW 14  Tom Fitzgerald
 0  13  4   9  0  0  0  0  12 ?   QUE LW 20 *Bill Lindsay
 0  13  4   9  0  2  0  0  38 FIN EDM LW 10  Esa Tikkanen
 0  13  3  10  0  0  0  0  38 CAN QUE  C 47  Claude Lapointe
 0  13  3  10  3  0  0  0  24 CAN BOS  D 28  Gord Murphy
 0  13  2  11  0  0  0  0  53 CAN TB   D 29  Joe Reekie
 0  12  8   4  0  0  0  0   6 CAN DET RW 15  Sheldon Kennedy
 0  12  8   4  1  0  0  0  34 CAN WAS RW 23  Paul Macdermid
 0  12  8   4  1  0  0  0  60 CAN NJ  RW 21  Randy McKay
 0  12  8   4  1  0  0  0 105 USA OTT LW 44  Mike Peluso
 0  12  7   5  5  0  0  0  42 CAN TOR RW 71  Mike Foligno
 0  12  6   6  0  2  0  0  51 CAN TOR LW 10  Bill Berg
 0  12  6   6  3  0  0  0  44 CAN MON  D 14  Kevin Haller
 0  12  6   6  1  0  0  0  50 CAN LA  RW 27 *Jim Hiller
 0  12  6   6  0  0  0  0  28 USA WAS LW 21  Todd Krygier
 0  12  6   6  2  0  0  0  29 USA CHI RW 10  Brian Noonan
 0  12  5   7  0  1  0  0  30 RUS QUE  D  5  Alexei Gusarov
 0  12  4   8  0  0  0  0  16 CAN WAS RW 26 *Keith Jones
 0  12  3   9  2  0  0  0   6 USA TB   D 36  Shawn Chambers
 0  12  1  11  1  0  0  0  21 USA NJ   D 27 *Scott Niedermayer
 0  12  1  11  0  0  0  0  17 USA HAR  D  4  Eric Weinrich
 0  12  0  12  0  0  0  0  52 CAN NYR  D 23  Jeff Beukeboom
 0  11  7   4  0  0  0  0   6 CAN CAL RW 11  Gary Leeman
 0  11  5   6  0  0  0  0   6 CAN NYI RW 15  Brad Dalgarno
 0  11  5   6  2  0  0  0  22 CAN EDM  C 41  Brent Gilchrist
 0  11  5   6  2  0  0  0   6 USA SJ   D 41 *Tom Pederson
 0  11  5   6  1  0  0  0  22 TCH NYI LW 25  Dave Volek
 0  11  4   7  0  0  0  0   6 USA TB  RW 24  Danton Cole
 0  11  4   7  0  0  0  0 155 CAN VAN LW 29  Gino Odjick
 0  11  4   7  0  0  0  0  52 USA BOS  D 14  Gordie Roberts
 0  11  4   7  1  2  0  0   8 CAN CAL  C 33  Carey Wilson
 0  11  3   8  0  0  0  0   6 CAN QUE LW 44  Gino Cavallini
 0  11  3   8  1  0  0  0   2 TCH NJ  LW 33  Zdeno Ciger
 0  11  3   8  3  0  0  0  34 CAN QUE  D  2  Kerry Huffman
 0  11  3   8  0  2  0  0  45 CAN EDM  C 14  Craig MacTavish
 0  11  3   8  0  0  0  0  23 CAN STL RW 23  Rich Sutter
 0  11  2   9  0  0  0  0  16 CAN PHI  C 25  Keith Acton
 0  11  1  10  0  0  0  0  26 CAN LA   D 22  Charlie Huddy
 0  11  1  10  0  0  0  0   2 CAN DET  C 23 *Mike Sillinger
 0  10  6   4  0  0  0  0 120 CAN HAR LW 20  Nick Kypreos
 0  10  5   5  0  0  0  0 110 CAN HAR  C 22  Mark Janssens
 0  10  4   6  0  1  0  0  24 USA SJ  LW 20  John Carter
 0  10  4   6  0  0  0  0  69 CAN VAN  D  4  Gerald Diduck
 0  10  4   6  2  0  0  0  26 RUS CHI  D  3  Igor Kravchuk
 0  10  4   6  4  0  0  0   4 CAN STL  C 22  Ron Sutter
 0  10  3   7  0  0  0  0  18 USA NYR RW 37  Paul Broten
 0  10  3   7  0  0  0  0   6 CAN MON  C 21  Guy Carbonneau
 0  10  3   7  1  0  0  0  86 CAN MIN RW 27  Shane Churla
 0  10  3   7  2  0  0  0  24 GER EDM  D  6  Brian Glynn
 0  10  3   7  0  0  0  0 102 USA MIN  D  2  Derian Hatcher
 0  10  3   7  1  0  0  0  10 CAN TB  LW 37  Steve Maltais
 0  10  3   7  2  0  0  0  54 USA PIT  D 23  Paul Stanton
 0  10  2   8  1  0  0  0  28 CAN CAL  D  4 *Kevin Dahl
 0  10  2   8  0  0  0  0  12 USA SJ   C  9  Brian Lawton
 0  10  2   8  0  0  0  0   8 SWE HAR  C 36 *Mikael Nylander
 0  10  1   9  0  0  0  0   6 USA CHI RW 25  Dave Christian
 0  10  1   9  0  0  0  0  12 RUS NJ   D  7  Alexei Kasatonov
 0  10  1   9  1  0  0  0  47 CAN DET  D  2  Brad McCrimmon
 0   9  5   4  0  0  0  0  57 CAN PHI LW 10  Claude Boivin
 0   9  5   4  0  0  0  0  42 TCH OTT RW 25  Tomas Jelinek
 0   9  4   5  0  1  0  0  23 CAN STL  C 28  Bob Bassen
 0   9  4   5  0  0  0  0  14 USA NYR LW 29  Phil Bourque
 0   9  4   5  0  1  0  0   0 RUS BUF LW 13  Yuri Khmylev
 0   9  4   5  0  1  0  0  12 USA SJ  LW 18  Dave Snuggerud
 0   9  3   6  0  0  0  0   0 RUS BUF RW  9 *Viktor Gordijuk
 0   9  3   6  1  0  0  0  24 TCH TB   D 44 *Roman Hamrlik
 0   9  3   6  0  0  0  0  18 RUS PHI LW 23  Andrei Lomakin
 0   9  3   6  0  0  0  0  24 CAN OTT RW 20  Andrew McBain
 0   9  3   6  0  0  0  0  12 ?   HAR  C 39 *Robert Petrovicky
 0   9  2   7  0  0  0  0  12 CAN TB   D 25  Marc Bergevin
 0   9  2   7  1  0  0  0  46 RUS NJ   D  2  Viacheslav Fetisov
 0   9  2   7  0  0  0  0  56 CAN DET LW 17  Gerard Gallant
 0   9  2   7  0  0  0  0  16 CAN EDM LW  7  Martin Gelinas
 0   9  2   7  0  0  0  0   2 CAN TB   C  8  Ken Hodge
 0   9  2   7  0  0  0  0  26 SWE CAL  D 34  Roger Johansson
 0   9  2   7  2  0  0  0  29 CAN QUE  D  7  Curtis Leschyshyn
 0   9  2   7  0  0  0  0  39 CAN WAS RW 16  Alan May
 0   9  2   7  0  0  0  0  22 KOR PIT  D  2  Jim Paek
 0   9  2   7  0  0  0  0  31 CAN VAN RW 25  Jim Sandlak
 0   9  0   9  0  0  0  0  34 CAN OTT  C  7  Mark Lamb
 0   8  6   2  0  0  0  0  10 CAN TOR  C  7  Dave McLlwain
 0   8  4   4  0  0  0  0  16 CAN MON  D 48  J.J. Daigneault
 0   8  4   3  0  0  0  0  47 CAN MON RW 36  Todd Ewen
 0   8  4   4  0  1  0  0  12 USA VAN  C 15  Tom Fergus
 0   8  4   4  0  0  0  0   8 USA TOR LW 24  Joe Sacco
 0   8  3   5  1  0  0  0  30 CAN WAS  D 14  Paul Cavallini
 0   8  3   5  0  0  0  0  15 USA NJ  LW  9  Tom Chorske
 0   8  3   5  0  0  0  0  57 CAN VAN  D  5  Dana Murzyn
 0   8  3   5  0  0  1  0  67 CAN CAL RW 22  Ronnie Stern
 0   8  2   6  1  0  0  0  10 CAN WAS  D 36  Shawn Anderson
 0   8  2   6  0  0  0  0  28 TCH EDM  C 42  Josef Beranek
 0   8  2   6  1  0  0  0  41 USA SJ  LW  8  Larry DePalma
 0   8  2   6  0  0  0  0  22 CAN TOR  D 23  Todd Gill
 0   8  2   6  0  0  0  0  19 CAN BUF  C 14  Dave Hannan
 0   8  2   6  0  0  0  0  83 RUS DET  D 16  Vladimir Konstantinov
 0   8  2   6  0  1  0  0  26 USA NYI  D  7 *Scott Lachance
 0   8  2   6  1  0  0  0   2 CAN BOS  D 26  Glenn Wesley
 0   8  2   6  0  0  0  0  10 CAN STL  C 18  Ron Wilson
 0   8  1   7  0  0  0  0  41 CAN TOR  D 55 *Drake Berehowsky
 0   8  1   7  0  0  0  0  28 SWI NYR  D 14  Mark Hardy
 0   8  1   7  0  0  0  0  31 CAN QUE RW 18  Mike Hough
 0   8  1   7  0  0  0  0  32 CAN BOS  D 32  Don Sweeney
 0   8  0   8  0  0  0  0  14 TCH VAN  D 24 *Jiri Slegr
 0   7  5   2  1  1  0  0  65 CAN EDM RW 16  Kelly Buchberger
 0   7  5   2  0  1  0  0  12 USA SJ   C 47  Mike Sullivan
 0   7  4   3  0  1  0  0   4 CAN LA  LW 15  Pat Conacher
 0   7  4   3  0  0  0  0   6 CAN LA  LW 29 *Lonnie Loach
 0   7  4   3  2  1  0  0   6 FIN SJ  RW 26  Petri Skriko
 0   7  3   4  3  0  0  0   6 CAN OTT  C 15  David Archibald
 0   7  3   4  0  0  0  0  40 CAN STL  D  5  Garth Butcher
 0   7  3   4  0  0  0  0   4 SWE NYR LW 20  Jan Erixon
 0   7  3   4  0  0  0  0   6 CAN MIN RW 12  Stewart Gavin
 0   7  3   4  0  0  0  0   2 USA NJ  RW 12 *Bill Guerin
 0   7  3   4  1  0  0  0   4 USA WAS  C 22 *Steve Konowalchuk
 0   7  3   4  1  0  0  0  30 TCH CHI  D  6  Frantisek Kucera
 0   7  3   4  2  0  0  0  24 CAN NJ  RW 15  John Maclean
 0   7  3   4  1  0  0  0  79 CAN CHI  D  2  Bryan Marchment
 0   7  3   4  1  0  0  0   6 CAN PHI LW 14  Mark Pederson
 0   7  3   4  1  0  0  0  30 CAN BOS  D 34  David Shaw
 0   7  2   5  0  0  0  0  29 USA HAR  D  6  Adam Burt
 0   7  2   5  0  1  0  0   2 CAN TB   C 11  Steve Kasper
 0   7  2   5  0  0  0  0  31 CAN NYI RW 24  Dan Marois
 0   7  2   5  0  0  0  0  62 CAN SJ   D  4  Jay More
 0   7  2   5  2  0  0  0  25 USA STL  D 20  Lee Norwood
 0   7  2   5  1  0  0  0   4 FIN NJ   C 34  Janne Ojanen
 0   7  2   5  0  0  0  0  32 CAN LA   D 25 *Darryl Sydor
 0   7  2   5  0  0  0  0  20 CAN PIT LW 14  Dave Tippett
 0   7  1   6  0  0  0  0  23 CAN CHI RW 44  Rob Brown
 0   7  1   6  0  0  0  0  48 CAN PHI  D 29  Terry Carkner
 0   7  1   6  0  0  0  0  47 CAN HAR  D  5  Steve Konroyd
 0   7  1   6  0  0  0  0  22 CAN EDM  D 25  Geoff Smith
 0   7  0   7  0  0  0  0  35 CAN EDM  D 28  Craig Muni
 0   7  0   7  0  0  0  0   8 CAN CAL  D 18  Trent Yawney
 0   6  4   2  1  0  0  0   8 CAN SJ  RW 39 *Ed Courtenay
 0   6  4   2  0  0  0  0  53 CAN QUE RW 65  Tim Hunter
 0   6  4   2  2  0  0  0   4 USA NYR LW 25  *Steve King
 0   6  4   2  0  0  0  0  24 CAN NYI  C 10  Claude Loiselle
 0   6  4   2  0  0  0  0  40 TCH CAL  D  3  Frank Musil
 0   6  4   2  1  0  0  0   0 RUS BOS LW 13 *Gregori Pantaleyev
 0   6  4   2  0  1  0  0   2 CAN BOS LW 17  Dave Reid
 0   6  4   2  0  0  0  0  10 CAN NJ   C 14  Kevin Todd
 0   6  3   3  0  0  0  0  34 USA CAL  D  5  Chris Dahlquist
 0   6  3   3  2  0  0  0  35 CAN NYR RW 26  Joey Kocur
 0   6  3   3  0  0  0  0   8 USA LA  RW 37  Bob Kudelski
 0   6  3   3  1  0  0  0  28 CAN WIN  C 19  Troy Murray
 0   6  3   3  0  0  0  0  40 CAN TOR LW 21  Mark Osborne
 0   6  2   4  0  0  0  0  24 CAN OTT  C 16  Laurie Boschman
 0   6  2   4  1  0  0  0   0 CAN SJ  LW 21  Yvon Corriveau
 0   6  2   4  0  0  0  0  62 CAN VAN  D 22  Robert Dirk
 0   6  2   4  1  0  0  0  24 CAN EDM  D  2  Chris Joseph
 0   6  2   4  0  0  0  0  38 CAN PIT LW 24  Troy Loney
 0   6  2   4  1  0  0  0  78 USA SJ   D 19 *Doug Zmolek
 0   6  1   5  1  0  0  0   2 SWE PHI  C  9  Pelle Eklund
 0   6  1   5  1  0  0  0  10 USA NYR  D 32 *Mike Hurlbut
 0   6  1   5  0  0  0  0  66 USA MIN  D  3  Craig Ludwig
 0   6  1   5  0  0  0  0  55 CAN NYR  D 24  Jay Wells
 0   6  0   6  0  0  0  0   7 CAN HAR RW 12  Tim Kerr
 0   6  0   6  0  0  0  0  29 CAN TOR  D 34  Jamie Macoun
 0   6  0   6  0  0  0  0  23 CAN OTT  D 34  Darren Rumble
 0   5  5   0  0  0  0  0  10 CAN PIT RW 39 *Mike Needham
 0   5  4   1  0  0  0  0  15 RUS STL LW 25 *Vitali Prokhorov
 0   5  3   2  0  0  0  0  14 FRA STL LW 36 *Philippe Bozon
 0   5  3   2  0  0  0  0  32 CAN HAR LW  7  Randy Cunneyworth
 0   5  3   2  2  0  0  0   0 CAN OTT  C 11  Mark Freer
 0   5  3   2  0  1  0  0   6 GER NYR  C 16  Randy Gilhen
 0   5  3   2  0  1  0  0   2 CAN MON  C 39  Brian Skrudland
 0   5  3   2  2  0  0  0   6 CAN MIN  C 18  Bobby Smith
 0   5  2   3  1  1  0  0  22 CAN SJ   C 16  Perry Berezan
 0   5  2   3  2  0  0  0  27 CAN SJ  LW 15  David Bruce
 0   5  2   3  0  0  0  0  42 USA BUF  D  6 *Keith Carney
 0   5  2   3  0  0  0  0  10 RUS CAL  D 21  Alexander Godynyuk
 0   5  2   3  0  0  0  0   8 CAN PHI  D 26  Gord Hynes
 0   5  2   4  0  0  0  0 109 LIT NYI  D 11 *Darius Kasparaitis
 0   5  2   3  0  0  0  0  49 CAN TOR  D  2  Sylvain Lefebvre
 0   5  2   3  1  0  0  0   4 CAN NJ  RW 18 *Scott Pellerin
 0   5  2   3  0  0  0  0  10 USA MON RW 31 *Ed Ronan
 0   5  1   4  0  0  0  0  80 CAN STL RW 39  Kelly Chase
 0   5  1   4  0  0  0  0  95 CAN BUF  D 34  Gord Donnelly
 0   5  1   4  0  0  0  0  30 CAN CHI  C 20  Mike Hudson
 0   5  1   4  0  0  0  0   8 USA NYI  C 18 *Marty McInnis
 0   5  1   4  0  0  0  0  41 CAN MON  D 24  Lyle Odelein
 0   5  1   4  1  0  0  0   2 CAN DET LW 25  John Ogrodnick
 0   5  1   4  0  0  0  0  33 CAN TOR  D  3  Bob Rouse
 0   5  1   4  0  1  0  0   6 CAN PIT  C 26  Mike Stapleton
 0   5  1   4  0  0  0  0  68 USA TB   D 32  Peter Taglianetti
 0   5  1   4  0  0  0  0  16 CAN LA  RW 18  Dave Taylor
 0   5  1   4  1  0  0  0   0 CAN SJ   C 14 *Ray Whitney
 0   5  1   4  0  0  0  0  15 CAN BOS  D 36  Jim Wiemer
 0   5  0   5  0  0  0  0  14 USA PIT  G 35  Tom Barrasso
 0   5  0   5  0  0  0  0  16 CAN WIN RW 15  John Druce
 0   5  0   5  0  0  0  0   2 TCH LA   C 13 *Robert Lang
 0   5  0   5  0  0  0  0  60 CAN EDM  D 22  Luke Richardson
 0   4  4   0  0  0  0  0  10 USA OTT LW 28  Jeff Lazaro
 0   4  3   1  0  0  0  0 103 CAN SJ  RW 22  Lyndon Byers
 0   4  3   1  0  1  0  0  22 USA BUF RW 29  Bob Corkum
 0   4  3   1  0  0  0  0   4 CAN SJ   C 33  Dale Craigwell
 0   4  3   1  0  0  0  0  31 CAN NJ  LW  8  Troy Mallette
 0   4  3   1  0  0  0  0  22 CAN WIN LW 21  Russ Romaniuk
 0   4  3   1  0  0  0  0 135 CAN LA  LW 10  Warren Rychel
 0   4  2   2  0  0  0  0   9 CAN BOS LW 18  Brent Ashton
 0   4  2   2  0  1  0  0   6 CAN NJ  RW 11  Dave Barr
 0   4  2   2  0  0  0  0   9 CAN PHI  C 34 *Len Barrie
 0   4  2   2  0  0  0  0  69 CAN CAL LW 16  Craig Berube
 0   4  2   2  0  0  0  0   8 CAN PIT LW 20 *Jeff Daniels
 0   4  2   2  1  0  0  0  30 USA OTT  D 23 *Chris Luongo
 0   4  2   2  0  0  0  0  58 CAN SJ  RW 36  Jeff Odgers
 0   4  2   2  2  0  0  0   6 CAN WAS  C 15 *Reggie Savage
 0   4  2   2  0  0  0  0  18 CAN OTT LW  9  Doug Smail
 0   4  2   2  0  0  0  0   2 TCH BOS RW 22 *Jozef Stumpel
 0   4  1   3  0  0  0  0  57 CAN NJ   D  3  Ken Daneyko
 0   4  1   3  0  0  0  0  12 CAN PIT LW 12  Bob Errey
 0   4  1   3  0  0  0  0  62 CAN QUE  D 29  Steve Finn
 0   4  1   3  0  0  0  0  85 CAN HAR  D 27  Doug Houda
 0   4  1   3  0  0  0  0  66 CAN BOS LW 42  Brent Hughes
 0   4  1   3  0  0  0  0  19 CAN STL LW 26  Dave Mackey
 0   4  1   3  0  0  0  0  45 CAN PHI  D 27 *Ryan McGill
 0   4  1   3  0  0  0  0  37 CAN LA   C 44  John McIntyre
 0   4  1   3  0  0  0  0   4 CAN STL  C 37 *Kevin Miehm
 0   4  1   3  0  0  0  0  16 CAN HAR  D 41  Allen Pedersen
 0   4  1   3  0  1  0  0  33 CAN STL  D 33  Stephane Quintal
 0   4  1   3  0  0  0  0   6 CAN BUF  D 41  Ken Sutton
 0   4  1   3  0  0  0  0   4 USA BOS LW 16  Tim Sweeney
 0   4  1   3  0  0  0  0  19 RUS WIN  D  5  Igor Ulanov
 0   4  1   3  0  0  0  0   2 CAN EDM  C 20 *Shaun VanAllen
 0   4  1   3  0  0  0  0   6 RUS EDM LW 23 *Vladimir Vujtek
 0   4  1   3  0  0  0  0  21 USA QUE  D  6  Craig Wolanin
 0   4  0   4  0  0  0  0  12 CAN BUF  D  4 *Philippe Boucher
 0   4  0   4  0  0  0  0   0 CAN CHI  D 45 *Karl Dykhuis
 0   4  0   4  0  0  0  0   4 CAN PIT  D 33  Bryan Fogarty
 0   4  0   4  0  0  0  0  26 CAN BUF  D 24  Randy Moller
 0   4  0   4  0  0  0  0   6 CAN MIN  C 11  Dan Quinn
 0   4  0   4  0  0  0  0   2 USA NYR  G 35  Mike Richter
 0   3  3   0  0  0  0  0   6 CAN BUF RW 28  Donald Audette
 0   3  2   1  0  0  0  0  47 RUS WIN  D  3 *Sergei Bautin
 0   3  2   1  0  0  0  0   4 USA TB  RW 27 *Stan Drulia
 0   3  2   1  0  0  0  0   4 CAN NYI  C 39 *Travis Green
 0   3  2   1  0  0  0  0  45 CAN OTT LW 10 *Darcy Loewen
 0   3  2   1  0  0  0  0  12 CAN STL LW 10  Dave Lowry
 0   3  2   1  0  1  0  0  14 CAN BUF RW 17  Colin Patterson
 0   3  2   1  0  0  0  0  12 USA BUF  D  5  Mike Ramsey
 0   3  2   1  1  0  0  0  77 CAN BUF LW 32  Rob Ray
 0   3  2   1  0  0  0  0   9 CAN MON LW 32  Mario Roberge
 0   3  2   1  1  0  0  0   2 CAN STL LW  9 *Jason Ruff
 0   3  1   2  0  0  0  0  20 FIN PIT  D  6  Peter Ahola
 0   3  1   2  1  0  0  0  10 SWE NJ   D  6  Tommy Albelin
 0   3  1   2  0  1  0  0  35 CAN NYR  D  6  Joe Cirella
 0   3  1   2  0  0  0  0  21 CAN BOS  D  6  Glen Featherstone
 0   3  1   2  1  0  0  0   2 RUS QUE LW 17  Valeri Kamensky
 0   3  1   2  0  0  0  0  14 USA WIN  D 22  Mike Lalor
 0   3  1   2  0  0  0  0  50 SWE PIT  D 28  Kjell Samuelsson
 0   3  1   2  0  0  0  0  39 CAN VAN LW 23  Garry Valk
 0   3  1   2  0  0  0  0  48 CAN NYI RW 12  Mick Vukota
 0   3  0   3  0  0  0  0   4 SWE NYR  D  5  Peter Andersson
 0   3  0   3  0  0  0  0   2 CAN VAN  D 44  Dave Babych
 0   3  0   3  0  0  0  0   0 CAN WIN  G 35  Bob Essensa
 0   3  0   3  0  0  0  0  57 USA MIN  D  6  Jim Johnson
 0   3  0   3  0  0  0  0  56 CAN NYR LW 19  Kris King
 0   3  0   3  0  0  0  0  28 USA STL  D  4  Rick Zombo
 0   2  2   0  0  0  0  0  95 CAN NYR RW 28  Tie Domi
 0   2  2   0  0  0  0  0   2 CAN LA   C 28 *Guy Leveque
 0   2  2   0  0  0  0  0  36 CAN CHI  D  8  Cam Russell
 0   2  1   1  0  0  0  0   2 CAN TB  RW 12  John Callander
 0   2  1   1  0  0  0  0  16 CAN HAR  C 23  Paul Gillis
 0   2  1   1  0  0  0  0  18 CAN WAS LW 24  Jeff Greenlaw
 0   2  1   1  0  0  0  0  53 CAN OTT  D  5  Ken Hammond
 0   2  1   1  0  0  0  0   2 USA CAL RW  ?  ? Harkins
 0   2  1   1  0  0  0  0  26 CAN HAR  D 29  Randy Ladouceur
 0   2  1   1  0  0  0  0   4 CAN NYR  D  4  Kevin Lowe
 0   2  1   1  0  0  0  0  29 USA EDM LW 12  David Maley
 0   2  1   1  0  0  0  0  17 CAN TOR LW 18 *Kent Manderville
 0   2  1   1  0  0  0  0   8 CAN MIN  D  4 *Richard Matvichuk
 0   2  1   1  0  0  0  0  42 CAN HAR LW 33  Jim McKenzie
 0   2  1   1  0  0  0  0   2 CAN TB   C 20  Michel Mongeau
 0   2  1   1  0  0  0  0  12 CAN NYI  D 36  Gary Nylund
 0   2  1   1  1  0  0  0   2 RUS QUE  D  4  Mikhail Tatarinov
 0   2  1   1  0  0  0  0  15 USA BUF RW  ? *Scott Thomas
 0   2  0   2  0  0  0  0   0 CAN CHI  D 47 *Adam Bennett
 0   2  0   2  0  0  0  0   0 USA NJ  RW 24  Doug Brown
 0   2  0   2  0  0  0  0  19 CAN PHI RW 21  Dave Brown
 0   2  0   2  0  0  0  0  12 RUS PHI  C 22  V. Butsayev
 0   2  0   2  0  0  0  0   0 USA WIN  C 18  Bryan Erickson
 0   2  0   2  0  0  0  0  67 CAN QUE  D 52  Adam Foote
 0   2  0   2  0  0  0  0  10 CAN STL  S  2  Curt Giles
 0   2  0   2  0  0  0  0  68 USA TB  RW 23  Mark Hartman
 0   2  0   2  0  0  0  0   4 USA STL  D 44 *Bret Hedican
 0   2  0   2  0  0  0  0   0 CAN LA   G 32  Kelly Hrudey
 0   2  0   2  0  0  0  0  17 CAN WIN  D 26  Dean Kennedy
 0   2  0   2  0  0  0  0   0 CAN BUF  D  3  Grant Ledyard
 0   2  0   2  0  0  0  0  16 CAN OTT  D 14  Brad Marsh
 0   2  0   2  0  0  0  0  10 USA OTT  D 24  Mark Osiecki
 0   2  0   2  0  0  0  0   4 CAN CAL  G 30  Mike Vernon
 0   2  0   2  0  0  0  0  24 CAN SJ   D  5  Neil Wilkinson
 0   2  0   2  0  0  0  0  57 CAN SJ   D  2  Rob Zettler
 0   1  1   0  0  0  0  0   0 ?   HAR  ?  ?  ? Govedaris
 0   1  1   0  1  0  0  0  15 USA MON  D 38 *Sean Hill
 0   1  1   0  0  0  0  0   2 CAN HAR RW 34  Jamie Leach
 0   1  1   0  0  0  0  0   8 CAN WIN  C 50  Rob Murray
 0   1  1   0  1  0  0  0   2 CAN CAL  D  7  Michel Petit
 0   1  1   0  0  0  0  0   0 CAN SJ  LW 44 *Michel Picard
 0   1  0   1  0  0  0  0  41 CAN STL  D 34  Murray Baron
 0   1  0   1  0  0  0  0  14 CAN WAS  G 33  Don Beaupre
 0   1  0   1  0  0  0  0   0 CAN PHI  G 35  Stephane Beauregard
 0   1  0   1  0  0  0  0  14 CAN CHI  G 30  Ed Belfour
 0   1  0   1  0  0  0  0   0   ? WIN  ?  ?  ? Brickley
 0   1  0   1  0  0  0  0  10 CAN HAR  G  1  Sean Burke
 0   1  0   1  0  0  0  0   6 CAN WIN  D  8  Randy Carlyle
 0   1  0   1  0  0  0  0   2 CAN DET  G 32  Tim Cheveldae
 0   1  0   1  0  0  0  0  23 CAN LA   D  6  Jeff Chychrun
 0   1  0   1  0  0  0  0  24 USA DET RW 27 *Jim Cummins
 0   1  0   1  0  0  0  0  90 CAN EDM LW 29  Louie Debrusk
 0   1  0   1  0  0  0  0   0 CAN QUE  G 31  Stephane Fiset
 0   1  0   1  0  0  0  0   0 SWE CAL RW 27  Tomas Forslund
 0   1  0   1  0  0  0  0   6 CAN OTT  C 27  Marc Fortier
 0   1  0   1  0  0  0  0  69 CAN CHI LW 23  Stu Grimson
 0   1  0   1  0  0  0  0   2 CAN SJ   G  1  Brian Hayward
 0   1  0   1  0  0  0  0   6 USA TB   D 26  Matt Hervey
 0   1  0   1  0  0  0  0   0 CAN WAS  G 39  Jim Hrivnak
 0   1  0   1  0  0  0  0   2 USA TB   G 35  Pat Jablonski
 0   1  0   1  0  0  0  0  14 CAN PIT  D  3  Grant Jennings
 0   1  0   1  0  0  0  0   4 CAN STL  G 31  Curtis Joseph
 0   1  0   1  0  0  0  0   0 RUS STL LW 12 *Vitali Karamnov
 0   1  0   1  0  0  0  0   2 CAN WIN RW 12  Alan Kerr
 0   1  0   1  0  0  0  0   0   ? WAS  ?  ?  ? Kote
 0   1  0   1  0  0  0  0   4 CAN OTT  D  2  Jim Kyte
 0   1  0   1  0  0  0  0   0 CAN STL  D 41 *Dan Laperriere
 0   1  0   1  0  0  0  0   2 CAN BOS  D 37  Dominic Lavoie
 0   1  0   1  0  0  0  0  18 USA WIN  C 24 *Scott Levins
 0   1  0   1  0  0  0  0  10 CAN SJ   D 38  Pat MacLeod
 0   1  0   1  0  0  0  0   7 CAN TB  LW 17  Basil McRae
 0   1  0   1  0  0  0  0   8 CAN BOS  G 35  Andy Moog
 0   1  0   1  0  0  0  0   2 CAN OTT  C 18  Rob Murphy
 0   1  0   1  0  0  0  0  86 CAN NYI  D 47  Richard Pilon
 0   1  0   1  0  0  0  0   8 CAN EDM  G 30  Bill Ranford
 0   1  0   1  0  0  0  0   0 ?   BOS  ?  ?  Stephane Richer
 0   1  0   1  0  0  0  0   0 CAN PHI  G 33 *Dominic Roussel
 0   1  0   1  0  0  0  0   4 CAN MON  G 33  Patrick Roy
 0   1  0   1  0  0  0  0   6 CAN WAS  D 28 *Brad Schlegel
 0   1  0   1  0  0  0  0   0 CAN SJ   D 45 *Claudio Scremin
 0   1  0   1  0  0  0  0   4 CAN NJ   C 10 *Jarrod Skalde
 0   1  0   1  0  0  0  0   2 CAN MIN LW 21  Derrick Smith
 0   1  0   1  0  0  0  0  37 CAN CAL  D  6  Greg Smyth
 0   1  0   1  0  0  0  0   2 TCH PIT RW 82 *Martin Straka
 0   1  0   1  0  0  0  0  54 CAN LA   D  3  Brent Thompson
 0   1  0   1  0  0  0  0  49 CAN OTT RW 33  Jim Thomson
 0   1  0   1  0  0  0  0  15 CAN DET  D 29  Dennis Vial
 0   1  0   1  0  0  0  0   2 CAN VAN  G 35  Kay Whitmore
 0   1  0   1  0  0  0  0   6 CAN LA  RW  9 *Sean Whyte
 0   1  0   1  0  0  0  0   0 CAN BOS RW 40 *Chris Winnes
 0   1  0   1  0  0  0  0   4 CAN WAS  D 25 *Jason Woolley
 0   1  0   1  0  0  0  0   0 CAN TB   G  1  Wendell Young
 0   0  0   0  0  0  0  0  47 CAN HAR  D 26  Jim Agnew
 0   0  0   0  0  0  0  0   0 CAN VAN LW 31 *Shawn Antoski
 0   0  0   0  0  0  0  0   0 CAN CHI  D 42 *Steve Bancroft
 0   0  0   0  0  0  0  0   0 CAN WIN  C 14  Stu Barnes
 0   0  0   0  0  0  0  0   0 CAN MIN RW 32 *Doug Barrault
 0   0  0   0  0  0  0  0  58 CAN TOR  D 22  Ken Baumgartner
 0   0  0   0  0  0  0  0   0 CAN TB   G 30  J.C Bergeron
 0   0  0   0  0  0  0  0  20 CAN MIN  D  5  Brad Berry
 0   0  0   0  0  0  0  0   0 CAN NJ   G  1  Craig Billington
 0   0  0   0  0  0  0  0   2 USA BUF  D 15  Greg Brown
 0   0  0   0  0  0  0  0  26 CAN CHI  D 17  Rod Buskas
 0   0  0   0  0  0  0  0   0 SWE MON RW 20 *Patrik Carnback
 0   0  0   0  0  0  0  0  16 USA MIN  G 30  Jon Casey
 0   0  0   0  0  0  0  0   7 CAN PIT RW 16  Jay Caufield
 0   0  0   0  0  0  0  0  21 USA PHI  D 44  Shawn Cronin
 0   0  0   0  0  0  0  0   0 CAN WAS  G 35 *Byron Dafoe
 0   0  0   0  0  0  0  0   0 CAN BUF  G 35  Tom Draper
 0   0  0   0  0  0  0  0   0 CAN MON  D 34  Donald Dufresne
 0   0  0   0  0  0  0  0   0 USA NJ  RW 18 *David Emma
 0   0  0   0  0  0  0  0   0 CAN NYI  G 30  Mark Fitzpatrick
 0   0  0   0  0  0  0  0   0 CAN TOR  G 31  Grant Fuhr
 0   0  0   0  0  0  0  0   0 CAN SJ   G 30  Jeff Hackett
 0   0  0   0  0  0  0  0   0 TCH BUF  G 39  Dominik Hasek
 0   0  0   0  0  0  0  0   2 CAN NYI  G 35  Glenn Healy
 0   0  0   0  0  0  0  0   0 CAN CAL  C 13 *Shawn Heaphy
 0   0  0   0  0  0  0  0   0 USA STL  G 29 *Guy Hebert
 0   0  0   0  0  0  0  0  14 CAN QUE  G 27  Ron Hextall
 0   0  0   0  0  0  0  0   0 CAN BOS LW 61 *Bill Huard
 0   0  0   0  0  0  0  0  14 CAN WAS RW 27  Mark Hunter
 0   0  0   0  0  0  0  0   0 LAT SJ   G 32 *Arturs Irbe
 0   0  0   0  0  0  0  0   0 CAN WIN LW 28  Bob Joyce
 0   0  0   0  0  0  0  0   4 ?   QUE  D 59 *Dave Karpa
 0   0  0   0  0  0  0  0   9 CAN BOS RW  ?  Darin Kimble
 0   0  0   0  0  0  0  0   2 SWE MON RW 27 *Patrik Kjellberg
 0   0  0   0  0  0  0  0   2 RUS CHI RW 59 *Sergei Krivokasov
 0   0  0   0  0  0  0  0   0 TCH VAN  C 58  Robert Kron
 0   0  0   0  0  0  0  0  14 CAN DET  D  8 *Gord Kruppke
 0   0  0   0  0  0  0  0  12 TAI WAS  D  5  Rod Langway
 0   0  0   0  0  0  0  0   0 CAN DET RW 20 *Martin Lapointe
 0   0  0   0  0  0  0  0   8 CAN TOR  C 11  Guy Larose
 0   0  0   0  0  0  0  0   0 CAN CAL LW 38 *Patrick Lebeau
 0   0  0   0  0  0  0  0   0 CAN WIN RW 37  John Leblanc
 0   0  0   0  0  0  0  0   4 CAN BOS  G  1  Rejean Lemelin
 0   0  0   0  0  0  0  0   4 CAN EDM  D 35 *Francois Leroux
 0   0  0   0  0  0  0  0   0 ?   OTT  G 30 *Darrin Madeley
 0   0  0   0  0  0  0  0   4 CAN TOR  D  8  Bob McGill
 0   0  0   0  0  0  0  0   4 CAN VAN  G  1  Kirk McLean
 0   0  0   0  0  0  0  0   2 CAN TOR  C 36  Ken McRae
 0   0  0   0  0  0  0  0  21 CAN OTT  D 55  Brad Miller
 0   0  0   0  0  0  0  0   2 CAN PHI  C 41 *Glenn Mulvenna
 0   0  0   0  0  0  0  0   4 CAN PHI  D  5  Ric Nattress
 0   0  0   0  0  0  0  0   0 CAN NJ   D  5  Myles O'Connor
 0   0  0   0  0  0  0  0   0 CAN HAR  G 40  Frank Pietrangelo
 0   0  0   0  0  0  0  0   0 CAN TOR  G 29  Felix Potvin
 0   0  0   0  0  0  0  0   0 CAN BUF  G 31  Daren Puppa
 0   0  0   0  0  0  0  0   2 CAN MON  G 37 *Andre Racicot
 0   0  0   0  0  0  0  0   0 ?   CAL  G 35  Jeff Reese
 0   0  0   0  0  0  0  0   2 CAN DET  G 37  Vincent Riendeau
 0   0  0   0  0  0  0  0   9 CAN TOR  D 28  Darryl Shannon
 0   0  0   0  0  0  0  0   6 POL OTT  G 31  Peter Sidorkiewicz
 0   0  0   0  0  0  0  0  11 CAN TB  RW 13  Martin Simard
 0   0  0   0  0  0  0  0   0 USA LA   G 35 *Robb Stauber
 0   0  0   0  0  0  0  0   8 CAN WIN  G 31  Rick Tabaracci
 0   0  0   0  0  0  0  0   0 USA CHI RW 68 *Steve Tepper
 0   0  0   0  0  0  0  0   2 USA NJ   G 31  Chris Terreri
 0   0  0   0  0  0  0  0   2 RUS CAL  G  1 *Andrei Trefilov
 0   0  0   0  0  0  0  0   0 CAN EDM  G  1  Ron Tugnutt
 0   0  0   0  0  0  0  0  21 CAN QUE  D 15  Tony Twist
 0   0  0   0  0  0  0  0   0 USA NYR  G 34  John Vanbiesbrouck
 0   0  0   0  0  0  0  0   0 CAN CHI  G 29  Jim Waite
 0   0  0   0  0  0  0  0   4 CAN MIN  G 35  Darcy Wakaluk
 0   0  0   0  0  0  0  0   2 CAN VAN  C  9  Ryan Walter
 0   0  0   0  0  0  0  0   0 CAN TOR  G  1  Rick Wamsley
 0   0  0   0  0  0  0  0   0 CAN OTT  G  1  Steve Weeks
 0   0  0   0  0  0  0  0   6 CAN PIT  G 31  Ken Wregget
 0   0  0   0  0  0  0  0   0 CAN DET  D 38 *Jason York
 0   0  0   0  0  0  0  0   4 USA CAL RW 23 *C.J. Young
 0   0  0   0  0  0  0  0   2 RUS NYR  D 21  *Sergei Zubov
The program ips.c is a program that manipulates the stats in files ips and
scips. Copy ips.c to scips.c and change the line in scips.c:

#define SC 0

to:

#define SC 1

so that it will use the playoff stats. All comments concerning ips.c apply to
scips.c. The player stats program should work if you have C and Unix. It uses
the tool qsort. If you are not using Unix, uncomment the qsort (which is
really a slow bubble sort) routine.

To compile: cc -o ips ips.c
To run: ips [options]

Options:

-n#      Selects number of players listed (0=all)
-t<team> Selects players on <team>
-P<pos>  Selects players at position <pos>
-r       Selects players that are rookies
-R       Disables -r (for multiple lists)
-c<cty>  Selects players from country <cty>
-G#      Selects from players who have played at least # games (0=all)

-p  Points
-g  Goals
-a  Assists
-pp Power-play goals
-s  Short-handed goals
-e  Empty-net goals
-ps Penalty-shot goals
-pm Penalties in minutes
-pg Points/game
-gg Goals/game
-ag Assists/game
-pM Penalties in minutes/game
-h  (or any other invalid char) Help list

For -n -t -P -c and -G, <null> may be specified to unselect the option and
consider all players (<null> means nothing follows the option but a space).
To see allowable values for -t, -P, and -c, use -h for a list (not all teams
are available in the playoffs, -t for scips).

You can specify combinations, but n/t/P/G/r/R apply to all successive options
until over-ridden. For example,

ips -n0 -tBOS -PD -p -n5 -tNYR -P -pp

will list all Boston defenseman sorted by points (-n0 -tBOS -PD -p), followed
by the top 5 Rangers with power-play goals (-n5 -tNYR -P -pp). If there are
less than # (-n#) for a category, the listing ends (except for points). Default
number of players is 10. Default scoring is by points.

Only one of points/game, goals/game, assists/game, and penalties in minutes/
game will be printed. The default is points/game (although players are not
sorted by p/g unless it is selected by -pg).

The "Rnk" column will show each player's rank for the category. It reflects a
player's rank relative to all players, even if -t -r -P or -c is specified
(i.e. these options do not affect the rank).

The country field shows where a player was born. It does not imply lack of
eligibility to play for other countries where citizenship has been given.

<header>
Rnk  GP Pts P/g  G   A PG SG EG PS PIM Cty Tm  Ps  #  Player
---  -- --- --- -- --- -- -- -- -- --- --- --- -- --  ------

<header> will show the category being sorted on along with the number of
players to be listed and the restrictions on players (team, position, etc.).

Rnk   player rank
GP    games played
Pts   points
P/g   points/game (not shown if G/g, A/g, or PM/g is selected)
G     goals
G/g   goals/game (not shown above)
A     assists
A/g   assists/game (not shown above)
PG    power-play goals
SG    short-handed goals
EG    empty-net goals
PS    penalty-shot goals
PIM   penalties in minutes
PM/g  penalties in minutes/game (not shown above)
Cty   country
Tm    team
Ps    position
#     jersey number
Name  player name (preceeded by * if the player is a rookie)

Tom Wilson
wilson@cs.ucf.edu
/* (sc)ips.c - Written by Tom Wilson <wilson@cs.ucf.edu> */

#include <stdio.h>
#define N 800
#define NUM 10
#define SC 0
#define GP 0
#define PIM 1

/* SC chooses either regular season (0) or playoffs (1). GP determines whether
   or not games played is valid. PIM determines whether or not penalties in
   minutes is valid */

#if (SC)
char filename[] = "scipstats", progname[] = "scips";
#else
char filename[] = "ipstats", progname[] = "ips";
#endif

struct statsrec
 {int rank, pts, g, a, pg, sg, eg, ps, gp, pims;
  char team[4], pos[3], first[15], last[15], rookie, num[3], country[4];
  float ppg, gpg, apg, pimspg;
 } players[N];

char team[4], pos[3], country[4],
     *strings[12] =
      {"Point", "Goal", "Assist", "Power-play Goal", "Short-handed Goal",
       "Empty-net Goal", "Penalty-shot Goal", "Points/Game", "Goals/Game",
       "Assists/Game", "Penalty Minute", "Penalty Minutes/Game"};
int n, num, choice, comppts(), compgoals(), compassists(), compppgoals(),
    compshgoals(), compengoals(), comppsgoals(), rookie, compppg(), compgpg(),
    compapg(), comppims(), comppimspg(), mingp,
    (*compfuncs[12])() =
     {comppts, compgoals, compassists, compppgoals, compshgoals, compengoals,
      comppsgoals, compppg, compgpg, compapg, comppims, comppimspg};

main(argc,argv)
  int argc;
  char *argv[];
{int rank, oldpts, x, cnt;
 FILE *fp;
 char *s, c;
 struct statsrec *p;
 float gp;

 if ((fp = fopen(filename,"r")) == 0)
  {printf("no %s file.\n",filename);
   return;
  }
 while (1)
  {if (n == N)
    {printf("redefine N\n");
     return;
    }
   p = &players[n];
   fscanf(fp,"%d %d %d %d %d %d %d %d %d %s %s %s %s%c%c%s %s",&(p->gp),
          &(p->pts),&(p->g),&(p->a),&(p->pg),&(p->sg),&(p->eg),&(p->ps),
          &(p->pims),p->country,p->team,p->pos,p->num,&c,&(p->rookie),p->first,
          p->last);
   if (feof(fp))
     break;
   n++;
   if (p->gp)
    {gp = (float) (p->gp);
     p->ppg = (float) (p->pts) / gp;
     p->gpg = (float) (p->g) / gp;
     p->apg = (float) (p->a) / gp;
     p->pimspg = (float) (p->pims) / gp;
    }
   if (p->pts != oldpts)
    {rank = n;
     oldpts = p->pts;
    }
   p->rank = rank;
  }
 fclose(fp);
 num = NUM;
 choice = -1;
 cnt = 1;
 while (--argc > 0 && argv[cnt][0] == '-')
  {s = argv[cnt]+1;
   switch (*s)
    {case 'p':
       switch (*(s+1))
        {case 'p':
           choice = 3;
           break;
         case 's':
           choice = 6;
           break;
         case 'g':
           choice = 7;
           break;
         case 'm':
           choice = 10;
           break;
         case 'M':
           choice = 11;
           break;
         default:
           choice = 0;
           break;
        }
       break;
     case 'g':
       if (*(s+1) == 'g')
         choice = 8;
       else choice = 1;
       break;
     case 'a':
       if (*(s+1) == 'g')
         choice = 9;
       else choice = 2;
       break;
     case 's':
       choice = 4;
       break;
     case 'e':
       choice = 5;
       break;
     case 'n':
       if ((num = atoi(argv[cnt]+2)) > n || num == 0)
         num = n;
       choice = -1;
       break;
     case 'G':
       if ((mingp = atoi(argv[cnt]+2)) > 80 || mingp == 0)
         mingp = 0;
       choice = -1;
       break;
     case 'P':
       strcpy(pos,argv[cnt]+2);
       choice = -1;
       break;
     case 't':
       strcpy(team,argv[cnt]+2);
       choice = -1;
       break;
     case 'r':
       rookie = 1;
       choice = -1;
       break;
     case 'R':
       rookie = 0;
       choice = -1;
       break;
     case 'c':
       strcpy(country,argv[cnt]+2);
       choice = -1;
       break;
     default:
       printf("usage: %s [player-option] [stat-type]\n",progname);
       printf("  player-option = [-n# -t<team> -P<pos> -c<cty> -r -R -G#]\n");
       printf("  stat-type = [-p -g -a -pp -s -e -ps -pg -gg -ag -pm -pM]\n");
       printf("    #>0 (=0/<null> for all players)\n");
       printf("    <team>=BOS|BUF|CAL|CHI|DET|EDM|HAR|LA|MIN|MON|NJ|NYI|NYR|\n");
       printf("           OTT|PHI|PIT|QUE|SJ|STL|TB|TOR|VAN|WAS|WIN|<null>\n");
       printf("    <pos>=C|D|G|LW|RW|<null>\n");
       printf("    <cty>=CAN|CIS|FIN|FRA|GBR|GER|HAI|JAM|KOR|LAT|POL|SUI|SWE|TCH|USA|<null>\n");
       return;
    }
   cnt++;
   if (choice >= 0)
    {qsort((char *) players,(unsigned int) n,sizeof(struct statsrec),
           compfuncs[choice]);
     prtlist(choice);
    }
  }
 if (choice == -1)
  {qsort((char *) players,(unsigned int) n,sizeof(struct statsrec),
         compfuncs[0]);
   prtlist(0);
  }
}

prtlist(choice)
  int choice;
{int rank, val, x, y, z;
 struct statsrec *p, *p1;

 putchar('\n');
 if (num != n)
   printf("Top %d ",num);
 if (rookie)
   printf("Rookie ");
 if (choice >= 10)
   printf("%s Leaders",strings[choice]);
 else printf("%s Scorers",strings[choice]);
 if (country[0] != 0)
   printf(" from %s",country);
 if (team[0] != 0)
   printf(" for %s",team);
 if (pos[0] != 0)
   printf(" (%s)",pos);
 if (mingp != 0)
   printf(" [min %d GP]",mingp);
 putchar('\n');
 printf("Rnk ");
#if (GP)
 printf(" GP");
#endif
 printf(" Pts");
#if (GP)
 if (choice != 8 && choice != 9 && choice != 11)
   printf(" P/g");
#endif
 printf("  G");
 if (choice == 8)
   printf(" G/g");
 printf("   A");
 if (choice == 9)
   printf(" A/g");
 printf(" PG SG EG PS");
#if (PIM)
 printf(" PIM");
 if (choice == 11)
   printf(" PM/g");
#endif
 printf(" Cty Tm  Ps  #  Player\n");
 printf("--- ");
#if (GP)
 printf(" --");
#endif
 printf(" ---");
#if (GP)
 if (choice != 8 && choice != 9 && choice != 11)
   printf(" ---");
#endif
 printf(" --");
 if (choice == 8)
   printf(" ---");
 printf(" ---");
 if (choice == 9)
   printf(" ---");
 printf(" -- -- -- --");
#if (PIM)
 printf(" ---");
 if (choice == 11)
   printf(" ----");
#endif
 printf(" --- --- -- --  ------\n");
 for (x = y = val = 0; x < n && y < num; x++)
  {p = &players[x];
   switch (choice)
    {case 1:
       if (p->g == 0) return;
       dorank(&val,p->g,&rank,x);
       break;
     case 2:
       if (p->a == 0) return;
       dorank(&val,p->a,&rank,x);
       break;
     case 3:
       if (p->pg == 0) return;
       dorank(&val,p->pg,&rank,x);
       break;
     case 4:
       if (p->sg == 0) return;
       dorank(&val,p->sg,&rank,x);
       break;
     case 5:
       if (p->eg == 0) return;
       dorank(&val,p->eg,&rank,x);
       break;
     case 6:
       if (p->ps == 0) return;
       dorank(&val,p->ps,&rank,x);
       break;
     case 7:
       if (p->ppg == 0.0) return;
       dorank(&val,(int) (p->ppg * 10.0 + 0.5),&rank,x);
       break;
     case 8:
       if (p->gpg == 0.0) return;
       dorank(&val,(int) (p->gpg * 10.0 + 0.5),&rank,x);
       break;
     case 9:
       if (p->apg == 0.0) return;
       dorank(&val,(int) (p->apg * 10.0 + 0.5),&rank,x);
       break;
     case 10:
       if (p->pims == 0) return;
       dorank(&val,p->pims,&rank,x);
       break;
     case 11:
       if (p->pimspg == 0.0) return;
       dorank(&val,(int) (p->pimspg * 10.0 + 0.5),&rank,x);
       break;
     default:
       rank = p->rank;
    }
   if ((team[0] == 0 || strcmp(team,p->team) == 0) && (pos[0] == 0 ||
       strcmp(pos,p->pos) == 0) && (rookie == 0 || p->rookie == '*') &&
       (country[0] == 0 || strcmp(country,p->country) == 0))
    {y++;
     printf("%3d ",rank);
#if (GP)
     printf(" %2d",p->gp);
#endif
     printf(" %3d",p->pts);
#if (GP)
     if (choice != 8 && choice != 9 && choice != 11)
       printf(" %3.1f",p->ppg);
#endif
     printf(" %2d",p->g);
     if (choice == 8)
       printf(" %3.1f",p->gpg);
     printf(" %3d",p->a);
     if (choice == 9)
       printf(" %3.1f",p->apg);
     printf(" %2d %2d %2d %2d",p->pg,p->sg,p->eg,p->ps);
#if (PIM)
     printf(" %3d",p->pims);
     if (choice == 11)
       printf(" %4.1f",p->pimspg);
#endif
     printf(" %-3s %-3s %2s %2s %c%s %s\n",p->country,p->team,p->pos,p->num,
            p->rookie,p->first,p->last);
    }
  }
 for (y = 0; x < n; x++)
  {p = &players[x];
   p1 = &players[x-1];
   switch (choice)
    {case 0:
       z = (p->pts == p1->pts);
       break;
     case 1:
       z = (p->g == p1->g);
       break;
     case 2:
       z = (p->a == p1->a);
       break;
     case 3:
       z = (p->pg == p1->pg);
       break;
     case 4:
       z = (p->sg == p1->sg);
       break;
     case 5:
       z = (p->eg == p1->eg);
       break;
     case 6:
       z = (p->ps == p1->ps);
       break;
     case 7:
       z = (p->ppg == p1->ppg);
       break;
     case 8:
       z = (p->gpg == p1->gpg);
       break;
     case 9:
       z = (p->apg == p1->apg);
       break;
     case 10:
       z = (p->pims == p1->pims);
       break;
     case 11:
       z = (p->pimspg == p1->pimspg);
       break;
    }
   if (z)
     y += ((team[0] == 0 || strcmp(team,p->team) == 0) && (pos[0] == 0 ||
       strcmp(pos,p->pos) == 0) && (rookie == 0 || p->rookie == '*') &&
       (country[0] == 0 || strcmp(country,p->country) == 0));
   else break;
  }
 if (y)
  {printf("%d other",y);
   if (y != 1)
     putchar('s');
   printf(" tied\n",y);
  }
}

dorank(val,pval,rank,x)
  int *val, pval, *rank, x;
{if (*val != pval)
  {*rank = x+1;
   *val = pval;
  }
}

domingp(e1,e2)
  struct statsrec *e1, *e2;
{if (e1->gp < mingp && e2->gp >= mingp)
   return 1;
 if (e1->gp >= mingp && e2->gp < mingp)
   return -1;
 return 0;
}

comppts(e1,e2)
  struct statsrec *e1, *e2;
{int d;

 if ((d = domingp(e1,e2)) != 0)
   return d;
 if (e1->pts < e2->pts) return 1;
 if (e1->pts > e2->pts) return -1;
 if (e1->g < e2->g) return 1;
 if (e1->g > e2->g) return -1;
 return strcmp(e1->last,e2->last);
}

compppg(e1,e2)
  struct statsrec *e1, *e2;
{int d;

 if ((d = domingp(e1,e2)) != 0)
   return d;
 if (e1->ppg < e2->ppg) return 1;
 if (e1->ppg > e2->ppg) return -1;
 return comppts(e1,e2);
}

compgpg(e1,e2)
  struct statsrec *e1, *e2;
{int d;

 if ((d = domingp(e1,e2)) != 0)
   return d;
 if (e1->gpg < e2->gpg) return 1;
 if (e1->gpg > e2->gpg) return -1;
 return comppts(e1,e2);
}

compapg(e1,e2)
  struct statsrec *e1, *e2;
{int d;

 if ((d = domingp(e1,e2)) != 0)
   return d;
 if (e1->apg < e2->apg) return 1;
 if (e1->apg > e2->apg) return -1;
 return comppts(e1,e2);
}

dopts(e1,e2)
  struct statsrec *e1, *e2;
{if (e1->pts < e2->pts) return 1;
 if (e1->pts > e2->pts) return -1;
 return strcmp(e1->last,e2->last);
}

compgoals(e1,e2)
  struct statsrec *e1, *e2;
{int d;

 if ((d = domingp(e1,e2)) != 0)
   return d;
 if (e1->g < e2->g) return 1;
 if (e1->g > e2->g) return -1;
 dopts(e1,e2);
}

compassists(e1,e2)
  struct statsrec *e1, *e2;
{int d;

 if ((d = domingp(e1,e2)) != 0)
   return d;
 if (e1->a < e2->a) return 1;
 if (e1->a > e2->a) return -1;
 dopts(e1,e2);
}

compppgoals(e1,e2)
  struct statsrec *e1, *e2;
{int d;

 if ((d = domingp(e1,e2)) != 0)
   return d;
 if (e1->pg < e2->pg) return 1;
 if (e1->pg > e2->pg) return -1;
 dopts(e1,e2);
}

compshgoals(e1,e2)
  struct statsrec *e1, *e2;
{int d;

 if ((d = domingp(e1,e2)) != 0)
   return d;
 if (e1->sg < e2->sg) return 1;
 if (e1->sg > e2->sg) return -1;
 dopts(e1,e2);
}

compengoals(e1,e2)
  struct statsrec *e1, *e2;
{int d;

 if ((d = domingp(e1,e2)) != 0)
   return d;
 if (e1->eg < e2->eg) return 1;
 if (e1->eg > e2->eg) return -1;
 dopts(e1,e2);
}

comppsgoals(e1,e2)
  struct statsrec *e1, *e2;
{int d;

 if ((d = domingp(e1,e2)) != 0)
   return d;
 if (e1->ps < e2->ps) return 1;
 if (e1->ps > e2->ps) return -1;
 dopts(e1,e2);
}

comppims(e1,e2)
  struct statsrec *e1, *e2;
{if (e1->pims < e2->pims) return 1;
 if (e1->pims > e2->pims) return -1;
 return comppts(e1,e2);
}

comppimspg(e1,e2)
  struct statsrec *e1, *e2;
{int d;

 if ((d = domingp(e1,e2)) != 0)
   return d;
 if (e1->pimspg < e2->pimspg) return 1;
 if (e1->pimspg > e2->pimspg) return -1;
 return comppts(e1,e2);
}

/*
qsort(s,n,size,compfunc)
  struct statsrec *s;
  unsigned int n;
  int size, (*compfunc)();
{int x, y, z;
 struct statsrec sr;

 z = n-1;
 for (x = 0; x < z; x++)
   for (y = z; y >= x; y--)
     if (compfunc(&s[y],&s[y+1]) == 1)
      {sr = s[y];
       s[y] = s[y+1];
       s[y+1] = sr;
      }
}
*/