Pragrammierung von Schiffe versenken



  • hey leute,

    ich bin gerade dabei das Spiel Schiffe versenken zuprogrammieren komme aber gerade net mehr weiter kann mir vlt wer helfen???????

    #include <stdio.h>
    #include <stdlib.h>

    char feld[6][6], schiffe_eins[6][6], schiffe_zwei[6][6];

    void ausgabe(void);

    int main(int argc, char *argv[])

    {

    int x,y,i,treffer_eins,treffer_zwei;

    for(x=0; x<6; x++){
    for(y=0; y<6; y++){
    schiffe_eins[x][y]='S';
    }
    }

    for(x=0; x<6; x++){
    for(y=0; y<6; y++){
    schiffe_zwei[x][y]='S';
    }
    }

    for(x=0; x<6; x++){
    for(y=0; y<6; y++){
    feld[x][y]='w';
    }
    }

    printf("Spieler eins! Bitte platziere deine Schiffe");

    for(i=0; i<2; i++){
    printf("Spieler eins Bitte Platziere dein %i. Schiff\n", i);
    printf("\nBitte geben Sie eine x Kordinate ein!");
    scanf("%d", &x);
    printf("\nBitte geben Sie eine y Kordinate ein!");
    scanf("%d", &y);
    schiffe_eins[x][y]='S';
    }

    printf("Spieler zwei! Bitte platziere deine Schiffe\n");

    for(i=0; i<2; i++){
    printf("Spieler zwei Bitte Platziere dein %i. Schiff\n", i);
    printf("\nBitte geben Sie eine x Kordinate ein!");
    scanf("%d", &x);
    printf("\nBitte geben Sie eine y Kordinate ein!");
    scanf("%d", &y);
    schiffe_zwei[x][y]='S';
    }

    while(treffer_eins < 2 || treffer_zwei < 2){
    ausgabe();

    printf("\n");
    printf("\nBitte geben Sie eine x Kordinate ein!");
    scanf("%d", &x);
    printf("\nBitte geben Sie eine y Kordinate ein!");
    scanf("%d", &y);

    feld[x][y]='B';

    if(strcmp(schiffe_eins[x][y], 'S')){ hier bei der if hagt es
    treffer_eins++;
    }
    printf("\n\n");
    ausgabe();
    printf("\n\n");

    system("PAUSE");

    }
    return 0;
    }

    void ausgabe(void){
    int x,y;
    system("cls");
    printf(" 0 1 2 3 4 5");
    for(x=0; x<6; x++){
    printf("\n%d", x);
    for(y=0; y<6; y++){
    printf(" %c", feld[x][y]);
    }
    }
    }



  • Exodia schrieb:

    if(strcmp(schiffe_eins[x][y], 'S')) // hier bei der if hagt es
    

    Du willst ja auch keine Strings vergleichen sondern nur ein Zeichen:

    if (schiffe_eins[x][y] == 'S')
    


  • Danke schön



  • irgentwie komme ich denn noch nicht weiter ich möchte mein spielfeld ausgeben lassen irgentwie stehe ich gerade auf dem schlauch



  • Ich hab noch nicht so viel Erfahrung mit C und C++, aber wenn stdio.h über die Konsole läuft, könnest du einen Rahmen mit Feldern durch DOS-Sonderzeichen darstellen (Solche wie z.B. Nr. 185 im Link) und mit verschieden schattierten Flächen füllen. (176-178 im Link) Bei mir sind die Nummern anders, da mein C++ die Zahlen glaub ich im oktalen System mag, anders funktioniert es bei mir nicht. Aber mit ein wenig probieren und schauen, wo man auf der Liste ist, geht das schon. Einfach mal "\200" oder so etwas in die Ausgabe schreiben und schauen, was für ein Zeichen rauskommt.

    Link:
    http://www.lexitron.de/main.php?ci=3&detail=true&eintrag=1389



  • Exodia, bitte packe deinen Code zwischen [cpp] und [/cpp], dann wird er schön formatiert uns lässt sich deutlich besser lesen. Des Weiteren wäre eine Fehlerbeschreibung auch ratsam gewesen. Muss ja nicht sein, dass man den Fehler immer selbst suchen muss. 🙂



  • tut mir leid werde dran denken


Anmelden zum Antworten