SS 1997 - Fachhochschule Köln
Fachbereich Nachrichtentechnik
Matthias Groß

Praktikum Datenverarbeitung - 5. Aufgabe

Abgabetermin für alle: Montag 14.04. 1997 im DV-Labor

Bei dieser Programmieraufgabe sollen Sie die Anwendung von Strukturen (struct ...) bei einem kleinen grafischen Spiel üben. Alle auftretenden Probleme lassen sich mit dem bisherigen Stoff aus der Vorlesung lösen. Bitte lesen Sie sich die Aufgabenstellung und die Zusatzinformationen mit Beispielen genau durch und fangen Sie erst an zu programmieren, wenn Sie das Problem vollständig durchschaut und geplant haben. Gerade hier ist eine vorherige Planung notwendig, um ein schönes Programm zu erhalten. Testen Sie die Grafikfunktionen vorher mit den Beispielen bei Borland-C.

Schreiben Sie ein Programm, welches eine vom Benutzer einzugebende Anzahl von Bällen über den Bildschirm laufen lässt. Hierbei sollen an den Rändern und zwischen den Kugeln (mit einem einzugebenden Radius) totalelastische Stöße ausgeführt werden.

Speichern Sie alle Angaben zu einer Kugel in einer Struktur ähnlich zu der folgenden

typedef
  struct sKugel
  {
    double  x, y;     /* Die aktuellen Koordinaten */
    double  vx, vy;   /* Die aktuellen Geschwindigkeiten */
    int     Farbe;    /* Die Farbe der Kugel */
    double  r;        /* Der Radius der Kugel */
  } Kugel;

Alle Kugeln sollten in einem Vektor der Form Kugel Feld[MAXKUGELN]; abgespeichert werden.

Schreiben Sie dann das Programm, welches die Kugeln zufällig auf dem Bildschirm positioniert und Anfangsgeschwindigkeiten zuordnet (Einheit Pixel/Schleifendurchlauf). Prüfen Sie bei jedem Zeittakt, ob Kugeln an den Rand stoßen oder zusammentreffen und lassen Sie die Kugeln entsprechend reagieren.

Wenn dieses erste Programm funktioniert, nehmen Sie die folgende Erweiterung vor:

Es darf n rechteckige Bereiche geben, in denen eine Kugel um bx % beschleunigt oder abgebremst wird. Schreiben Sie Ihr Programm so strukturiert, dass Sie diese Ergänzung einfach und übersichtlich anbringen können.

Zur Vorstellung des Programms bringen Sie bitte beide Programmversionen mit.

Grafik unter Borland-C:

Unter BC existiert eine komplette Unterstützung für die Darstellung von Grafik unter DOS. Dieses integrierte Programmpaket heißt BGI (Borland Graphics Interface) und wird durch das Einbinden der Header-Datei <graphics.h> für C-Programme aktiviert. Das eigentliche Zeichnen erfolgt nach dem Öffnen des Grafikbildschirms. Nach Beendigung des Zeichnens muss man wieder zurück in den Textmodus schalten, um mit Textausgaben fortzusetzen. Das folgende kurze Beispielprogramm soll die Handhabung erläutern:

#include <graphics.h>

...

/* Routine zum Initialisieren des Grafikbildschirms */

int setgraph(void)          /* Initialisiert das Grafiksystem */
{
  int graphdriver = DETECT, graphmode, errorcode;
  initgraph(&graphdriver, &graphmode, "c:\\run\\tcpp\\bgi")
                             /* Der Pfad muss auf die BGI-Treiber zeigen (*.bgi) */
  errorcode = graphresult();
  return (errorcode != grOK);
}

/* Anwendung im Hauptprogramm */

...

if (setgraph())
{
  printf("Dieses Programm benoetigt EGA oder VGA-Grafik. Programm wird nun beendet!");
  exit(1);                   /* Fehlermeldung 1 an DOS weitergeben */
}

maxx = getmaxx();            /* Maximale Grafikkoordinaten holen. */ 
maxy = getmaxy();
setcolor(WHITE);             /* Mal-Farbe setzen */
line(0, 0, maxx, maxy);      /* Diagonale ueber den Bildschirm ziehen */
putpixel(5,5,WHITE);         /* Einen weissen Punkt bei 5,5 setzen */

...                          /* Weiter zeichnen */

getch();                     /* Auf eine Taste warten */
closegraph();                /* Grafiksystem beenden */

FH-Köln zurück zurück vor WWW-Wais whois mail Hilfe


Seite zuletzt aktualisiert am 23.03.1997 von Matthias Groß.
Diese Seite ist Teil des WWW-Dienstes der FH-Köln, Germany.