DatenSammeln.py 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. # (c) Hochschule Anhalt, veröffentlicht unter MIT-Lizenz
  2. # Datensammler
  3. # Autor: Viktor Lysow, Johannes Tümler
  4. # Letzte Änderung: 22.04.2022
  5. # Zweck: Daten für den Matlab Beleg sammeln
  6. # Der Nachfolgende Codeblock "BLOCK1" sorgt dafür, dass man aus jeder Datei heraus das Hauptprogramm starten kann.
  7. # Dadurch kann man in jeder Datei auf "play" drücken und es wird automatisch main.py gestartet.
  8. if __name__=="__main__":
  9. import subprocess
  10. # Auf Linux oder Mac aktivieren Sie die folgende Zeile und deaktivieren Sie die Zeile danach:
  11. #subprocess.call("python3 main.py", shell=True) # die richtige Main-Datei aufrufen (unser eigentliches Hauptprogramm)
  12. subprocess.call("main.py", shell=True) # die richtige Main-Datei aufrufen (unser eigentliches Hauptprogramm)
  13. exit(0) # nun das Programm hier beenden .. wir wollen ja nur das Hauptprogramm starten und nicht *diese* Datei.
  14. # Hinweis fürs Debugging: Das VSCode-Debugging funktioniert jedoch nur, wenn man das Debugging in der "main.py" beginnt! D.h. wer debuggen möchte, muss die main.py öffnen und dort Debug starten.
  15. # Ende "BLOCK1"
  16. import datetime
  17. dateiName = 'Spiel_Daten.csv'
  18. """
  19. Erläuterung zum Daten Sammeln:
  20. [0] = Jahr
  21. [1] = Monat
  22. [2] = Tag
  23. [3] = Stunde
  24. [4] = Minute
  25. [5] = Sekunde
  26. [6] = Schritte Held
  27. [7] = Schüsse Held
  28. [8] = Anzahl der Monster in Level 1
  29. [9] = Anzahl der Monster in Level 2
  30. [10] = Anzahl Teleportationen
  31. [11] = Besiegt in Level (Spezial: level 3 ist Spielsieg)
  32. """
  33. neue_zeile = [0,0,0,0,0,0,0,0,0,0,0,0] # Zeile, die eingefügt wird
  34. def open_csv():
  35. try: # Test, ob die csv existiert
  36. op_text = open(dateiName)
  37. except: # Wenn nicht, neu erstellen
  38. neu_text = open(dateiName, 'w')
  39. #neu_text.write(f'{zeile0[0]},{zeile0[1]},{zeile0[2]},{zeile0[3]},{zeile0[4]},{zeile0[5]},{zeile0[6]},{zeile0[7]},{zeile0[8]},{zeile0[9]},{zeile0[10]},{zeile0[11]}')
  40. neu_text.close()
  41. op_text = open(dateiName)
  42. text = op_text.read()
  43. op_text.close()
  44. zeilen = text.split('\n')
  45. tabelle = []
  46. if not zeilen == ['']:
  47. for i in range(len(zeilen)):
  48. spalten = zeilen[i].split(',')
  49. tabelle.append(spalten)
  50. return tabelle
  51. def daten_csv(spalte,info): # (welche Spalte, die Information in der Spalte) Zeit, Schritte und Schüsse werden hier übergeben
  52. info = str(info)
  53. neue_zeile[spalte] = info
  54. def write_csv(): # Die csv wird hier überschrieben (Speichern)
  55. neue_zeile[0] = datetime.datetime.today().year # Datum in Spalte 1 - 3
  56. neue_zeile[1] = datetime.datetime.today().month
  57. neue_zeile[2] = datetime.datetime.today().day
  58. neue_zeile[3] = datetime.datetime.today().hour # Uhrzeit in Spalte 3 - 6
  59. neue_zeile[4] = datetime.datetime.today().minute
  60. neue_zeile[5] = datetime.datetime.today().second
  61. tabelle = open_csv() # Gesamte Tabelle
  62. tabelle.append(neue_zeile) # Gesmate Tabelle + der neuen Zeile
  63. neu_text = open(dateiName, 'w')
  64. for i in range(len(tabelle)):
  65. neu_text.write(
  66. f'{tabelle[i][0]},{tabelle[i][1]},{tabelle[i][2]},{tabelle[i][3]},{tabelle[i][4]},{tabelle[i][5]},{tabelle[i][6]},{tabelle[i][7]},{tabelle[i][8]},{tabelle[i][9]},{tabelle[i][10]},{tabelle[i][11]}')
  67. if not len(tabelle) - 1 == i:
  68. neu_text.write('\n')
  69. neu_text.close()
  70. reset()
  71. def reset(): # neue Zeile wird wieder auf 0 gesetzt für das eventuelle nächste Spiel
  72. global neue_zeile
  73. neue_zeile = [0,0,0,0,0,0,0,0,0,0,0,0]