Atropine Tutorial

Atropine is a Countdown tournament administration system controlled by your web browser. Teleost is a program that continually reads the state of the tournament and updates a window showing standings, results and other information.

Prerequisites

The two things you need that might not be installed on your computer already are Python and pygame. Python is the programming language in which Atropine and Teleost are written. pygame is a module for Python which, among other things, gives graphical capabilities to a Python application.

To use Atropine, you need Python 2.x installed. At the time of writing (May 2018), the latest version of this is 2.7.15. If you are using Windows, you want the "Windows x86 MSI Installer".

To use Teleost, which is the program that displays standings and results on the screen, you need pygame in addition to Python. Go to the pygame download page and download and install the version of pygame compatible with your Python installation. At the time of writing, the latest version of pygame is 1.9.1, and pygame-1.9.1.win32-py2.7.msi is the Windows installer for the specific pygame version compatible with Python 2.7.

Python 3?

One day, Atropine will be ported over to Python 3. The main reason this hasn't happened yet is the reliance on pygame, which doesn't have a Windows port compatible with any recent version of Python 3. The long-term plan is to remove the dependency on the pygame module and draw the public-facing screen another way, and at that point atropine will be ported to Python 3. When that happens you'll need to download Python 3 to continue to use atropine, but you don't need to worry about that yet.

Installation

After you have installed the prerequisites detailed above, unzip atropine.zip into a directory of your choosing. There are a number of files and directories, but the only ones you need to know about to use Atropine and Teleost are atropine.py and teleost.py.

Starting Atropine

Atropine is a web server. When you run it, you leave it sitting in the background and then use your web browser to connect to it and administer tournaments. To start atropine, run atropine.py. The Windows Firewall might tell you it has blocked some features of Python and ask you what you want to do about it. You need to allow Python to use at least private networks.

Once atropine.py is running, use your web browser to visit http://localhost:3960. This will redirect you to the home screen.

Creating a tourney

Decide on a name for your tourney and enter it into the "Tourney name" box. This name must consist only of letters, numbers, underscores and hyphens - no spaces. So "colin2014" is okay, but "Countdown In Lincoln 2014" is not. Then click Create Tourney. When that succeeds, click the "click here to continue" link and you will land on the Tourney Setup page.

Starting Teleost (optional)

If you want to show everyone the standings and results, you'll use Teleost for this. This step isn't necessary to administer a tournament, but if you want to use Teleost then just run teleost.py and enter the name of your tournament when prompted. The Teleost window should then appear. Once it's running and you've got the window positioned where you want it, it shouldn't need any more intervention.

Tourney Setup

The Tourney Setup page allows you to load the list of players and specify the rules of the tournament. To get back to this page at any time, you can click the General Setup link in the sidebar.

A tourney isn't much of a tourney without players. The text area under the heading Player List is where your list of players goes. Put each player name on a separate line, starting with the highest-rated player and finishing with the lowest-rated player. The reason this is one big text box rather than many little text boxes, one for each player, is to make it easier to copy and paste the list of players from somewhere else.

Each player is assigned a rating. If you want to assign a rating to a player, follow their name with a comma and the rating, like this:

	Kevin Birks,1850

If any players are not given ratings, ratings are automatically assigned to players with the top player receiving a rating of 2000, the second player 1980, the next player 1960, and so on.

N.B. If you need to add a prune (an imaginary player who always scores zero) to take the number of players up to a multiple of two or three, give them a rating of zero. This is important because some of the fixture generators treat prunes specially to avoid drawing prunes against each other, and to avoid players playing two different prunes twice.

Copy and paste the following example players into the player list box.

	Kevin Birks
	Jonathan Rawlplug
	Dark Meeks
	Giles Huc-Things
	Ed McBellface
	Admiral Glad
	Jack Worzel
	Some Hurst
	Some Other Hurst
	Randy Prat
	David B Barnyard
	Apterous Prune,0

Then click Save Player List.

If you want to split the players into two teams, use the "Assign players to teams" link in the Team Setup section of the setup page. If you assign players to teams, a red or blue dot will appear next to their name in results and standings.

If you have a large tournament which is split up into divisions, you can use the "Divisions" link in the sidebar. This will split the players up into however many divisions you specify, giving each division a multiple of a certain number of players, provided the numbers you give are possible. If you have many divisions in your tournament, the divisions are effectively parallel tournaments. When generating fixtures for a round, all divisions' fixtures must be generated at the same time.

The General Setup stage is also where you can specify other attributes like how to rank players and whether draws are possible.

Generating Fixtures

Once your tourney has some players, you can get on with generating fixtures for the first round. This tutorial will assume a COLIN-style tournament structure: there are three rounds, in each round players are divided into groups of three, and in each group three games are played, with each player playing two games and hosting one.

