Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

[Python] [Windows / Linux] Pong (gegen Spieler oder CPU)

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Manuel



Anmeldungsdatum: 23.10.2004
Beiträge: 1271
Wohnort: Bayern

BeitragVerfasst am: 24.08.2008, 19:30    Titel: [Python] [Windows / Linux] Pong (gegen Spieler oder CPU) Antworten mit Zitat

Hi @ all,

Tjoar, ich habe mich gestern und heute vorm Bildschirm geklemmt und mir durch diverse Übungen versucht, Python mit Pygame beizubringen. Nun, mittlerweile ist etwas herausgekommen, was ich wohl als Veröffentlichungswürdig bezeichnen würde^^:


Hier ein Screenshot:



Und hier die Downloadlinks:
pong-win.exe (für Windowsnutzer, mit Source Code)
pong.tar.bz2 (Quellcode mit allen Ressourcen)

Ich hoffe, dass ich alle Pakete richtig gebaut habe^^. Windowsnutzer brauchen normalerweise nur entpacken und dann "pong.exe" ausführen.
Linuxuser packen sich den Quellcode, installieren python + pygame (unter Ubuntu mit "sudo apt-get install python python-pygame") und führen die darin enthaltene ".py"-Datei aus ("python pong.py").

Sourcecode ist in beiden Fällen die Datei "pong.py".

---

Mittlerweile kann man das Spiel nicht nur zu zweit, sondern auch alleine gegen einen CPU-Gegner zocken zwinkern

In der LIESMICH.TXT ist normalerweise alles Wichtige beschrieben. Dennoch eine kurze Tastenanweisung:

Pfeiltasten: Paddle 1 bewegen
w, a, s, d : Paddle 2 bewegen
ESC: Beenden


Tjoar, viel Spaß damit. Hoffe, dass jemand damit was anfangen kann lächeln

EDIT: Wer das Spiel im Vollbildmodus starten will, muss beim Start zusätzlich entweder "-F" oder "--fullscreen" als Parameter mitgeben.

EDIT²:
Zitat:
Changelog:

Version 0.55
========
- Das Spiel sollte nun auf jedem halbwegs aktuellen Rechner gleich schnell laufen (getestet mit 800 MHz + mit 2800 MHz)
- CPU-Gegner integriert. Beim Spielstart kommt künftig die Frage, ob man gegen die CPU oder einen weiteren Spieler spielen will
- Eine Anzeige wurde integriert, welches die Anzahl der verlorenen Bälle je Spieler anzeigt.
- Beim Abprall des Balls wird nun ein kleiner Zufallswert miteinberechnet. Das verhindert, dass man den Ball bis zum Sankt Nimmerlandstag zwischen zwei nie bewegenden Paddles hin- und herspringenlassen kann
- Der Abprallwinkel sollte nun ein wenig präziser als bisher berechnet werden
- Windowsnutzer müssen nun weder bei der LIESMICH.TXT noch beim Quellcode WordPad o.Ä. bemühen, die Texte werden jetzt auch unter Notepad korrekt angezeigt
- Diverse Geschwindigkeitsoptimierungen (im Detail: Bildschirmaktualisierungen finden jetzt nur noch in den Bereichen statt, in denen es auch notwendig ist). Das verringert die CPU-Last z.T. drastisch (von 40% auf 2,8 GHz auf fast 4% unter Windows!)
- Grafiken wurden von BMP nach PNG konvertiert

Version 0.51
========
- Das Spiel benötigt nun nicht mehr ganz soviel Prozessorleistung
- Spielgeschwindigkeit (und damit die Schwierigkeit) ein wenig erhöht

Version 0.5
========
- Erste Version

_________________
DL Walk (Denkspiel) | DL Malek (Denkspiel) | DL Warrior (ASCII-Adventure) | DL Sokodos (Sokoban-Klon)
---
www.astorek.de.vu


Zuletzt bearbeitet von Manuel am 05.09.2008, 08:52, insgesamt 10-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4700
Wohnort: ~/

BeitragVerfasst am: 24.08.2008, 21:41    Titel: Re: [Python] [Windows / Linux] Pong für 2 Spieler Antworten mit Zitat

Manuel hat Folgendes geschrieben:
(unter Ubuntu mit "sudo apt-get install python && sudo apt-get install python-pygame")

Code:
sudo apt-get install python python-pygame

müsste doch reichen, oder nicht?

edit: lustig, vor allem wenn man bedenkt, dass ich bisher nur unter BASIC eine ordentliche Grafikausgabe hinbekommen habe. happy
Habe aber das chr(13) aus der ersten Zeile nehmen müssen, dann klappt auch die magic line. lächeln
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Manuel



Anmeldungsdatum: 23.10.2004
Beiträge: 1271
Wohnort: Bayern

BeitragVerfasst am: 25.08.2008, 07:27    Titel: Re: [Python] [Windows / Linux] Pong für 2 Spieler Antworten mit Zitat

nemored hat Folgendes geschrieben:
Manuel hat Folgendes geschrieben:
(unter Ubuntu mit "sudo apt-get install python && sudo apt-get install python-pygame")

Code:
sudo apt-get install python python-pygame

müsste doch reichen, oder nicht?
Ok, reicht natürlich auch lächeln
Zitat:
edit: lustig, vor allem wenn man bedenkt, dass ich bisher nur unter BASIC eine ordentliche Grafikausgabe hinbekommen habe. happy
Hehe, bei mir ist es genau umgekehrt: Es ist das erste Mal, das ich überhaupt eine Grafikausgabe hinbekomme, dafür ohne BASIC. Nach all den ASCII-Spielchen ist es (für mich) eigentlich eine Premiere, endlich mal was Grafisches vorzustellen grinsen
Zitat:
Habe aber das chr(13) aus der ersten Zeile nehmen müssen, dann klappt auch die magic line. lächeln
Ah, da liegt der Hund begraben. Ich hab mich schon gewundert, warum ich das unter Linux (trotz chmod +x) nicht direkt zum Laufen gebracht habe, sondern immer mit dem Interpreter aufrufen musste. Thx, muss ich demnächst mal ändern...
_________________
DL Walk (Denkspiel) | DL Malek (Denkspiel) | DL Warrior (ASCII-Adventure) | DL Sokodos (Sokoban-Klon)
---
www.astorek.de.vu
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger
St_W



Anmeldungsdatum: 22.07.2007
Beiträge: 956
Wohnort: Austria

BeitragVerfasst am: 25.08.2008, 18:43    Titel: Antworten mit Zitat

Hallo!

ich finde das Spiel toll, nur läuft es auf meinem alten 1,2 GHz PC viel zu langsam und dieser Prozessor ist völlig ausgelastet (siehe Screenshot).



Im Screenshot bin ich übrigens mit beiden Pads in einer Position, in der der Ball immer gleich hin und her springt, ohne dass ich die Position verändern muss.

LG,
St_W
_________________
Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Manuel



Anmeldungsdatum: 23.10.2004
Beiträge: 1271
Wohnort: Bayern

BeitragVerfasst am: 26.08.2008, 06:29    Titel: Antworten mit Zitat

St_W hat Folgendes geschrieben:
Hallo!

ich finde das Spiel toll, nur läuft es auf meinem alten 1,2 GHz PC viel zu langsam und dieser Prozessor ist völlig ausgelastet (siehe Screenshot).
Puh, das habe ich völlig vergessen, noch mitzutesten... Ich habe eine neue Version hochgeladen, die jetzt weniger Prozessorleistung frisst (30% bei meinen 2.8 GHz und 50% bei 800 MHz...). Link für Quellcode + Windows-Paket ist derselbe. Leider läuft das Spiel auf älteren Prozessoren immer noch langsam, ich bin dabei, das zu lokalisieren und zu beheben...(EDIT: behoben)
Zitat:
Im Screenshot bin ich übrigens mit beiden Pads in einer Position, in der der Ball immer gleich hin und her springt, ohne dass ich die Position verändern muss.

LG,
St_W
EDIT: Korrigiert lächeln

Allgemein: Danke für die Kritik lächeln

Ist schon lustig, ich bekomme derzeit mit Python Geschwindigkeitsprobleme bei unterschiedlichen Prozessoren, ähnlich wie unter QBasic wenn man keine Vorkehrungen trifft... Ich seh zu, dass ich den Bug noch behebe...
_________________
DL Walk (Denkspiel) | DL Malek (Denkspiel) | DL Warrior (ASCII-Adventure) | DL Sokodos (Sokoban-Klon)
---
www.astorek.de.vu


Zuletzt bearbeitet von Manuel am 01.09.2008, 14:03, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger
Manuel



Anmeldungsdatum: 23.10.2004
Beiträge: 1271
Wohnort: Bayern

