Ich habe ein Programm programmiert, bei welchem kugeln zufällig oben in einem Viereck erscheinen und senkrecht runterfallen. Diese Kugeln muss man dann mit einer Platte auffangen, welche sich auf einer bestimmten Höhe jedeglich horizontal, also nach links und rechts bewegen kann. Fängt man die Kugel nicht, so hat man verloren, sollte man sie aber fangen, so bekommt man einen Punkt dazu. Alle 20 Punkte steigt das Level und das Spiel wird schneller. Ich habe hier das Programm, jedoch läuft es nicht durch den Compiler und hat mit Sicherheit viele Fehler. Ich bin noch Anfänger und benötige Hilfe. Was muss man alles ändern und tun dass es funktioniert. Übrigens erscheint die Main Funktion erst sehr spät, da ich sehr viele Funktionen zunächst gemacht habe.
C:
int plattex; // Startposition der Platte in der Mitte
int plattey=19
int kugelx
int kugely
#define breite 90
#define laenge 25
char Spielfeld[laenge][breite];
void Spielfeldgraphik() {
for (int i = 0; i < laenge; i++) {
for (int j = 0; j < breite; j++) {
if (i == 0 || i == laenge - 1 || j == 0 || j == breite - 1) {
Spielfeld[j] = '|'; // Ränder
} else {
void bestandteile() {
for (int i = 0; i < laenge; i++) {
for (int j = 0; j < breite; j++) {
if (i == laenge - 2) {
printf("^"); // Boden
} else if (i == kugely && j == kugelx) {
printf("O"); // Kugel
}else if (i == bombey && j == bombex) {
printf("Q"); // Kugel
} else if (i == plattey && j ==plattex) {
printf("="); // Platte
} else {
printf(" "); // Leerzeichen für den Rest des Spielfelds
}
printf("\n");
}
}
}
}
}
// Ausgabe des Spielfeldes
for (int i = 0; i < laenge; i++) {
for (int j = 0; j < breite; j++) {
printf("%c", Spielfeld[j]);
}
printf("\n");
}
}
int Punkte;
void platte_bewegen(char richtung) {
switch (richtung) {
case 'a':
plattex--;
break;
case 'd':
plattex++;
break;
default:
break;
}
}
int Auffangen() {
// Überprüfe ob die Platte die Kugel aufgefangen hat
if (plattex == kugelx && 19 == kugely) {
return 1;
}
return 0;
}
int vorbei() {
// Überprüfe am Boden?
if (kugely == laenge - 2) {
return 1;
}
return 0;
}
int Auffangen_Bombe() {
if (plattex == bombex && 19 == bombey) {
return 1;
}
return 0;
}
kugel_level1(){
while(1) {
int kugelx = rand() % 90;
int kugely = 0;
while(Auffangen()==0){
kugely++;
sleep(250);
}
if (Auffangen()==1) break;
} sleep(1000);
}
kugel_level2(){
while(1) {
int kugelx = rand() % 90;
int kugely = 0;
while(Auffangen()==0){
kugely++;
sleep(225);
}
if (Auffangen()==1) break;
} sleep(500);
}
kugel_level3(){
while(1) {
int kugelx = rand() % 90;
int kugely = 0;
while(Auffangen()==0){
kugely++;
sleep(200);
}
if (Auffangen()==1) break;
} sleep(250);
}
kugel_level4(){
while(1) {
int kugelx = rand() % 90;
int kugely = 0;
while(Auffangen()==0){
kugely++;
sleep(175);
}
if (Auffangen()==1) break;
} sleep(225);
}
kugel_level5(){
while(1) {
int kugelx = rand() % 90;
int kugely = 0;
while(Auffangen()==0){
kugely++;
sleep(150);
}
if (Auffangen()==1) break;
} sleep(200);
}
kugel_level6(){
while(1) {
int kugelx = rand() % 90;
int kugely = 0;
while(Auffangen()==0){
kugely++;
sleep(100);
}
if (Auffangen()==1) break;
} sleep(100);
}
kugel_level7(){
while(1) {
int kugelx = rand() % 90;
int kugely = 0;
while(Auffangen()==0){
kugely++;
sleep(80);
}
if (Auffangen()==1) break;
} sleep(80);
}
bombe(){
while(1) {
int bombex = rand() % 90;
int bombey = 0;
while(1){
bombey++;
sleep(150);
}
if (Auffangen()=1) break;
} sleep(10000);
}
char Spiel;
int main()
{
while(1){
printf("wollen Sie spielen, a: ja oder b: nein?");
scanf("%c", &Spiel);
if( Spiel == 'a') {printf("Sie müssen die Kugeln O einsammeln, sonst haben Sie verloren. Vorsicht! Beim Einsammeln der Bomben Q ist game over. Alle 20 Punkte wird das Level höher und das Spiel somit schneller, bis Level7.");
else break;
while(1){
Spielfeldgraphik();
plattey = 19;
plattex=breite/2;
if (Punkte < 20){
printf ("level1\n")
kugel_level1();
bombe();
}
else if (Punkte >= 20 && <40){
printf ("level2\n")
kugel_level2();
bombe();
}
else if (Punkte >= 40 && <60){
printf ("level3\n")
kugel_level3();
bombe();
}
else if (Punkte >=60 && <80){
printf ("level4\n")
kugel_level4();
bombe();
}
else if (Punkte >=80 && <100){
printf ("level5\n")
kugel_level5();
bombe();
}
else if (Punkte >=100 && <120){
printf ("level6\n")
kugel_level6();
bombe();
}
else if (Punkte >=120 && <140){
printf ("level7\n")
kugel_level7();
bombe();
}
char input = _getch();
platte_bewegen(input);
if (Auffangen()==1) Punkte++;
printf(Punkte: "%d", Punkte);
if (vorbei()==1) break;
if (Auffangen_Bombe()==1) break;
}
printf("\nGame over, Punkte: &d", Punkte);
}}
Zuletzt bearbeitet von einem Moderator: