Sur Ba Programming Challenge
Játék a véletlennel
Kicsit visszatérünk a vektorgrafikához, mert miért ne! Az alábbi program véletlenszerűen rajzol egy négyszöget:
#!/usr/bin/python
import random
coords = ''
i = 0
while (i < 4):
coords = coords + str(random.randrange(1, 62)) + ","
coords = coords + str(random.randrange(1, 62)) + " "
i = i + 1
print """Content-type: image/svg+xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 64 64"
version="1.1"
height="600"
width="600">
<g>
<path d="M """ + coords + """ z"
style="fill: none; stroke: #000000;" />
</g>
</svg>
""";
http://apocalypse.rulez.org/~upi/surba/polygon.py [source]
Vegyük észre:
- Az
import
paranccsal lehet a Python terjedelmes könyvtárából elemeket berántani a programunkban. Enélkül csak néhány egészen alapvető és közhasznú függvény áll rendelkezésre. - A Pythonban vannak eljárások, ezek közül kettőt látunk itt: a
random.randrange
ésstr
nevűket.- Egy függvényt úgy lehet meghívni, hogy a neve után zárójelek között és vesszővel elválasztva felsoroljuk a paramétereit. Futás közben a eljárás majd szépen lefut, és behelyettesít valamilyen visszatérési értéket a helyére.
- A
random.randrange(1, 62)
eljárás egy egész számot generál az [1, 62) intervallumban. Az eljárás két egész szám paramétert vár, és egy egész számmal tér vissza. - Mivel a Python
+
operátora nem hajlandó számot és szöveget "összeadni", ezért a számokat azstr(szám)
eljárással szöveggé alakítjuk kézi hajtással. Ez az eljárás egy szám paramétert vár és egy szöveggel tér vissza, ami a számnak a tízes számrendszerű reprezentációja lesz. - Később megtanuljuk majd, hogyan csináljunk saját eljárásokat is.
- A koordináta-párokat az elején állítjuk össze, majd ügyesen belegyömöszöljük a kiírt SVG dokumentumba egy óvatlan pillanatban.
Feladatok
- Legyen a sokszög éleinek a száma is véletlenszerű, háromszögtől nyolcszögig.
- Legyen a sokszög éleinek száma véletlenszerű 4 és 12 között, de mindenképpen páros.
- Bónusz feladat: Legyen a sokszög színe is véletlenszerű.
- Bónusz feladat: Generáljunk négyzetet. Ha elfajuló, akkor pirosra színezzük ki, ha normális, akkor zöldre.
Hozzászólások
0