Click the Generate new round... link in the sidebar. You'll be presented with a list of fixture generators. Click Swiss Army Blunderbuss. For the first round, this will come back to you with a list of fixtures immediately.

Review the fixtures, then click Accept Fixtures. The fixtures aren't committed until you click this button.

You should then see a page telling you the fixtures were added successfully. Click the View games link to go to the results entry page.

Filling in results

This is the page you'll be using the most. After you generate fixtures you'll be led here. You can also get here using the "Results entry" link in the sidebar.

As of atropine 0.8.0, the results entry interface gives you a space to enter results at the top of the screen, then a videprinter-like display of recently-entered results below that, then a box of blinkenlights.

Result entry

When you want to enter a result, first enter the players' names in the player name boxes, then enter the players' scores in the boxes below, then press enter or click Submit result. As you type a player's name, it will be auto-completed for you when you've typed enough. You can press TAB to move on to the next box.

It doesn't matter which way round the two players appear on the fixture list - you can enter either name first. It is recommended that if you're handed a scoresheet with a result on it, you enter the names in the order they appear on the scoresheet. It's easier and avoids mistakes.

If the score you enter has a winning margin of exactly 10, a checkbox will appear asking you whether this game was won on a tiebreak conundrum. Tick the box if so. This will cause the winner's extra 10 points for the tiebreak not to be counted in the standings table. If you're used to the old interface, typing an asterisk (*) next to the score in one of the score boxes is another way of indicating that a game was won on a tiebreak.

Recent results

This is the videprinter-like display on the Results Entry page. It shows all the results so far entered for this round. If you want to correct a result, click it in the videprinter and the details will be loaded into the result entry form. Correct the score and submit it.

Corrected entries appear grey with a line through them.

Blinkenlights

The Blinkenlights are a grid of numbered boxes. Each box represents a table, or board, on which one or more games are being played in that round. Within each numbered box is one coloured box for each game being played on that table. A grey box means the result for that game has been entered, and a red box means we don't have the result yet.

The purpose of the Blinkenlights is to show you at a glance which tables have had their results entered and which haven't. At a Lincoln-style event this can be useful to identify which tables are playing slowly or hoarding their scoresheets.

If you hover the mouse cursor over a table number, the message bar at the bottom of the Blinkenlights shows you the list of players on that table. If you hover over a red or grey box representing a game, it shows you the players playing in that game, and the score if applicable.

You can click a red or grey box to load that game's details into the results entry interface, for results input or correction. If you'd rather the names and scores were loaded into the results entry interface the other way round, click the same game again and they'll swap over.

I hate this new interface! I want the old interface back, the one with the list of games!

The old one is still there, but I would strongly recommend trying out the new interface if you can. The main reason for this is that with the old interface, it was very, very easy to accidentally enter the result for a game the wrong way round and not notice. This usually happened when the score editor showed, say, "Alice v Bob" and the scoresheet handed to the organiser had the names the other way round, "Bob 34-56 Alice". If you've entered 200 results already that day, it's very likely you'll accidentally type in "34-56" for Alice v Bob instead of the correct "56-34".

Nevertheless, if you need to use the old interface, which showed you all the games in a list with an edit box for each one, it's still there: just click the "show all the games in this round as a list" link at the bottom of the results entry page.

There are some very rare cases where you might need the old interface. If you've generated a round in which two players play each other twice (this used to be possible with some fixture generators), only the old interface will work for those matches. Also, the old interface allowed you to declare that a match was won on a tiebreak when the winning margin was something other than 10. Arguably this was a bug, but if you ever need to do that because some event has weird rules, then you need to use the old interface to do that.

Aside from that, you should be using the new interface. If there's any problem with the new interface that's driving you back to the old one, let me know, and I'll look at making appropriate improvements to the new interface.

The rest of the tourney

When you've entered all results for one round and you're ready to generate fixtures for the next round, click Generate new round... as before. This time, if you click Swiss Army Blunderbuss you'll be asked a question before proceeding. This fixture generator needs to group together players with similar performance, ensuring players don't play anyone they've already played in the tourney. This is rather complicated, so you can specify a time limit after which it will give you the best grouping it has found up to that point. The default is 30 seconds.

Therefore, when you click the Generate Fixtures button for round 2 onwards, it may take a few seconds to bring you the fixtures. With our example of 12 players it should be very quick, but in larger tournaments the fixtures will take longer to generate.

Display Control

The Display Control link in the sidebar takes you to a menu asking which screen you want Teleost to show. It does no harm to leave it on the default setting "Auto", but if you want the Teleost window to show a particular screen, you can select it and click Apply Settings. Teleost will then show only that screen until you specify otherwise.

In Auto mode, Teleost uses the following rules to decide which screen to show:

In Auto mode, Teleost never shows other screen such as the Records or Overachievers screens, so if you want to show those you need to switch to them manually using the Display Control menu.