Hey Leute ich wollte Mal nachfragen ob der C++-Quellcode so klar geht und ob ich das alles richtig gemacht hab.. :3
-
Danke für jede Hilfe
-
SwiftBrother schrieb:
ich habe diesen Code im Internet gefunden und wollte fragen, ob der auch in C++ zu verwenden geht?
Probier's doch einfach mal.
Code aus dem Internet zu nehmen ist übrigens etwas anderes als Programmieren.
-
Ich hab den komplett selber geschrieben... Sonst wärs n bisl zu einfach
-
Musste nicht viel geändert werden damit das als C++ durchgeht...
#include <conio.h> hat gefehlt.
Sleep mit grossem S
getch => _getch
Die Signaturen der Thread-Funktionen waren falsch (void* Parameter).
In den Thread-Funktionen haben return Statements gefehlt.
Die Funktion Farbe war als int deklariert, gibt aber nix zurück.
#define _CRT_SECURE_NO_WARNINGS wegen scanf (für MSVC, bei anderen Compilern nicht nötig)Wobei ich der Meinung bin dass einige dieser Fehler auch in C Fehler sind.
So lässt sich das bei mir jetzt auf jeden Fall compilieren und ausführen:
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <windows.h> #include <stdlib.h> #include <time.h> #include <conio.h> int alt[100][2]; int Feld[100][100];//y/x int Position[2];// int i, x, y; char c; int error = 0; int anz = 1; int z, w; int Richtung = 3; void Farbe(int Text, int Hintergrund) { int Colour = Text + 16 * Hintergrund; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), Colour); } DWORD WINAPI Thread(void*) { while (error == 0) { c = toupper(_getch()); if (Richtung == 2 || Richtung == 4) if (c == 'W') Richtung = 1; if (Richtung == 1 || Richtung == 3) if (c == 'A') Richtung = 2; if (Richtung == 2 || Richtung == 4) if (c == 'S') Richtung = 3; if (Richtung == 1 || Richtung == 3) if (c == 'D') Richtung = 4; } return 0; } DWORD WINAPI Achtung(void*) { srand(time(0)); int a, b; int en = 0; int sume = 0; int sume1 = 0; int Felder[400][1][2]; int mi = 0; int j, k; while (error == 0) { mi = 0; if (Feld[Position[1]][Position[0]] == 1 || Feld[Position[1]][Position[0]] == 4) { error = 1; system("cls"); return 0; } if (Feld[Position[1]][Position[0]] == 3) { Feld[Position[1]][Position[0]] = 0; do { sume = Position[1] * 10 + Position[0] * 100; mi = 0; for (j = 1; j<19; j++) { for (k = 1; k<19; k++) { sume1 = j * 10 + k * 100; if (Feld[j][k] != 1 && Feld[j][k] != 4 && sume1 != sume) { Felder[mi][0][0] = j; Felder[mi][0][1] = k; mi++; } } } a = Felder[(rand() % mi + 0)][0][0]; b = Felder[(rand() % mi + 0)][0][1]; sume = Position[1] * 10 + Position[0] * 100; sume1 = a * 10 + b * 100; if (Feld[a][b] != 1 && Feld[a][b] != 4 && sume1 != sume) { Feld[a][b] = 3; break; } } while (1); Farbe(rand() % 14 + 1, 0); anz++; } } return 0; } int snake(int Schwierigkeit) { printf("Spielregeln:\n\n"); printf("Sie steuern ein Schlange($) mit den Tasten w,a,s,d. Das Spielziel besteht darin, so viele Kisten(X) wie moeglich zu sammeln ohne gegen sich selbst oder gegen die Wand zu stossen. Viel Spass!\n\n"); system("pause"); system("cls"); // Spieler steht auf den Koordinaten x=1, y=1 Position[0] = 1;//x Position[1] = 1;//y error = 0; anz = 1; Richtung = 3; for (i = 0; i<100; i++) { alt[i][0] = 100; alt[i][1] = 100; } //alles auf Null stellen for (y = 0; y<100; y++) { for (x = 0; x<100; x++) { Feld[y][x] = 0; } } //Wand erstellen for (i = 0; i<20; i++) { Feld[0][i] = 1;//obere Wand wird gesetzt Feld[i][0] = 1;//linke Wand wird gesetzt Feld[19][i] = 1;//untere Wand wird gesetzt Feld[i][19] = 1;//rechte Wand wird gesetzt } Feld[(rand() % 16 + 2)][(rand() % 16 + 2)] = 3;//X soll auf den Koordinaten y=3,x=3 stehen //Spielfeldmalen+Bewegung CreateThread(NULL, 0, Thread, NULL, 0, NULL); CreateThread(NULL, 0, Achtung, NULL, 0, NULL); while (error == 0) { for (y = 0; y<20; y++)//Spielfeld wird gezeichnet { for (x = 0; x<20; x++) { if (Position[0] == x && Position[1] == y) printf("$"); else { if (Feld[y][x] == 0) printf(" "); if (Feld[y][x] == 1) printf("#"); if (Feld[y][x] == 3) printf("X"); if (Feld[y][x] == 4) printf("$"); } } printf("\n"); } printf("Level: %d\n", anz); if (Richtung == 1) Position[1]--; if (Richtung == 2) Position[0]--; if (Richtung == 3) Position[1]++; if (Richtung == 4) Position[0]++; Sleep(Schwierigkeit); system("cls"); for (i = 1; i<100; i++) { if (Feld[alt[i][1]][alt[i][0]] == 4) Feld[alt[i][1]][alt[i][0]] = 0; } for (i = 100; i>0; i--) { alt[i][0] = alt[i - 1][0]; alt[i][1] = alt[i - 1][1]; } alt[0][0] = Position[0]; alt[0][1] = Position[1]; for (i = 1; i<anz; i++)//mit 1 geht's { Feld[alt[i][1]][alt[i][0]] = 4; } } printf("Sie sind bis in das %d.Level gekommen!\n", anz); printf("Game over!\n\n"); system("PAUSE"); error = 0; return 0; } int main(int argc, char *argv[]) { int Wahl = 0; Farbe(14, 0); do { printf("Willkommen im Spiel Schlange!\n\n"); printf("Was fuer ein Spiel wollen Sie beginnen:\n"); printf("<1>Sehr leichtes Spiel\n"); printf("<2>Leichtes Spiel\n"); printf("<3>Mittelschweres Spiel\n"); printf("<4>Schweres Spiel\n"); printf("<5>Sehr schweres Spiel\n"); printf("\nIhre Wahl: "); scanf("%d", &Wahl); getchar(); system("cls"); } while (Wahl>5 || Wahl<1); do { system("cls"); Farbe(14, 0); switch (Wahl) { case 1: snake(300); break; case 2: snake(200); break; case 3: snake(100); break; case 4: snake(50); break; case 5: snake(25); break; case 6: return 0; break; } Farbe(14, 0); system("cls"); do { printf("Willkommen im Spiel Schlange!\n\n"); printf("Was fuer ein Spiel wollen Sie beginnen:\n"); printf("<1>Sehr leichtes Spiel\n"); printf("<2>Leichtes Spiel\n"); printf("<3>Mittelschweres Spiel\n"); printf("<4>Schweres Spiel\n"); printf("<5>Sehr schweres Spiel\n"); printf("<6>Ich habe genug von der komischen Schlange\n"); printf("\nIhre Wahl: "); scanf("%d", &Wahl); getchar(); system("cls"); } while (Wahl>6 || Wahl<1); } while (1); system("PAUSE"); return 0; }
-
hustbaer schrieb:
Musste nicht viel geändert werden damit das als C++ durchgeht...
Dankeeeeee
Womit compilierst du das Programm denn bitte?
Und nochmals ein riesen Dankeschön ;3
-Swifti
-
Mit einem Compiler?
-
hustbaer schrieb:
Mit einem Compiler?
Ja logischerweise schon xD
Aber ich meinte mit welchem Compiler...
Fehler in der Ausdrucksweise :c-Swifti
-
Nein, ich hab dich schon verstanden.
Ich denke nur, das kannst du dir selbst ergoogeln.
-
SwiftBrother schrieb:
Aber ich meinte mit welchem Compiler...
hustbaer schrieb:
Ich denke nur, das kannst du dir selbst ergoogeln.
Wie kann man googeln, welchen Compiler hustbaer benutzt?
-
Ah, ja, korrekt. Genaugenommen hast du Recht. Schlampig ausgedrückt ich mich habe.
Allerdings muss er es nichtmal googeln, ich hab's ja in meiner Antwort angedeutet (MSVC).
Was er sich aber ergoogeln kann, ist welche Compiler man so unter Windows üblicherweise verwendet.
-
hustbaer schrieb:
Ah, ja, korrekt. Genaugenommen hast du Recht. Schlampig ausgedrückt ich mich habe.
Allerdings muss er es nichtmal googeln, ich hab's ja in meiner Antwort angedeutet (MSVC).
Was er sich aber ergoogeln kann, ist welche Compiler man so unter Windows üblicherweise verwendet.
lol
-
Mechanics schrieb:
SwiftBrother schrieb:
Aber ich meinte mit welchem Compiler...
hustbaer schrieb:
Ich denke nur, das kannst du dir selbst ergoogeln.
Wie kann man googeln, welchen Compiler hustbaer benutzt?
So natürlich: http://lmgtfy.com/?q=Welchen+Compiler+benutzt+hustbaer%3F