Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

PingPong mit C Programmieren

Empfohlene Antworten

Veröffentlicht

Hallo,

man hat uns in der BS gesagt, dass wir nächsten Jahr als Projekt ein PingPong Spiel in C programmieren sollen und ich wollte mich schon mal etwas damit befassen, jedoch weis ich nicht ganz genau wo ich anfangen soll. Hat jemand ein paar Tips oder ähnliches für mich.

Gruß,

Nokio

  • Autor

Hi,

ja genau das. Also sollte auf win 2000 oder xp, mit dem borland dos Entwicklungssystem gemacht werden. Theoretisch sollten wir das nächste Jahr mit c++ anfangen, vielleicht werden wir dann ein anderes Entwicklungssystem bekommen, bin mir da nicht sicher. Also es sollte nicht so kompliziert entwickelt sein vielleicht is eine einfachere Version doch mödlich bzw. worin wird das Problem liegen wieso es nicht machbar sein wird?

Gruß,

Nokio

Hallo,

naja, dieses Pong ist ja an sich schon nicht so extrem kompliziert, aber so einige Grundfunktioniläten sollten doch schon berücksichtigt werden.

So kannst du z. B. nicht direkt per Tastendruck irgendwas ans Programm senden, da die Sachen erst gepuffert werden. D. h. du müsstest immer erst Return drücken damit was passiert.

Hilfe schaffen da so Dinge wie conio.h, was aber eben kein Ansi-C mehr ist.

  • Autor

Also da haben wir uns glaub ich etwas missverstanden, wenn conio.h kein ansi C ist (wusste nicht genau was das ist) dann hab ich kein ansi c, denn ich habe die ganzen bibliotheken inklusive conio.h etc also sollte es schon möglich sein. Sonst würde unser Lehrer es uns schon sagen wens nicht gehen würde.

Also was ich nicht genau verstehe wie es funktieren sollte, wären zuerst mal 2 Sachen.

1. Wie kann man es machen, dass sich die schläger bewegen sollen und 2. wie schaffe ich es, dass der ball dann von den Schlägern abprallt.

Gruß,

Nokio

hmm.... wenn ich kurz überleg.

Wenn es wirklich ultra einfach sein soll hat man ja nur 5-7 Tasten

(1 Taste um das Spiel zu Starten (nich das Programm, das Spiel ;)))

1 Taste um das Programm, nicht das Spiel zu verlassen

(1 Um das Spiel zu resetten)

2 Tasten für Spieler A

2 Tasten für Spieler B

Dann mach ich ne Endlosschleife mit getch()

Dann frag ich meine Eingabe ab und reagiere darauf.

Abfrage ob max_high oder max_low erreicht wurde, ansonsten bewegen um faktor 1 oder so.

Kollisionsabfrage für schläger und wand is auch recht einfach, aber wie bitte wird das mit einfalls und ausfallswinkel bestimmt.

Is das n Zufallswert dann isses einfach, is er bestimmt dann hab ich kein plan wonach das geht O_o

  • Autor

Schon klar, will auch keine sonst hats ja keinen Lernzweck mehr, das letzte waren pointer glaub ich was wir gemacht haben aber nur grob. Also wie gesagt ich habe schon so eine Ahnung wie ich das machen werde, das sich der ball bewegt, wenn er z.B. abprallt oder so, aber wie ich die Schläger mache damit sie sich auch bewegen, habe ich wirklich keine Ahnung.

Also was ich nicht genau verstehe wie es funktieren sollte, wären zuerst mal 2 Sachen.

1. Wie kann man es machen, dass sich die schläger bewegen sollen und 2. wie schaffe ich es, dass der ball dann von den Schlägern abprallt.

Die Schlaeger und den Ball zeichnest du vermutlich aus einzelnen ASCII-Zeichen. Du solltest in deinem Programm einen Puffer (2-dimensionales char Array) definieren, in den du den Bildschirminhalt zeichnest. Die Schlaeger haben eine Eigenschaft, die es leicht macht mit Ihnen umzugehen. Ihre x-Position ist konstant.

Beim Ball wird die Sache schon schwieriger. Das "Abprallen" ist ein vielschichtiger Prozess. Zuerst musst du erkennen, ob der Ball eine Wand oder einen Schlaeger getroffen hat (Collision Detection). Dann musst du die Ballrichtung und Geschwindigkeit bestimmen. Dazu gibt es bei Pong nicht sehr viele Kriterien. Das Ur-Pong bestimmt die Richtung durch den Punkt an dem der Ball den Schlaeger trifft und den Einfallswinkel. Ist ersterer weiter vom Mittelpunkt entfernt, ist auch der Austrittswinkel flacher und die Geschwindigkeit niedriger. Man kann aber natuerlich auch die Schlaegergeschwindigkeit zum Zeitpunkt der Kollision beruecksichtigen.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.