BeitragVerfasst am: 31.08.2008, 23:44    Titel: Antworten mit Zitat

*Update*

Das Spiel läuft jetzt auf allen halbwegs aktuellen PCs gleich schnell, außerdem wurde ein CPU-Gegner und ein Zähler für verlorene Bälle je Spieler integriert. Es hat relativ viele (kleinere) Änderungen gegeben, am Besten lest ihr euch das Changelog im ersten Beitrag durch zwinkern . Downloadlink für Quelltext und Windows-Programm ist jeweils derselbe im ersten Beitrag.


@nemored: Es wär super wenn du mir sagen würdest, was genau du gemacht hast, um es unter Linux problemlos ausführbar zu machen. lächeln Ich kriege das irgendwie nicht hin und habe nach zig Versuchen zähneknirschend aufgegeben... Ist leider der Nachteil, wenn man das Projekt mal unter Windows und mal unter Linux bearbeitet...
_________________
DL Walk (Denkspiel) | DL Malek (Denkspiel) | DL Warrior (ASCII-Adventure) | DL Sokodos (Sokoban-Klon)
---
www.astorek.de.vu


Zuletzt bearbeitet von Manuel am 05.09.2008, 08:55, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4700
Wohnort: ~/

BeitragVerfasst am: 01.09.2008, 01:07    Titel: Antworten mit Zitat

Eigentlich musst du nur die Zeilenumbrüche konvergieren ... genauer gesagt habe ich nur den Zeilenumbruch von Zeile 1 zu Zeile 2 gelöscht und neu eingegeben.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Manuel



Anmeldungsdatum: 23.10.2004
Beiträge: 1271
Wohnort: Bayern

BeitragVerfasst am: 01.09.2008, 10:22    Titel: Antworten mit Zitat

nemored hat Folgendes geschrieben:
genauer gesagt habe ich nur den Zeilenumbruch von Zeile 1 zu Zeile 2 gelöscht und neu eingegeben.
Und mit welchem Editor? grinsen Ich kriege das irgendwie weder unter gedit noch unter vim zum Laufen, egal wie oft ich beide Zeilen lösche/verbinde oder neu schreibe... Ich habs mit sed und Tools wie "dos2unix" versucht, ge"cat"ttet in eine neue Datei etc., ich krieg das irgendwie ums Verrecken nicht hin... Das kann doch nicht so schwer sein peinlich
_________________
DL Walk (Denkspiel) | DL Malek (Denkspiel) | DL Warrior (ASCII-Adventure) | DL Sokodos (Sokoban-Klon)
---
www.astorek.de.vu
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4700
Wohnort: ~/

BeitragVerfasst am: 01.09.2008, 11:33    Titel: Antworten mit Zitat

Manuel hat Folgendes geschrieben:
mit welchem Editor?

gedit
Aus "ausführbar" hast du die Datei ja gesetzt, oder?
Irgendwelche Fehlermeldungen?
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Manuel



Anmeldungsdatum: 23.10.2004
Beiträge: 1271
Wohnort: Bayern

BeitragVerfasst am: 01.09.2008, 11:47    Titel: Antworten mit Zitat

Ah, ich habe das Problem endlich: Es lag an der Zeichenkodierung bzw. an das, was ich in meinem Ubuntu-System per Voreinstellung (fatalerweise) geändert habe... Mittlerweile geht es, ich werde den Source-Code mal demnächst ohne diese "Krücke" hochladen...
_________________
DL Walk (Denkspiel) | DL Malek (Denkspiel) | DL Warrior (ASCII-Adventure) | DL Sokodos (Sokoban-Klon)
---
www.astorek.de.vu
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 01.09.2008, 13:05    Titel: Antworten mit Zitat

nemored hat Folgendes geschrieben:
Eigentlich musst du nur die Zeilenumbrüche konvergieren ... genauer gesagt habe ich nur den Zeilenumbruch von Zeile 1 zu Zeile 2 gelöscht und neu eingegeben.

g und t liegen nah beieinander, aber dass man zeilenumbrüche konvergiert, ist mir neu happy
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4700
Wohnort: ~/

BeitragVerfasst am: 01.09.2008, 16:29    Titel: Antworten mit Zitat

Lass mich doch - Mathematiker konvergieren nun einmal gerne. happy

btw: lim \r->0 \r+\n = \n
(hoffentlich ist der String nicht 0-terminiert ...)
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz