Hallo Phyton-Forum,
derzeit arbeiten wir in der Schule mit dem Roboter Niko
(NIKO, der objektorientierte Roboter)
und da wir alles derzeit per Befehle schreiben (umdrehen():,..) hatte
ich die Idee den Roboter so umzuprogrammiren das man diesen mit
der Tastatur steuern kann.
Da ich nun ein Anfänger in Sachen Phyton bin habe ich mir erhofft
das die Profis hier unter euch mir da ein wenig helfen können.
Also nun meine Frage: Kann ich den Roboter umprogrammieren so dass man diesen
per Tastatur steuern kann ? (Pfeiltasten zum gehen und eine Taste zum aufheben der Werkzeuge welche man im Mapeditor platzieren kann.)
Ich hoffe das ihr mir weiter helfen könnt
Mfg Sascha
Niko (Roboter) per Tastatur steuern ?
Wenn NIKO zusammen mit Tkinter (bzw. einer anderen bekannten GUI) genutzt wird, dürfte dein Vorhaben mithilfe von Keybindings (an welche die entsprechenden Funktionen gebunden werden) lösbar sein. Phyton beherrschen wir hier leider nicht, deswegen musst du selbst nach einer Lösung googeln
Ich kenne nur das "alte" NIKI auf Basis von Pascal, ich nehme an, du meinst diesen. Eingaben kann man in Python normaler Weise mit raw_input/input entgegennehmen, oder so, wie webspider meinte. Allerdings sind diese Umgebungen garnicht für solche Dinge gedacht. Eigentlich steckt da der didaktische Gedanke hinter, in einer stark vereinfachten Umgebungen die Grundlagen zu lernen. 'Mein' Niko kannte zum Beispiel auch keine Variablen. Ich an deiner Stelle würde daher nicht so viel Energie da rein stecken, die Sachen, die der Lehrer euch zeigt, mitmachen und mich auf das 'richtige' programmieren, das danach anfängt freuen
Abgesehen davon gibt es so Programmierspiele, bei denen man virtuelle Kampfroboter gegeneinander antreten lässt. Für Python habe ich sowas noch nicht gesehen, gibt es aber bestimmt auch.
Abgesehen davon gibt es so Programmierspiele, bei denen man virtuelle Kampfroboter gegeneinander antreten lässt. Für Python habe ich sowas noch nicht gesehen, gibt es aber bestimmt auch.
Hallo Sascha,
ich glaube, das wirst du so nicht so einfach hinbekommen, aber macht auch nix: Niko sollst du ja gar nicht immer nur selbst steuern, sondern du wirst lernen, wie du ihm ein Programm gibst, und mit Schleifen und Abfragen eine durchaus komplexe Steuerung bauen kannst. Dann musst du nur noch starten, kannst dich zurücklehnen und dem Roboter dabei zuschauen, wie er sich selbst seinen Weg sucht.
ich glaube, das wirst du so nicht so einfach hinbekommen, aber macht auch nix: Niko sollst du ja gar nicht immer nur selbst steuern, sondern du wirst lernen, wie du ihm ein Programm gibst, und mit Schleifen und Abfragen eine durchaus komplexe Steuerung bauen kannst. Dann musst du nur noch starten, kannst dich zurücklehnen und dem Roboter dabei zuschauen, wie er sich selbst seinen Weg sucht.
xXSaschaXx hat geschrieben:Hallo Phyton-Forum,
derzeit arbeiten wir in der Schule mit dem Roboter Niko
(NIKO, der objektorientierte Roboter)
und da wir alles derzeit per Befehle schreiben (umdrehen():,..) hatte
ich die Idee den Roboter so umzuprogrammiren das man diesen mit
der Tastatur steuern kann.
Da ich nun ein Anfänger in Sachen Phyton bin habe ich mir erhofft
das die Profis hier unter euch mir da ein wenig helfen können.
Also nun meine Frage: Kann ich den Roboter umprogrammieren so dass man diesen
per Tastatur steuern kann ? (Pfeiltasten zum gehen und eine Taste zum aufheben der Werkzeuge welche man im Mapeditor platzieren kann.)
Ich hoffe das ihr mir weiter helfen könnt
Mfg Sascha
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
-
- User
- Beiträge: 3
- Registriert: Mittwoch 29. Februar 2012, 20:18
Das ist klarKebap hat geschrieben:Hallo Sascha,
ich glaube, das wirst du so nicht so einfach hinbekommen, aber macht auch nix: Niko sollst du ja gar nicht immer nur selbst steuern, sondern du wirst lernen, wie du ihm ein Programm gibst, und mit Schleifen und Abfragen eine durchaus komplexe Steuerung bauen kannst. Dann musst du nur noch starten, kannst dich zurücklehnen und dem Roboter dabei zuschauen, wie er sich selbst seinen Weg sucht.
xXSaschaXx hat geschrieben:Hallo Phyton-Forum,
derzeit arbeiten wir in der Schule mit dem Roboter Niko
(NIKO, der objektorientierte Roboter)
und da wir alles derzeit per Befehle schreiben (umdrehen():,..) hatte
ich die Idee den Roboter so umzuprogrammiren das man diesen mit
der Tastatur steuern kann.
Da ich nun ein Anfänger in Sachen Phyton bin habe ich mir erhofft
das die Profis hier unter euch mir da ein wenig helfen können.
Also nun meine Frage: Kann ich den Roboter umprogrammieren so dass man diesen
per Tastatur steuern kann ? (Pfeiltasten zum gehen und eine Taste zum aufheben der Werkzeuge welche man im Mapeditor platzieren kann.)
Ich hoffe das ihr mir weiter helfen könnt
Mfg Sascha
Haben wir auch bereits alles gmacht. Also wir haben den Roboter halt bestimmte Wege laufen lassen ihn Hindernisse umgehen lassen und so weiter. Da es ja auch irgendwie ein wenig langweilig ist wen er alles selbst macht. Daher kam mir auch die Idee den Roboter mal selbst zu steuern.
Ich habe bereits meinen Lehrer danach gefragt jedoch wusste er es auch nicht genau. Er meinte nur das er vermutet das es geht. Außerdem meinte er auch zu mir das er selbst es gerade versuchst.
Mfg
Vielleicht genügt das ja als kleine Hilfe:
Die Steuerung musst du dann in der robot-Funktion umsetzen. Welche Taste gedrückt ist, erfährst du mittels ``command.keycode``. Das ist natürlich weit entfernt von perfekt, aber zum Testen sollte es reichen.
Sebastian
Code: Alles auswählen
import Queue
import threading
import Tkinter
def robot(queue):
#initialise robot
while True:
command = queue.get()
if command is None:
return
else:
#send command to robot
print command.keycode
def main():
queue = Queue.Queue()
controller = threading.Thread(target=robot, args=(queue,))
controller.start()
root = Tkinter.Tk()
root.bind("<Key>", queue.put)
root.mainloop()
queue.put(None)
if __name__ == "__main__":
main()
Sebastian
Das Leben ist wie ein Tennisball.
-
- User
- Beiträge: 3
- Registriert: Mittwoch 29. Februar 2012, 20:18
Danke dir.
Ich werde es mal damit versuchen
Mfg
Ich werde es mal damit versuchen
Mfg