Informatikabitur - Projekt in Python

monde

in grün die Felder, die in die Level-Datei gespeichert werden.
key type Bem.
posarrayspielkoordinaten
dateistringPfad zu Bilddatei
imgPygameImage object
rectPygameRect object
dposarrayPosition auf dem Bildschirm
typestringTyp des objekts siehe Tabelle, soll in integer konvertiert werden
nposarraydpos ohne korrektur in z richtung
korrintkorrektur zur höhe der gebauede (in z richtung)
bauenintob das Feld bebaubar ist: 0 False , 1 True
sizearraygrösse des Objektes, in feldern
(prop)dict(Eigenschaften des Objektes)

players

players ist ein dict mit der player id als index. Jeder player hat folgende Struktur
key type Bem.
namestringname des players
cashintvermögen des players
popintpopulation im gesamten
ausgintausgaben des Spielers
einginteinahmen des Spielers
gebdictgebäudeinfos

players[n]["geb"] Gebäudeinfos pro player

n ist die playerID, typ ist der gebäudeTyp und pos ist das Positionsarray players[n]["geb"][typ][str(pos)] ist der volle Pfad
key type Bem.
prodintgüterID des produziertem gut
prodvintgeschwindichkeit in der produziert wird, in einheiten pro minute, Wert muss austariert werden und ist in bgruppen.dat einzutragen
speintspeicherstand des Gebäudes
poslistposition des Gebäudes
reqfeldintbenötigtes Feld für produktion
playerintEigner des Gebäudes
typintID des Gebäudes

bauen

in grün Felder. in rot häuser. in blau wege.
key type Bem.
typeintegerTyp ID des Objekts
beginarraykoordinaten des Begins des zu bauenden Feldes
endarraykoordinaten des Ende des zu bauenden Feldes
inhalt von mondedictinhalt des monde eintrages, der später in monde geschrieben wird
beginarraykoordinaten des Begins des zu bauenden Feldes
endarraykoordinaten des Ende des zu bauenden Feldes
wegarrayinhalt von monde der zu bauenden wegelemente als array

menu

key type Bem.
bauenarraybau-menu, enthält dicts
obendictobere haelfte des menus
confdictconfig tab
showstringwelcher tab angezeigt wird (bauen,info)
posdictposition des menus: w:breite , h:höhe , x,y

menu["bauen"]
key type Bem.
dateistringicon datei
posarrayrelative position, absolute wird in for schleife ausgerechnet
sizearraysize in px des icons
typeintwelcher type id gebaut werden soll

menu["oben"]
key type Bem.
tabsdicttabs (bauen,info) ähnlich wie menu["bauen"] aufgebaut, nur dass type der menu dict index des tabs ist

menu["conf"]
key type Bem.
savearraymomentan nur "lock" als key, schalter um doppling beim klick zu vermeiden

leute

leute ist eine liste, in der jedes Element ein Mann darstellt.
key type Bem.
pos list aktuelle position des Männchens
dpos list Position, der linken oberen Ecke, so wie der Mann auf den Bildchirm gezeichnet wird
dest list letzte position in der Route des Mannes
route list liste aller (Weg-)Felder, die abgelaufen werden müssen, index 0 ist das nächste, index -1 das letzte
seen list liste der bereits abgeschrittenen Wegelemente, wichtig um ihn wieder an sein Ursprung zu schicken
dest_pos list position des Zielgebäudes
source_pos list position des Ursprunggebäudes
todo list chronologische Liste der dinge, die noch zu erledigen sind ([typ , +/- betrag])
max_spe int maximaler Speicher pro Gut
spe dict Speicher, typ als keys

sonstige vars

key type Bem.
zoomf int zoomfaktor , 0 klein , 1 mittel , 2 gross
modestringmodus: b bauen , i, info
selarraykoordinaten der auswahl im infomodus
wegelistliste aller Felder, die als Wege ausgezeichnet sind
nodeslistliste aller Kreuzungen der Wege (>2 Nachbarfelder als Weg)

Type IDs

Die Bilder sin in 3 verschiedenen grossen vorhanden: -z2 -z1 -z0
und in einer helleren version (in jeder grösse): -b
IDobjektdim. pxdimdatei
1Wiese104x601x1wiese-z2-n.png
2Steinweg104x601x1weg-h-z2-n.png
3Kornfeld104x711x1feld-korn-z2-n.png
10Haus lvl0312x2173x3haus-lvl0-z2-n.png
11Haus lvl1312x2683x3haus-lvl1-z2-n.png
15Kontor lvl1312x2723x3kontor-lvl1-z2-n.png
20Getreidefarm312x2463x3farm-korn-z2-n.png
40Bote (Mensch)-x--x-manh-z2-n.png

Güter IDs

jedes Gut hat eine ID, angefangen wird bei 100, weil vorger die Gebäude numeriert werden
IDobjekt
110Korn