Advertisement
Guest User

autokartta.py

a guest
Apr 25th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.49 KB | None | 0 0
  1.  
  2.  
  3. """
  4. autot.txt tällainen:
  5. A;5;5
  6. B;3;3
  7. C;7;1
  8. """
  9.  
  10.  
  11.  
  12. def lue_autot_tiedostosta(tiedostonimi):
  13. """
  14. Palauttaa listan, jossa on dict-tyyppisiä alkioita
  15. Dict-alkioissa aina avain-arvo -parit
  16. nimi, x, y
  17. [{ "nimi": "Auto1", "x": 25, "y": 44},...]
  18. """
  19.  
  20. autolista = []
  21. with open(tiedostonimi, "r") as tiedosto:
  22. for rivi in tiedosto:
  23. # "\n"
  24. rivi = rivi.strip()
  25. nimi, x, y = rivi.split(";")
  26.  
  27. uusi_auto = {
  28. "nimi": nimi,
  29. "x": int(x),
  30. "y": int(y)
  31. }
  32. autolista.append(uusi_auto)
  33.  
  34.  
  35. return autolista
  36.  
  37.  
  38. KARTTA_LEVEYS = 50
  39. KARTTA_KORKEUS = 8
  40.  
  41. def piirrä_kartta(autot):
  42. """
  43. . . . . . . . .
  44. . . . . . . . .
  45. . . . . . . . .
  46. """
  47.  
  48. for k in range(0, KARTTA_KORKEUS):
  49. for l in range(0, KARTTA_LEVEYS):
  50.  
  51. auto_löytyi = False
  52. for auto in autot:
  53. if auto["x"] == l and auto["y"] == k:
  54. auto_löytyi = True
  55. print(auto["nimi"], end="")
  56.  
  57. if not auto_löytyi:
  58. print(".", end="")
  59.  
  60. print()
  61.  
  62. def aja_autoa(autolista):
  63.  
  64. """
  65. Valitse auto:
  66. [0] A
  67. [1] B
  68. [2] C
  69. ...
  70. """
  71.  
  72. print("Valitse seuraavista autoista:")
  73. for indeksi in range(0, len(autolista)):
  74. print(indeksi, autolista[indeksi]["nimi"])
  75.  
  76. valinta = int(input("indeksi: "))
  77.  
  78. uudet_koordinaatit = input("Syötä koordinaatit muodossa 'x,y': ")
  79. uusi_x, uusi_y = uudet_koordinaatit.split(",")
  80.  
  81. auto = autolista[valinta]
  82. auto["x"] = int(uusi_x)
  83. auto["y"] = int(uusi_y)
  84.  
  85. return autolista
  86.  
  87.  
  88.  
  89.  
  90.  
  91. def main():
  92. autot = lue_autot_tiedostosta("autot.txt")
  93.  
  94. while True:
  95. piirrä_kartta(autot)
  96.  
  97. syöte = input(" >")
  98.  
  99. if syöte == "aja":
  100. autot = aja_autoa(autot)
  101.  
  102. elif syöte == "lisää":
  103.  
  104. uusi_auto_mjono = input("Anna uusi auto muodossa nimi,x,y: ")
  105. nimi, x, y = uusi_auto_mjono.split(",")
  106. x = int(x)
  107. y = int(y)
  108. uusi_auto = {
  109. "nimi": nimi,
  110. "x": x,
  111. "y": y
  112. }
  113. autot.append(uusi_auto)
  114.  
  115.  
  116. # uusia komentoja voisi olla:
  117. # poista, etsi, vaihda autojen paikka keskenään,
  118. # vaihda kartan kokoa
  119.  
  120.  
  121.  
  122. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement