Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- autot.txt tällainen:
- A;5;5
- B;3;3
- C;7;1
- """
- def lue_autot_tiedostosta(tiedostonimi):
- """
- Palauttaa listan, jossa on dict-tyyppisiä alkioita
- Dict-alkioissa aina avain-arvo -parit
- nimi, x, y
- [{ "nimi": "Auto1", "x": 25, "y": 44},...]
- """
- autolista = []
- with open(tiedostonimi, "r") as tiedosto:
- for rivi in tiedosto:
- # "\n"
- rivi = rivi.strip()
- nimi, x, y = rivi.split(";")
- uusi_auto = {
- "nimi": nimi,
- "x": int(x),
- "y": int(y)
- }
- autolista.append(uusi_auto)
- return autolista
- KARTTA_LEVEYS = 50
- KARTTA_KORKEUS = 8
- def piirrä_kartta(autot):
- """
- . . . . . . . .
- . . . . . . . .
- . . . . . . . .
- """
- for k in range(0, KARTTA_KORKEUS):
- for l in range(0, KARTTA_LEVEYS):
- auto_löytyi = False
- for auto in autot:
- if auto["x"] == l and auto["y"] == k:
- auto_löytyi = True
- print(auto["nimi"], end="")
- if not auto_löytyi:
- print(".", end="")
- print()
- def aja_autoa(autolista):
- """
- Valitse auto:
- [0] A
- [1] B
- [2] C
- ...
- """
- print("Valitse seuraavista autoista:")
- for indeksi in range(0, len(autolista)):
- print(indeksi, autolista[indeksi]["nimi"])
- valinta = int(input("indeksi: "))
- uudet_koordinaatit = input("Syötä koordinaatit muodossa 'x,y': ")
- uusi_x, uusi_y = uudet_koordinaatit.split(",")
- auto = autolista[valinta]
- auto["x"] = int(uusi_x)
- auto["y"] = int(uusi_y)
- return autolista
- def main():
- autot = lue_autot_tiedostosta("autot.txt")
- while True:
- piirrä_kartta(autot)
- syöte = input(" >")
- if syöte == "aja":
- autot = aja_autoa(autot)
- elif syöte == "lisää":
- uusi_auto_mjono = input("Anna uusi auto muodossa nimi,x,y: ")
- nimi, x, y = uusi_auto_mjono.split(",")
- x = int(x)
- y = int(y)
- uusi_auto = {
- "nimi": nimi,
- "x": x,
- "y": y
- }
- autot.append(uusi_auto)
- # uusia komentoja voisi olla:
- # poista, etsi, vaihda autojen paikka keskenään,
- # vaihda kartan kokoa
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement