Tällä sivulla esitän yksinkertain python-ohjelman paritustaulukoiden tekoon, sekä erinäisiä pieniä paritustaulukoita. -- Pekka
Tämä "täysparittaminen" tarkoittanee "kaikki kerran kaikkia muita vastaan" eli round robin -turnauksen parittamista? -- Markku
#!/usr/bin/env python # -*- coding:iso-8859-1 -*- #### Paritusohjelma täyskierroksia varten ######################################## # käyttö - <[ohjelma]> tai <[ohjelma] luku>, missä luku on pelaajien lkm # yleisen käytännön mukaisesti parit ilmoitetaan musta ja valkea -järjestyksessä # (tai toisinpäin sopimuksen mukaan) # pythonin erikoisuuksia: negatiiviset indeksit [-1] ym. lasketaan taulukon lopusta # vaihto: m1,m2 = m2,m1 vaihtaa muuttujat # for-silmukat: range (a,b) tuottaa lukujonon [a,a+1,...b-1] # esimerkki siitä, miten indeksit asettuvat kuudella pelaajalla # 0 1 2 0 5 1 0 4 5 # 5 4 3 --> 4 3 2 --> 3 2 1 jne. # huomaa, että niihin lisätään yksi, jotta käyttäjän puolella aloitetaan yhdestä import sys # koristeita varten lyhytviiva = 10 pitkaviiva = 24 # oletusarvo on kuuden pelaajan paritus, ellei anneta muuta komentoriviparametrinä lkm = 6 vapaa = False # käpistellään komentoriviä - tähän voi kuolla (ohjelma, et sinä) jos annetaan roskaa # näin pienessä ohjelmassa ei tarvita mitään virheentarkistusta if (len (sys.argv) > 1 and int(sys.argv[1])>1): lkm = int (sys.argv[1]) # alustus on turha näin pienillä taulukoilla (vaan ei siihen sentään kuole) pelaajat = [None]*lkm # pelaajilla on nokkelat ja originellit nimet for pelaaja in range (lkm): pelaajat[pelaaja]= "Pelaaja " + `pelaaja+1`.rjust(2) print "Paritetaan " + `lkm`+ " pelaajaa." print # tarvitaan tyhjä pelaaja, jos on pariton määrä pelaajia # silloin tarvitaan myös vapaakierroksia if (lkm%2): pelaajat.insert(0,"Jos tämä tulostetaan, ohjelmassa on virhe.") lkm +=1 vapaa = True for kierros in range (lkm-1): print "Kierros " + `kierros+1` print "-"*lyhytviiva vapaakierros = '' # pelaaja paikalla 0 käsitellään aina eri tavalla # jos on vapaakierroksia, pelaaja 0 on tyhjä if (vapaa): vapaakierros = pelaajat[-1] # muutoin pelaajan 0 väri saadaan kierroksen pariteetista elif (kierros%2): print pelaajat[-1], "-", pelaajat[0] else: print pelaajat[0], "-", pelaajat[-1] for parit in range (1,(lkm)/2): pari1 = pelaajat[parit] pari2 = pelaajat[-(parit+1)] # värien vaihtelu if (parit%2): pari2,pari1 = pari1,pari2 print pari1 + " - " + pari2 print if (vapaakierros): print "Vapaakierros: " + vapaakierros print "-"*pitkaviiva print # muutetaan lista ensi kierroksen paritusta varten paikalla = pelaajat.pop(0) vaihto = pelaajat.pop() pelaajat.insert(0,vaihto) pelaajat.insert(0,paikalla) print "Loppu. Muistathan, että mustan on aina tarkoitus olla vasemmalla." # Kokoon räpelsi Pekka Karjalainen 2005. # Ohjelmaa saa käyttää vapaasti. En takaa, että se toimii oikein.
Paritetaan 2 pelaajaa. Kierros 1 ---------- Pelaaja 1 - Pelaaja 2 ------------------------ Loppu. Muistathan, että mustan on aina tarkoitus olla vasemmalla.
Paritetaan 3 pelaajaa. Kierros 1 ---------- Pelaaja 2 - Pelaaja 1 Vapaakierros: Pelaaja 3 ------------------------ Kierros 2 ---------- Pelaaja 1 - Pelaaja 3 Vapaakierros: Pelaaja 2 ------------------------ Kierros 3 ---------- Pelaaja 3 - Pelaaja 2 Vapaakierros: Pelaaja 1 ------------------------ Loppu. Muistathan, että mustan on aina tarkoitus olla vasemmalla.
Paritetaan 4 pelaajaa. Kierros 1 ---------- Pelaaja 1 - Pelaaja 4 Pelaaja 3 - Pelaaja 2 ------------------------ Kierros 2 ---------- Pelaaja 3 - Pelaaja 1 Pelaaja 2 - Pelaaja 4 ------------------------ Kierros 3 ---------- Pelaaja 1 - Pelaaja 2 Pelaaja 4 - Pelaaja 3 ------------------------
Paritetaan 5 pelaajaa. Kierros 1 ---------- Pelaaja 4 - Pelaaja 1 Pelaaja 2 - Pelaaja 3 Vapaakierros: Pelaaja 5 ------------------------ Kierros 2 ---------- Pelaaja 3 - Pelaaja 5 Pelaaja 1 - Pelaaja 2 Vapaakierros: Pelaaja 4 ------------------------ Kierros 3 ---------- Pelaaja 2 - Pelaaja 4 Pelaaja 5 - Pelaaja 1 Vapaakierros: Pelaaja 3 ------------------------ Kierros 4 ---------- Pelaaja 1 - Pelaaja 3 Pelaaja 4 - Pelaaja 5 Vapaakierros: Pelaaja 2 ------------------------ Kierros 5 ---------- Pelaaja 5 - Pelaaja 2 Pelaaja 3 - Pelaaja 4 Vapaakierros: Pelaaja 1 ------------------------
Paritetaan 6 pelaajaa. Kierros 1 ---------- Pelaaja 1 - Pelaaja 6 Pelaaja 5 - Pelaaja 2 Pelaaja 3 - Pelaaja 4 ------------------------ Kierros 2 ---------- Pelaaja 5 - Pelaaja 1 Pelaaja 4 - Pelaaja 6 Pelaaja 2 - Pelaaja 3 ------------------------ Kierros 3 ---------- Pelaaja 1 - Pelaaja 4 Pelaaja 3 - Pelaaja 5 Pelaaja 6 - Pelaaja 2 ------------------------ Kierros 4 ---------- Pelaaja 3 - Pelaaja 1 Pelaaja 2 - Pelaaja 4 Pelaaja 5 - Pelaaja 6 ------------------------ Kierros 5 ---------- Pelaaja 1 - Pelaaja 2 Pelaaja 6 - Pelaaja 3 Pelaaja 4 - Pelaaja 5 ------------------------
Kierros 1 ---------- Pelaaja 6 - Pelaaja 1 Pelaaja 2 - Pelaaja 5 Pelaaja 4 - Pelaaja 3 Vapaakierros: Pelaaja 7 ------------------------ Kierros 2 ---------- Pelaaja 5 - Pelaaja 7 Pelaaja 1 - Pelaaja 4 Pelaaja 3 - Pelaaja 2 Vapaakierros: Pelaaja 6 ------------------------ Kierros 3 ---------- Pelaaja 4 - Pelaaja 6 Pelaaja 7 - Pelaaja 3 Pelaaja 2 - Pelaaja 1 Vapaakierros: Pelaaja 5 ------------------------ Kierros 4 ---------- Pelaaja 3 - Pelaaja 5 Pelaaja 6 - Pelaaja 2 Pelaaja 1 - Pelaaja 7 Vapaakierros: Pelaaja 4 ------------------------ Kierros 5 ---------- Pelaaja 2 - Pelaaja 4 Pelaaja 5 - Pelaaja 1 Pelaaja 7 - Pelaaja 6 Vapaakierros: Pelaaja 3 ------------------------ Kierros 6 ---------- Pelaaja 1 - Pelaaja 3 Pelaaja 4 - Pelaaja 7 Pelaaja 6 - Pelaaja 5 Vapaakierros: Pelaaja 2 ------------------------ Kierros 7 ---------- Pelaaja 7 - Pelaaja 2 Pelaaja 3 - Pelaaja 6 Pelaaja 5 - Pelaaja 4 Vapaakierros: Pelaaja 1 ------------------------
Paritetaan 8 pelaajaa. Kierros 1 ---------- Pelaaja 1 - Pelaaja 8 Pelaaja 7 - Pelaaja 2 Pelaaja 3 - Pelaaja 6 Pelaaja 5 - Pelaaja 4 ------------------------ Kierros 2 ---------- Pelaaja 7 - Pelaaja 1 Pelaaja 6 - Pelaaja 8 Pelaaja 2 - Pelaaja 5 Pelaaja 4 - Pelaaja 3 ------------------------ Kierros 3 ---------- Pelaaja 1 - Pelaaja 6 Pelaaja 5 - Pelaaja 7 Pelaaja 8 - Pelaaja 4 Pelaaja 3 - Pelaaja 2 ------------------------ Kierros 4 ---------- Pelaaja 5 - Pelaaja 1 Pelaaja 4 - Pelaaja 6 Pelaaja 7 - Pelaaja 3 Pelaaja 2 - Pelaaja 8 ------------------------ Kierros 5 ---------- Pelaaja 1 - Pelaaja 4 Pelaaja 3 - Pelaaja 5 Pelaaja 6 - Pelaaja 2 Pelaaja 8 - Pelaaja 7 ------------------------ Kierros 6 ---------- Pelaaja 3 - Pelaaja 1 Pelaaja 2 - Pelaaja 4 Pelaaja 5 - Pelaaja 8 Pelaaja 7 - Pelaaja 6 ------------------------ Kierros 7 ---------- Pelaaja 1 - Pelaaja 2 Pelaaja 8 - Pelaaja 3 Pelaaja 4 - Pelaaja 7 Pelaaja 6 - Pelaaja 5 ------------------------
Add new attachment
Here's a short reminder on the most common formatting rules you have at your disposal. A complete list is available in TextFormattingRules.
(empty line) Make a paragraph break. ---- Horizontal ruler [link] Create hyperlink to "link", where "link" can be either an internal WikiName or an external link (http://) [text|link] Create a hyperlink where the link text is different from the actual hyperlink link. [text|wiki:link] Create a hyperlink where the link text is different from the actual hyperlink link, and the hyperlink points to a named Wiki. This supports interWiki linking. * Make a bulleted list (must be in first column). Use more (**) for deeper indentations. # Make a numbered list (must be in first column). Use more (##, ###) for deeper indentations. !, !!, !!! Start a line with an exclamation mark (!) to make a heading. More exclamation marks mean bigger headings. __text__ Makes text bold. ''text'' Makes text in italics (notice that these are single quotes (')) {{text}} Makes text in monospaced font. ;term:def Defines 'term' with 'def'. Use this with empty 'term' to make short comments. \\ Forced line break (please use sparingly). |text|more text| Makes a table. Double bars for a table heading.
Don't try to use HTML, since it just won't work.
To embed images just put them available on the web using one of the approved formats, and they will get inlined automatically. To see the list of approved formats, go check SystemInfo.
To make a code block, use triple {'s to open, and triple }'s to close.
(Wondering where this text comes from? It's on a page called Edit Page Help, which you can edit too!)