Introduction
I decided to write a few REXX programs to display various types
of information about football matches that I played with a certain football
game. This allowed me to display the league, statistics about my team and
all the results. Problem was, I had to run all these from the Shell and
after a while, it became a pain in the butt. Hence, FOOTBALL was born.
The purpose of FOOTBALL is a central point where all these programs can
be run from and to display the information without using the Shell. Before
all leagues had to be created manually and now, you can create a league and
maintain it, without quitting one program and running another. FOOTBALL
solves all these problems.
The program can only look after one league/division. Multiple leagues can
be setup and teams can be transferred between them, for promotion and
relegation using an external AREXX script. Cups can also be set-up and
played, using Extra Time, Penalties and Replays.
See Set Up Cup.
Football can now store player and match information such as referees,
attendances, goal scorers, bookings, substitutes and man of the match
awards. New options include renaming files, changing team names, changing
match scores and locale support.
Football has been tested with Workbench 2.04, 3.0, 3.1 and 3.5.
Points To Note:
The selector that allows you to select a team, is font adaptable. If the
current font is too big to display the data, then the selector will use
the default font, ie. topaz 8.
Copyright Information
Football is released as Freeware for everyone to use and love but should
you use the information generated, then consider COURTESY-WARE; add a note
saying the data was created by Football along with the author's name. Then
drop me an email and I'll include your website or name in the next update.
Return To Top
Requirements
You need the following to run Football :
- Workbench 2 and above
- AREXX to be up and running
(make sure 'rexxsupport.library' is present)
- AmigaGuide or MultiView to view this file
- AmigaDOS program 'Sort' to be in the 'C:' directory
- AmigaDOS program 'Delete' to be in the 'C:' directory
- AmigaDOS program 'Rename' to be in the 'C:' directory
- RexxTricks library by Jürgen Kohrmeyer
(found in 'libs/' - copy to LIBS:)
For script 'HTMLTemplates', you need the following programs :
- RequestFile - supplied.
- RequestChoice - supplied.
- RequestString - supplied.
Return To Top
Supplied Programs
The following programs should be present. If not they will affect the
operation of the program. They are :
Stats.rexx
CupScheduler.rexx
UpdateSettings.rexx
WriteMatch.rexx
Results.rexx
LStats.rexx
League.rexx
Footsort
CupScheduleNextRound.rexx
CupReadMatchData.rexx
Alt_Results.rexx
Alt_League.rexx
Alt_ViewCupResults.rexx
ViewCupResults.rexx
Alt_ViewCupCurRound.rexx
ViewCupCurRound.rexx
Sort5Chars
Sort7Chars
UpdateCupTeamName.rexx
CupUpdateMatches.rexx
Games.rexx
UpdateTeamName.rexx
Sort4Chars
Scheduler.rexx
SortWkDts
DupMatches
ReadMatchData.rexx
ChangeMatchScore.rexx
FOOTBALL
And Where They Should Be...
-----------------------------
FOOTBALL should be in the directory where you've installed it and then
the program files should reside in a subdirectory named 'Exec' and the
external scripts/programs in a subdirectory named 'User'.
The datafiles can now now be put into directories (only one subdirectory
of 'Data' though). Schedules reside in 'Data/Schedules'.
Locales reside in subdirectory 'Locale'. The only required one is 'english'.
Return To Top
How It Works
The suite of programs are used to create, update and maintain a football
league. First the league is created and saved to ".df". This is
then used by SCHEDULER to create the schedule and stats files -
".sf" and ".stats". The stats file contains all the
data about each team such as PLAYED, WIN, DRAWN, LOST etc. This file is
not updated as its used as a base for the league. This has the advantage
of starting a league mid-season (by updating these values) if the scores
are not known but the table is. Obviously certain statistics will be
incorrect because of this.
See Hints And Tips.
By using GAMEPLAY, a file containing the matches in the order they are
played is stored - ".sflearn". This data is used for display
options when you require the matches for a team, in the order they were
played. When GAMEPLAY is used, and if the match entered is a valid one
then ".sf" and ".sflearn" are updated.
When the league is displayed, ".stats" is read in and stored.
This is then updated with the scores from ".sf". The table is
sent to a temporary file which is sorted into the correct order and
is then checked again, before being displayed.
Return To Top
Installation
To install FOOTBALL :
- Make a directory on a hard-disk or format a disk.
- Then copy then the contents of the directory where FOOTBALL
currently sits, to the one you just created.
- You should then have FOOTBALL and its icon in the directory and
three subdirectories named :
Data/ (holds all the datafiles)
Exec/ (contains main REXX and other programs)
User/ (holds all the external user scripts)
Locale/ (holds locale catalogs)
HTML/ (holds HTML output files)
HTMLTemplates/ (holds HTML templates)
Tools/ (Tools for scripts)
- Next select the icon and Information from the Workbench
menu Icons. Change the tool types for GUIDE and VIEWR,
remembering the full path.
- In the Data/ directory, there are several examples :
Shiva2 - Leagues that have been used with a
Shiva3 certain football game.
League_OddSched - An example of using the new schedule
options to play teams an odd number of matches.
OddTeams - Datafiles showing odd number of teams
in a league.
Players - Test datafile for handling player and
match information.
FAPrem_9798 - Last season's FA Carling Premiership.
FAPrem_9899 - The current season's FA Carling
Premiership.
FAPrem_9900 - The latest season with goal scorers etc....
EMKval - The next three datafiles have been supplied by
Jan Allan Andersen. This one, Denmark's qualifying
group for Euro 2000.
SuperLiga9899 - Danish Super League for 98/99.
SuperLiga9900 - Danish Super League for 99/00.
1BL_98-99 - Supplied by Heiko Schroder. The German Bundesliga
for 98/99.
WC98_Grp - The Groups from this year's World Cup in France.
WorldCup_Jul98 - The final stages of the World Cup in France.
FACT - A finished sample Cup which was used to test the
features.
FACT2 - A finished sample Cup which had scorers and other
stats added.
- Then sit back, double click (or whatever) and .......
Return To Top
Tool Types
REXXC (Default "SYS:Rexxc/")
When the program is run from the Workbench, and if REXXC isn't
assigned then it cannot find the RX command (used to run AREXX
programs). It is set to the default but this allows you to
specify an alternate path.
GUIDE (Default "SYS:Utilities/MultiView Football.Guide")
This allows you to change what documentation file you wish to
read. You can read either the guide file or the HTML docs.
VIEWR (Default "c:ppmore")
This allows you to specify which file viewer you wish to view
the displays with. Don't forget to add the complete path.
PPMore is copyright by Nico Francois.
FRONT_LEFT and FRONT_TOP (Default =1)
CREATE_LEFT and CREATE_TOP (Default =1)
GAMEPLY_LEFT and GAMEPLY_TOP (Default =1)
SELECT_LEFT and SELECT_TOP (Default =1)
These tool-types specify the left and top positions of the
windows. FRONT is the main window, CREATE is "Create League",
GAMEPLY is the window where you enter scores and SELECT is
the window where you select the teams.
With the addition of Cups, FRONT is the main "Play Cup Games"
window, CREATE is "Setup Cup" and GAMEPLY is "Enter Cup Scores".
AUTOLOAD (Default is none)
You can specify the name of a datafile which will be automatically
loaded at startup. Examples :
AUTOLOAD=Players (load Players.df from "Data/")
AUTOLOAD=Test/Year2 (load Year2.df from "Data/Test")
EDITOR (Default "c:Ed")
Specify name and path of editor which is used to add notes to
leagues and cups.
Return To Top
Create A League
This is where a league is first set up. You can setup how many points for
a win, loss and a draw. You can setup how many times each team plays each
other, how many teams are relegated and if you so desire, how many points
are awarded for each goal scored. Teams Promoted, if a league of multiple
divisions is being set up, can be set. You can also specify the schedule
file to be used. Click "?" to select one. If a league of multiple divisions
is being setup and this is the final division being setup but is the first
one, change the number of divisions and then selecting "?", you can specify
the other division filenames.
You can enter your name, the title of the league and what the file should
be called. Then you can enter the teams (up to 50).
Click on Add_Team, type the name, hit ENTER. To change a team, click on the
team in the listview, edit it and then hit ENTER. To delete a team, click on
the team then click on Delete_Team. To import all the data from a previous
league, click on Import_League. Then select the league from the list, and
the details will be displayed on the window. When finished, click SAVE to
create the league.
I use Import_League to read a previous league, then I delete the bottom six
teams in the table and add six new ones. Then I change the league and
filename and then SAVE it.
Football now gives you the option to set up the statistics file
for the league just created. You can click 'No Way!' for an
automatic setup or 'Okay' for manual setup. Click on the teams
then change the settings below. Click 'Save Stats' to create the
file - this is useful when starting a season mid way. To revert
back to an automatic setup, click 'Close'.
See Starting Mid-Season.
Football now checks to see if the schedule definition file supplied
has the correct number of matches set up for the league to run with
the number of teams and the number of times they play each other.
As Football can now handle datafiles in subdirectories of 'Data/',
there is a "?" to the left of the filename for selecting the
directory.
Return To Top
Update League Settings
The principle is the same as CREATE LEAGUE except you can change the points
awarded, numbers of promoted/relegated teams, the title and author. Follow
on-screen messages.
Return To Top
Update Stats Datafile
You can also update the statistics file, useful for starting a season
mid way. See Starting Mid-Season. Click on a team
then adjust the points, matches, wins, draws etc. Click on 'Save Stats'
will do what it says.
You can set the points to a negative value up to -20. This will handle
teams who have had points deducted.
Return To Top
Rename Datafiles
As there are a number of datafiles used for each league and cup, it made
sense to implement this. Upon selecting the option, you pick a team from
the file requester and a string requester appears prompting you to change
it. The directory path will be retained.
Return To Top
Change Team Name
One option that was missing was the ability to change team names whether
in Leagues or Cups. Select a team from the list, change it and all files
will correctly reflect the new team.
* Be careful as if the newly renamed team has a different position in the
schedule file (Leagues only), the league's schedules will all be wrong
but only if you run one of the 'Update...' scripts.
Return To Top
Change Match Score
This option has been missing for a very long time. After several requests,
its here. When selected, a list of played matches will be shown. Click on
the match and then on READ MATCH. Now the details can be changed the same
way as they are entered in ENTER SCORES. When you've finished, click on
SAVE MATCH - the same checks as ENTER SCORES are performed so you cannot
enter more goal scorers than there are goals.
To unplay a match (or reset it if you like), select the match, read it and
then click UNPLAY MATCH.
When a match is updated, a report is shown, displaying the previous match
and the new one, what action was done (player info updated, match updated or
match unplayed).
If there are duplicate matches (same home/away, teams and score), then
a requester will appear, displaying a list of the duplicates. Select the
match to change it.
If you've read a match but wish to read another, click on RESET OPTION then
select the other match that you want to read.
At any time you want to quit the option, click EXIT.
Return To Top
League & Cup Notes
You can now add notes to Leagues (select League Notes from More Options)
and to Cups (select Cup Notes from More Cup Options). It uses the tooltype
EDITOR to allow you to edit the file. Here you can add notes about point
deductions or teams being banned etc.
Selecting SAVE from the editor will return you back to the program.
Return To Top
Configure Scripts
This option has been changed to allow more flexibility with Scripts and
applies to both League and Cups. When you select Scripts, the options
window appears, allowing you to select a pre-selected script, MORE SCRIPTS
and CONFIGURE.
MORE SCRIPTS will open the file requester on the scripts directory as
before. CONFIGURE will allow you to adjust which scripts you want to appear
in the options window. Click on an entry then on '?' to select a script.
The script's name will appear in the 'Name' allowing you to change it.
Click on STORE to store the entry or RESET to reset to a neutral state.
USE SETTINGS will save the settings to a file while CLOSE will not save.
When Football is first started up (under 2.5.4 and above), it will check
for this settings file and will create one if necessary.
Return To Top
Change Locale
With v2.5, you can now change the locale for the AREXX scripts. In a later
version, the main program will be converted over.
The beauty of this though, is that all those OS2.04 users who haven't
upgraded to OS2.1, can now view the datafiles in their language, if written.
Selecting this option, will allow you to change between the available
locales. If you want to write your own, see 'Locale.docs' in the 'Locale'
directory.
Return To Top
Open A League
A list of leagues are read from the 'Data' directory and are displayed in a
file requester, for you to choose.
Return To Top
Documentation
Pressing HELP displays the amigaguide file that you are now reading or
the HTML documentation.
Return To Top
Entering Scores
After opening a league, you can enter the scores for matches that have been
played. There are two listview gadgets for the teams in league, playing HOME
and AWAY. Click on the team, click in the slider gadget to change the score
and click SAVE MATCH to save it. The screen will then beep and flash
(depending on how you've set up your Workbench) and the scores will be reset
to zero. The number of matches stored while this option is active, is
displayed and the last match stored is displayed at the bottom. If the match
that you have entered has already been played, then an error message will be
displayed.
To exit the option, click on the close gadget, or press ESCAPE.
From version 2.4, you are able to record match and player information.
Click on 'Match Stats' and enter the referee and attendance. If these are
not filled in, they will not get recorded in the datafile.
To enter player information, click on 'Home Team' or 'Away Team'. Again, if
the information is not filled in, then it will not get recorded. The program
will handle the information you put in.
The window will appear ONLY after you have selected two teams.
Click on 'Add Player' and make a selection from 'Goal!', Penalty, Own Goal
Yellow card, Yellow-Red card, Red card, Substitute and Man of the Match.
You can now select a previously entered player and hit 'Clone' so the labour
of typing in a 20 letter name is taken away. 'Clear Plyr' will reset the panel.
The time value can be entered if you so wish for all options - it is not required.
For substitutes, I recommend entering them as 'Player A (Player B)' with
Player B coming on. Click on 'Enter Details' to store. Normal rules apply
for 'Delete Player'. When finished, click 'Close' or press ESCAPE.
*IMPORTANT* If you enter goal scorers, the program will check to see if you
have entered the right number of scorers compared to the number
of goals scored. If not, you will be shown an error. Re-enter
or adjust the player listing to suit.
***************************** IMPROVEMENT *****************************
Using RexxTricks by Jürgen Kohrmeyer, Heiko Schroder has improved the
Arexx script that updated the datafiles with the scores and has made it
run at least 400% faster!!
Return To Top
League Information
This will display the various settings for the league, the number of matches
played and the number of home/away wins, the highest home and away wins and
the teams with the best record.
If the information is stored, this option will display the top 10 scorers,
the highest/lowest attendances, the fastest goal and the Fair Play table.
Return To Top
Display A League
As well as the league being displayed, the top team will be displayed in
capitals. A promotion line will show those teams which qualify for promotion
where as at the bottom, the relegation line will show those liable for
relegation. Any team under this line in capitals has already been relegated.
**NEW**
See External Scripts for details on changing
the format of the table.
Return To Top
League Results
This will display all the results from the league so far,
in the order that they were played in.
If you are storing player and match information, you might
want to see External Scripts for details on changing to
a different display, showing scorers etc.
Return To Top
Team Results
Select a team from the list. It will show each match that has been played
and whether it was played at HOME or AWAY, the score (Selected teams score is
always first) and whether it was a Home or Away win, a loss or a draw.
Return To Top
Team Statistics
Select a team from the list. It will show the data for the team's home and
away record, its current and longest undefeated run.
Depending on the information stored, it will also display the highest and
lowest attendances and the top scorers.
Return To Top
Create Cup
Cups can be set-up to run from 2 teams upto a maximum of 256. On the main
window, you can enter the title of the Cup and the filename. The gadget to
the left allows you to select which directory in 'Data' you wish to save
the datafiles to. The number of rounds can be changed which updates the
display labelled 'Teams'. The number on the left is the number of teams
to get and the right hand number is the maximum number of teams allowed.
Changing the rounds will update the listview. Each line of this has the
round name and two settings for Extra Time and Penalties. Clicking on one
of these lines will change the cycle gadgets at the bottom. The round name
will be displayed along with the current settings for Extra Time and
Penalties and Legs. These can be changed and will update the listview.
If you set a round to two legs, then the settings for Extra Time and
Penalties will be just Extra Time and Penalties. Away Goals can also be
set but only apply to two legged matches.
You can select if there is to be a Third Place Play-Off and if Cup
history is to be stored. BUT...the filename has to be the same
otherwise a history will not be built up over progressive seasons.
Next to all of this is the listview where you enter the teams. Operation
is the same as CREATE LEAGUE except that selecting IMPORT TEAMS and
IMPORT CUP will stop and only import the number of teams that it
requires. You can import teams from league and cup files. Clicking on
SAVE runs the Cup Scheduler which produces a report and schedules the
first round.
A new feature is random (default) and manual scheduling of matches.
If manual scheduling is selected, you will be given another panel where
you set up the matches. The panel shows the cup name, the current round,
the total number of matches and two listview gadgets. The bottom one
contains the matches, the top one contains the teams. To store a match,
click on it, then click a team and click STORE. This will store this
first team as the home team. Click another team and STORE and this will
be the away team. Then repeat for the other matches. To return the
teams back into the top listview, click on the match and click
RESET MATCH. At this point, you may also click STORE to leave the match
as it is. When finished, click on SAVE SCHEDULE and if all matches have
been played, they will be written to the schedule file and the report
will be produced.
Please note :
Seedings have not been implemented and probably never will. The
reasons behind this are :
- Different types of Seed exist so it would be impractical to
attempt to implement them all.
- Teams can be 'seeded' by giving them a 'Home' advantage by setting
up a cup with Manual Scheduling.
Return To Top
Playing A Cup
This is where all the cups are played from and external scripts for
Cups are run. The window shows the title of the Cup, the current
round name and the number of teams left. If the round name shows
"Finished" then the Cup, as you probably guessed, is finished. It
allows you to view results, run scripts but not to enter scores.
Whenever a new round is scheduled, the cup is reloaded to show the
new-current round.
Return To Top
Opening A Cup
A list of cups are read from the 'Data' directory and are displayed in a
file requester, for you to choose.
Return To Top
Entering Cup Scores
After opening a cup, you can enter the scores for matches that have been
played. There is a listview gadget with the matches for the current round
and depending on the settings for the round, lines will be added for
extra time and penalties. Only matches that haven't been played will be
shown. Click on a match and then select the score. Then click STORE MATCH.
The line which may mention "#1st Leg" is not picked up.
If a score is equal, then click on Penalties and/or Extra Time and set the
score, clicking STORE MATCH. If a score is not correct then clicking on
RESET MATCH will reset the match to being not played.
*** NEW OPERATION ***
When all the matches a Cup is in mid-Round and not all matches have been
played, click on SAVE MATCHES.
You can now enter scorers, bookings, substitutes, referees, attendances
and man of the match for Cup matches. Click on PLAYERS4 to enter the
player stats for the team on which side the gadget is. Click on MATCH STATS
to enter the referee and attendance.
*** You can enter all goal scorers up to and including Extra Time. I will
add the option to add Penalty Takers later. A check is made to see
if the number of scorers equates to the number of goals.
*** You can also change the match score and match stats for any match in
the current round, until you click NEXT ROUND.
When you are ready to proceed to the next round, click NEXT ROUND.
If any errors are found in the scores that you have entered then an error
report will be displayed. If there aren't any errors and all matches have
been played, then the next round will be scheduled. If the matches are to
be manually scheduled, you will be shown the same panel when you setup the
Cup and you will have to repeat the process.
Replays, Third Place Play-Off and the Final will NOT be manually scheduled.
*** --- ***
To exit the option, click on the close gadget, or press ESCAPE.
Return To Top
Displaying Current Round
This will display all the results from the current round of the cup.
Return To Top
Display Cup Results
This will display all the results from the cup so far, in the order that
they were played in.
Return To Top
External Scripts
The flexibility of the program allows you to run external programs where
ever from, to display different data from the whole league or just a selected
team and even manipulate the data to create new files. Clicking on SCRIPTS
will display a requester with the list of external programs. Select one and
the results will be displayed. If the script requires a team name, you will
be prompted.
With the addition of Cups, External scripts are run from the
"Play Cup Games" window using the same names as above.
"SwapCupResultsMode.rexx" - Switch between different styles of
displaying results if players are
stored.
"Cup_Referees.rexx" - See Referees.rexx.
"Cup_Bookings.rexx" - See Bookings.rexx.
*** Change value 'barrier' in this script
*** for a reduced list.
"TableOfTruth.rexx" - Suggested by Martin Bilek. Displays
performance of teams in league.
"HTML_Played.rexx" - Produces HTML script of played games.
"Attendances.rexx" - Displays highest/lowest and average
attendances.
"Bookings.rexx" - List of the unsporting players.
*** Change value 'barrier' in this script
*** for a reduced list.
"TopScorers.rexx" - Lists goals, penalties and own goals of
players.
*** Change value 'barrier' in this script
*** for a reduced list.
"HTMLTemplates.rexx" - By Heiko Schroder. Produces an HTML page
with results and league table based on
a template with a few user details.
See the script for more details.
"SwapResultsMode.rexx" - If you are storing the match and player
information, run this to get scorers etc
with the match results.
"Referees.rexx" - Display referees with their number of
matches played.
"ManOfTheMatch.rexx" - Same as Referees but for the star players.
"HTML_Results.rexx" - By Kevin Lambert. Produces HTML page
listing the results.
"HTML_Table.rexx" - By Kevin Lambert. Produces HTML page
with the league table.
"SwapLeagueMode.rexx" - At present, displaying a league shows
all data combined in one table. Running
this allows you to switch to another
format, where the table is split into
home/away. Run again to switch between
the two types.
"Cup_CloseCup.rexx" - renames Cup files, appending month
and year, leaving history intact
for future tournaments.
"DeleteNewDataFiles.rexx" - delete "_NewData.df" files created by
"EndOfSeason.rexx".
"EndOfSeason.rexx" - see Hints And Tips.
"UpdateScheduleScores.rexx" - recreates the schedule file from a
schedule definition file and updates
it with held scores.
** FOR SCHEDULED LEAGUES **
"UpdateScores.rexx" - extract data from ".sflearn" file and
update ".sf" file with the match data.
** FOR NON-SCHEDULED LEAGUES **
"FixturesLeft.rexx" - displays fixtures left to be played in
the season.
"PerformanceRating.rexx" - Displays a league table on how the teams
in the league are performing dependent
on settings defined in the program.
Change the settings for different results.
"FlipSchedule.rexx" - runs half-way through the season, and
creates a file for printing so that you
can enter scores on paper before entering
them into the program. Use for
non-scheduled leagues.
"MatchesPlayed.rexx" - displays opposing teams and the scores for
home and away games.
"MatchAnalysis.rexx" - displays data such as number of goals and
matches, bookings, attendances.
"Reformat_Schedule.rexx" - this reformats a schedule file from DDMM to
DDMMYYYY. See program for details.
"ViewNextWeeksSchedule.rexx" - if scheduled, display matches in the
following 7 days.
"ViewScheduleAndResults.rexx" - display schedule with results and games to
to be played.
"ViewTeamSchedule.rexx" - displays team's future matches but only
if created using a schedule file.
"Cup_ViewHistory.rexx" - view cup's history, showing winners/losers
and a league table of past winners.
"Cup_ViewTeamProgress.rexx" - view a team's progress throughout the Cup.
"Cup_CupInformation.rexx" - view the options, the best record, current
matches etc.
*** Change value 'barrier' in this script
*** for a reduced top scorer list.
Return To Top
Writing Your Own Scripts
As already mentioned, the program supports external programs written by
you. Programs that want to manipulate and display data should be passed the
filename of the league ie. The league filename is 'Shiva3.df' so you should
pick up the name 'Shiva3'. Then format the data in your program to read data
from 'Shiva.df'. This is because the program might need to use several
different files with the same basename.
Any of the main programs can be changed, except the filenames. So you can
write your own routines or update the ones I've written. If there's a better
way of doing it, then write one, making sure that you keep the original file
format, then send it to me for inclusion in the archive. Other user-written
files should be moved to 'User' directory (see for examples) and again, send
them to me.
With the addition of Cups, external script filenames should be preceeded
with "Cup_" so that only the relevant scripts are picked for Leagues and
Cups.
*** NEW ***
New advances in technology (brain cells!) have realised that it would
be better to automatically pick up what type of script it is. Therefore the
very first line of the script must be :
'/* Mode=Run */' - supply league name (as above) and script runs.
'/* Mode=Set */' - Football issues the team selector and then passses the
league name as the first arg and the team as the second.
Also try to localise your scripts, see the various directories for examples.
Global datafiles are used to store month and day names, the character to
display before teams have played etc. In script 'ViewNextWeeksSchedule.rexx'
and 'Exec/Games.rexx', there is code which searches through the available
locales to resolve different month names so that a datafile created in German
will work with a locale of English selected.
*** NEW ***
File extensions for: League Cup
----------------------------------------------------------------
Definition file ".df" ".cf"
Schedule file ".sf" ".scf"
Played Matches in Order ".sflearn" n/a
Statistics file ".stats" n/a
Schedule Definition file ".schd" n/a
Working data file n/a ".cfrw"
History file for Cup n/a ".cfh"
Temporary Save file for n/a ".cfsave"
Cup_Enter_Scores
Stats file for Cups n/a ".cfstats"
File definitions for Leagues
----------------------------------------------------------------
"*LEAGUE_NAME=" - league name.
"*POINTS_PER_WIN=" - points per win , default 2.
"*POINTS_PER_DRW=" - points per draw, default 1.
"*POINTS_PER_LSE=" - points per loss, default 0.
"*RELEGATION=" - number of teams relegated, default 2.
"*PLAY_OTHER=" - number of times each team plays each other.
"*POINTS_PER_GLS=" - number of points awarded per goal.
"* Author =" - author's name.
"*AUTOSCHD=" - specifys auto-scheduling and the schedule filename.
"*DIVISIONS=" - specifys filenames of related divisions.
"*NUM_DIVISIONS=" - the total number of divisions in the league.
"*PROMOTED=" - number of teams promoted.
"*TEAM=" - team name, in ".stats" file.
"*PLY=" - games played, in ".stats" file.
"*WIN=" - won matches, in ".stats" file.
"*DRW=" - drawn matches, in ".stats" file.
"*LST=" - lost matches, in ".stats" file.
"*GOF=" - goals scored, in ".stats" file.
"*GOA=" - goals scored against, in ".stats" file.
"*PTS=" - points, in ".stats" file.
"*DATES=" - specifys the schedule definition file is
using dates and the date specified is the
start date of the season.
"*WEEKS" - specifys the schedule definition file is
using week numbers.
"*NEXT" - specifys in the schedule definition file
that there is another schedule to be read.
"*Week:" - specifys the week number which the matches
listed below it, are playing in. In '.sf' file.
"*Date:" - specifys the date that the matches listed
below are playing on. In '.sf' file.
The following are newly supported. They are used when storing match
and player information in '.sflearn' and '.cfstats' file.
"*RF=" - Referee's name.
"*ATD=" - Attendance.
"*HG=" - Home goal scorer.
"*HY=" - Home player booked.
"*HYR=" - Home player booked for a second time and sent off.
"*HR=" - Home player sent off.
"*HS=" - Home player substituted.
"*HM=" - Home player was awarded Man Of The Match.
"*AG=" - Same as Home, but for Away players.
"*AY="
"*AYR="
"*AR="
"*AS="
"*AM="
File definitions for Cups
----------------------------------------------------------------
"*CUP_TITLE=" - the cup name.
"*CUP_TEAMSCT=" - the number of teams originally taking part.
"*CUP_ROUNDS=" - number of rounds the cup is scheduled for.
"*CUP_THIRD=" - specify if third place play-off to be played.
"*CUP_HISTORY=" - specify if cup history is to be kept.
"*CUP_RNDDEF=" - defines the parameters for a round.
"*CUP_ROND=" - current round number.
"*CUP_CRDN=" - current round name.
"*CUP_RDEF=" - current round definition, in ".cfrw" file.
"*CUP_TCNT=" - current number of teams in round, in ".cfrw" file.
"*CUP_SCHEDULE=" - type of scheduling for cups. MANUAL is where the user
sets up the schedule, AUTOMATIC is a random schedule.
"*Round=" - the roundname, in ".scf" file.
"*CUP_AWAYG=" - specifys whether away goals are to be taken into account
when deciding two-legged matches.
"*HT=" - Used in '.cfstats' to store home team name.
"*AT=" - Used in '.cfstats' to store away team name.
"*MATCH_ID=" - Used in '.cfstats' to store match id which is referenced
in '.scf' to display stats for match.
Return To Top
Hints And Tips
We have hints and tips for :
Leagues
Starting Mid-Season
Setting up Divisions
Ending a Season
Setting up Schedule
Return To Top
Setting up Divisions
To setup a league with more than one division:
1. Create all divisions apart from the first one, using "Create League"
but setting the number of Divisions to zero, '0'. Make sure the
"Teams Relegated" and "Teams Promoted" are set accordingly.
2. Create the first division and change the slider to show the total number
of divisions in the league. Then click on the "?" gadget and select
the divisions in order, starting from the second one. Make sure the
number of "Teams Relegated" match the number promoted from the
division that is second.
A sample setup would be: FAPrem_9798.df
Nat_D1_9798.df
Nat_D2_9798.df
Nat_D3_9798.df
3. Enter the scores as normal for each division and only when all
matches have been played, run the external script "EndOfSeason.rexx"
to handle the promotions and the relegations.
See Ending A Season for more details.
Setting Up Schedules
This is relatively easy when the information is provided for you. There
are two types of schedules, filetype '.schd', which are WEEKS and DATES.
Schedules are stored in the 'Schedules' subdirectory of 'Data/'.
The first example is a schedule for four teams, using weeks named in
"Teams4.schd" :
"*WEEKS TEAM-A TEAM-B TEAM-C
000 005 001 003 - the grid is such TEAM-A x
002 000 003 004 TEAM-B x
004 006 000 002 TEAM-C x
006 001 005 000"
Where the 'x's or "000" are to denote that the team obviously doesn't play
itself. The second example is from the FA Carling Premiership 1997-98.
It is a schedule for 20 teams, obviously not all show here, using dates
named "CPS.schd" :
"*DATES=09081997
00000000 25101997 04101997 - the grid is the same as above.
10051998 00000000 14021998
25041998 13091997 00000000"
The schedule shows the date of the match between the two teams, in the
format DDMMYYYY. The '00000000' denotes the team won't play itself. The
"*DATES=" parameter is the first day of the season so when the schedule
is used to create the schedule file, ".sf", it starts at this date and
runs through to the end of the season.
Schedules can be easily created as schedules are given by football clubs
before the start of the season. These can be found in national newspapers
or in the case of the FA Carling Premiership, on the Net at :
Various web sites are listed at www.blue-shantung.demon.co.uk.
Other schedules can be created with "*WEEKS". See Setting Up A League
for more details.
You can also specify the schedule, with the start date as DDMM. Then
using an external script 'Reformat_Schedule.rexx' (See External Scripts),
you can specify the filename and the two corresponding years. The program
will then reformat it correctly for use with Create League.
Example Schedule Files: Teams4.schd - file for 4 teams using Weeks.
Teams6.schd - file for 6 teams using Weeks.
Teams63.schd - file for 6 teams, using Weeks
but playing each other 3 times.
Teams64.schd - as Teams63 but playing each other
4 times.
WC98_GrpA-H.schd - files for Groups A-H in World Cup 1998.
CPS.schd - file for FA Premiership 97/98.
FACPS_9899.schd - file for FA Premiership 98/99.
***********
*** NEW ***
***********
Now you can have teams playing each other any number of times from 1 to 10,
including odd numbers. After creating your schedule, you can insert a line
with the characters "*NEXT" and then another schedule after it. For example :
"*WEEKS
000 009 005 003 007 001
004 000 008 002 001 005
010 003 000 006 004 007
008 007 001 000 005 004
002 006 009 010 000 003
006 010 002 009 008 000
*NEXT
000 014 020 018 012 016
019 000 013 017 016 020
015 018 000 011 019 012
013 012 016 000 020 019
017 011 014 015 000 018
011 015 017 014 013 000"
Setting up odd numbers, just means filling in a non-played match with zero's. See
files, "Teams63.schd" and "Teams64.schd", in "Data/" for examples.
Any problems with this, email me and I'll try to solve the problem.
Ending A Season
There is a time at the end of every season that you get the winners and
the losers. The external script "End Of Season.rexx" will display them,
showing the winner, the promotions and the relegations and the final
league tables.
To end a season, load the file for the first division and then RUN the
script. It will calculate the final tables and then create definition
files with the name, "_NewData.df" with the newly adjusted
promotions and relegations. These files must then be imported into
"Create League" and then saved, to create the associated files such
at the ".stats" and ".sf" files. The files from the previous season
will stay as they are. Playoffs are not handled so the winner/loser will
have to be deleted from the division and the other one inserted. This
applies to both divisions affected.
After the '_NewData.df' files have been used to create new divisions,
you can RUN external script, "DeleteNewDataFiles.rexx" to delete them.
How To Start A League Mid-Season
If you decide to start a league but some matches have already been
played that you don't know the scores to, then this is how to do it.
1. Create a league in the usual way, with the teams that you want
and the number of points etc. Then SAVE it.
2. Now, you will be asked if you want to create '.stats'
which we do so click 'Okay'. Then click the teams adjusting their
settings.
3. When finished, click 'Save Stats' and you're away!
Now when you load this league, you will be able to display the
league table, and you're ready to rock 'n roll...
History
Version 1.0
***********
(06.12.96) - First release.
(05.01.97) - Added 'MatchAnalysis' and 'GamesToBePlayed'.
(11.01.97) - Fixed bug where icon files were picked up when selecting
external scripts (probably leagues as well). Changed
'GamesToBePlayed' to 'GamesPlayed' - only works with leagues
where teams play each other twice. Spaces are removed from
filenames when creating a league. Updated references to paths
for installer and amigaguide. Default league name changed.
Removed enforcer hits in 'GamePlay' and 'Football'.
(Thanks to Steve for his MMU!)
(17.01.97) - Fixed more enforcer hits in 'GamePlay' as it kept crashing.
Fixed bug in 'GamesPlayed'.
Version 1.1
***********
(25.04.97) - 'GamePlay' has been added to the main program and the interface
redesigned. Removed asd-library. Instead of a custom display
requester, all data is now displayed in a file reader,
specified by a new tool type. File requester used to select
leagues and external programs. You are now only allowed to
enter an even number of teams and play each team an even number
of times. PointsPerGoals added. Using new tool types, the
program remembers where you positioned the windows.
(10.05.97) - Fixed bugs in Create and Gameplay. Changed window to SMART-
REFRESH. Fixed display bug in Gameplay. Rewrote the entering of
scores - different procedure for entering scores and updating
the schedule file. Removed 'Update League'.
(19.05.97) - Fixed bug in League Information where the number of matches
played was wrong. Fixed bug where if the file viewer wasn't
found then the program crashed. No Enforcer hits found !!
Version 2.0
***********
(18.12.97) - Fixed bugs in selecting a team, handling of league name. Added
Scheduling, Cups, Divisions (with Teams Promoted). Redesigned
front panel. Added dynamic allocation of memory.
Version 2.1
***********
(06.06.98) - Changed method for checking if Syslog is active and added a
much improved way of sending messages. Decision taken not to
implement Seedings. Replaced all 'strcmp'.
(07.06.98) - Added hot keys to various options. Implemented Manual
Scheduling for Cups.
Version 2.2
***********
(05.09.98) - Spent last two weeks making amendments. Fixed bugs with
listviews where the string gadget wasn't attached. Added
option to temporarily save scores in Cup Enter Scores before
a new round is scheduled. Added Two-Leg support and Away
Goals. Enforcer hit free!
(12.09.98 - Fixed bug in updating cup matches where data was missed
-14.09.98) during the recreation of a file. Added Two-Leg support to
Cup_ViewTeamProgress.rexx and added CupInformation.rexx.
(01.10.98) - Addition of external script to recreate the 'sf' file from
a newly updated 'schd' file with the previously held scores.
Polished messages and displays.
Version 2.3
***********
(25.04.99) - Decided the time was right for another update with a few bugs
and new ideas lurking behind the door... Added new option to
update the league settings. Added two new scripts - CloseCup
to close Cup tournaments and preserve the history file while
the other files are renamed ; and - Combination (suggested
by Kevin Lambert) which allows you to set up to four options
(Table, Stats - Team/League and Fixtures) and either direct
them to the screen or a directory. Redesigned many displays,
addded improvements (to messages and the operation) and
removed some 'undocumented' features. Increased max goals
scored to 99. MultiView is now the default Guide viewer.
(05.05.99) - Fixed a major bug when entering scores (thanks Jan!) where
it would fail if you had numerics in the team name. Improved
league table display. Added information requester when some
options are selected (in case you forget whats happening as
it chugs through the data).
At Jan's request, I have added support for playing teams an
odd number of times - in fact any amount from 1 to 10.
Version 2.31
************
(16.05.99) - Another update but this one closes the English FA Premiership.
Fixed two bugs in League and a data bug in FAPrem_9899. Added
option to switch between different styles of league table
(thanks Jan!). Updated 'GamesPlayed' to 'MatchesPlayed' which
now handles any number of matches played. Includes complete
Premiership data. Updated Combination.rexx with new features.
Version 2.32
************
(18.05.99) - Heiko Schroder (from Leipzig) sent an email regarding various
small changes that could be made. Create League now feels better
when handling errors.
Version 2.4
***********
(29.06.99) - Big update with numerous changes suggested by Jan, Kevin, Heiko
and Steve. Thanks to you all. Odd number of teams can now play
in the same league. 'No output' message added - tell me if this
is annoying. You are now prevented from duplicating team names
when creating leagues and cups. Player and Match information
added. Create/Update League improved to allow the '.stats' file
to be created/changed. New scripts to handle new information.
New datafiles have been supplied by Jan Allan Andersen and
Heiko Schroder.
Scripts to produce HTML pages from the results and league table
have been supplied by Kevin Lambert.
Version 2.45
************
(21.08.99) - Fixed bug in WriteMatch and a bug in Sort4Chars (reported by Heiko).
New datafiles.
Version 2.5
***********
(26.09.99) - A major update. Web ring added to web site. All scripts have proper
error messages. Better script handling. More options added; changing
team names, updating settings/stats files, changing match scores and
renaming datafiles. 'No Data' requester removed - annoying. Improved
layout of Player Information - now enter own goals and Yellow-Red
card (sent off for 2nd booking) and clone existing entries.
Change locales. New datafiles. Negative points supported in changing
stats file for points deduction. Various bug fixes. New scripts by
Kevin Lambert and Heiko Schroder. Datafiles can now be organised into
subdirectories of 'Data'. Other changes have been made but are not more
noticeable.
(03.10.99) - Thanks to Heiko and Kev for reporting several problems. You can now
load files from the main Data directory (unlike before!!).
Change Match Score has been improved by giving you the option of which
match to change (if duplicated). Fixed a bug in this where attendances
where not correctly handled in Read Match. Directory name is now
retained from Rename so you're not able to change it. Improved string
requester. Match Analysis is now fixed. Bug fixed in Rename where it
would rename even if the string was blank. Added message to Rename.
Version 2.5.1
*************
(17.10.99) - Bug fix update. I have fixed the loading problem so you can now load
datafiles under Workbench 2! Heiko reported several problems; all
scripts had to be changed due to a wrong error message for locales,
tidied various displays and messages, Yellow-Red cards are now handled
properly in League Information. Heiko has also supplied a new update to
HTMLTemplates. ViewTeamSchedule is now localised - for some reason I
forgot to do this. Added team name to players in ManOfTheMatch.
Version 2.5.2
*************
(23.01.00) - Added RequestFile (by Torsten Poulin), Request Choice (by Joerg Riemer)
and RequestString to archive for HTML and other scripts. Added more
scripts - HTML_Played, Attendances, Bookings and TopScorers. Updated
Referees and League Information scripts. Updated Player Information.
Hopefully fixed bug where the 'Options' window went walkabout. Updated
HTMLTemplates to work with Weekly scheduling. Updated ReformatSchedule
to use the tools. Fixed bug where listviews were not sized correctly
under Workbench 2. Improved the directory/file handling in Create Cup
and League. Batch scripts written to handle archive creation.
Version 2.5.5
*************
(11.06.00) - Bugs fixed in the following :
EndOfSeason - wouldn't write datafiles correctly.
Options Window - its now stopped moving and is in the
right place. Now clean exits.
League Information - bug fixed where players with two words
wouldn't be displayed correctly in Top Scorer.
MatchesPlayed - doesn't display more info than it should.
PerformanceRating - doesn't display more info than it should.
FootSort - better numeric handling.
Referees - fixed bug where a single entry was displayed
incorrectly.
Bookings - fixed bug where a single entry was displayed
incorrectly.
TopScorers - fixed bug where a single entry was displayed
incorrectly.
Alt_League - locale entry missed.
Cup Enter Scores - stack overflow found (thanks to StackSnoop
by Nils Görs). I've also changed the way
the options work.
New-look entry of scores added to Enter Scores, Change Match Scores
and Cup Enter Scores. Added option to add notes to Cups and
Leagues. Added options window to Scripts - now you can select from
selected scripts or from a file requester - thanks to Alex Georgiev
for this. Added new script - TableOfTruth - thanks to Martin Bilek.
Added new tooltypes EDITOR and AUTOLOAD - open a selected datafile
on startup. Team name in title of Player Information. Documentation
is now created from a single source file into AmigaGuide and HTML
format. Weekly HTML Template added. Improved displays in viewing
cup results and cup current round.
Scorers, Referees, Bookings and Attendances added to Cups.
New scripts : Cup_Referees, Cup_Bookings, SwapCupResultsMode and
CurrentRound, CupResults, CupInformation and ViewTeamProgress
updated to handle the new information if present.
Using RexxTricks library by Jürgen Kohrmeyer and suggested by
Heiko Schroder, Heiko has improved the speed of storing matches
in Leagues by 400%!!!
Return To Top
Future Additions
In order for this program to work, we need YOU! If there are any
scripts that you have written, datafiles that you have created, then send
them to me for inclusion in the archive.
Visit the home of Football at www.blue-shantung.demon.co.uk where
new program updates, bug fixes and datafiles are available.
Football is a continuous project and relies on thoughts and ideas from its
users. If you have a bee in your bonnet about something, tell me!
VERSION 2.6
-----------
- Player and Referee database. You'll be able to add players and referees
and select them when entering scores.
- Organise datafiles - create directories and move datafiles.
- Cleanup locales.
- Current Form Table script.
- Recreate Schedule option.
- Team Information Display option.
- More use of RexxTricks library.
- Cup HTML script.
- HTMLTemplates to handle scorers and stats.
- Date and Time to matches.
....and many more!
Return To Top
Credits And Ticket Holders
Design & Programming : Mark Naughton
Assistance & Ideas : Steve Holland
Icons & Graphics : Kevin Lambert
Send any bug reports, ideas and external scripts to :
mark@blue-shantung.demon.co.uk
steve@britair.demon.co.uk
Come and visit the home of Football at www.blue-shantung.demon.co.uk where
new program updates, bug fixes and datafiles are available.
When you email me with regards to Football, I'll send you a
personalised season ticket graphic, exclusively designed by Kevin Lambert.
Ticket Holders
Jan Allan Andersen - our Danish correspondent for the Super Bowl....
Kevin Lambert - the man from Norwich...
....and the web site's graphic designer.
Heiko Schroder - webmaster for the city of Leipzig...
Alex Georgiev
Mat Neaves
Torsten Poulin - for allowing me to distribute RequestFile.
Joerg Riemer - for allowing me to distribute ReqCh (RequestChoice).
Philippe Baudat
Martin Bilek
Jürgen Kohrmeyer - for RexxTricks library. I have been unable to contact
Jürgen to ask his permission to distribute RexxTricks
but as its FREEWARE, I decided to include it to show
its abilities...It can be downloaded from the Aminet
and is well worth it.
Tools
SAS/C v6.58 Compiler
AZ v1.5 Editor by JM Forgeas
GadToolsBox v2.0 by Jan Van Den Baard
Return To Top