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
import string
# 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 " + string.rjust(`pelaaja+1`,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 30-May-2005 16:31 by 130.231.240.27.