Tällä sivulla esitän yksinkertain python-ohjelman paritustaulukoiden tekoon, sekä erinäisiä pieniä paritustaulukoita. -- Pekka
#!/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
Only authorized users are allowed to upload new attachments.
«
This particular version was published on 20-Nov-2009 10:21 by 164.67.235.128.