Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Theoretische Informatik » Schiffe versenken in C » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Zum Ende der Seite springen Schiffe versenken in C
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Lars
unregistriert
Schiffe versenken in C Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
Ich bin's mal wieder, diesmal müssen wir in C Schiffe versenken programmieren und haben dafür eine Vorgabe bekommen. Bloß das Zählen, ob alle Schiffe versenkt wurden klappt net, ich verstehe nicht wieso. Es geht bis zu einer bestimmten Zahl, aber für alle klappts nicht unglücklich .

Meine Ideen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
#include <stdio.h>

void anzeigen(char feld[][10])
{
	for (int i = 0; i != 10; ++i)
{
  for (int j = 0; j != 10; ++j)
    printf("%c", feld[i][j]);
  printf("\n");
}
}

int main() 
{
  char spielfeld[10][10]  = {
  {'s','s','.','s','.','.','s','s','s','s'},
  {'.','.','.','s','.','.','.','.','.','.'},
  {'s','.','.','s','.','s','s','s','.','s'},
  {'s','.','.','.','.','.','.','.','.','s'},
  {'s','.','.','.','.','.','.','.','.','.'},
  {'s','.','.','.','.','s','.','.','.','s'},
  {'.','.','.','.','.','s','.','.','.','s'},
  {'s','s','.','.','.','.','.','.','.','s'},
  {'.','.','.','.','.','.','.','.','.','.'},
  {'.','.','.','.','.','s','s','s','s','s'}
  };
 
  int schritte = 0;
  int y=0;

  while(y!=30) 
  {  
    anzeigen(spielfeld);
    int xko = 0; 
    int yko = 0;
    printf("\nFalls du beenden willst, gib [-1] ein");
    printf("\nGib die x-Koordinate (Spalte) ein, die du beschiessen willst (1-10): ");
    scanf("%i", &xko);
    printf("\nGib die y-Koordinate (Zeile) ein, die du beschiessen willst (1-10): ");
    scanf("%i", &yko);
    if(xko==-1 || yko==-1)break;
    schritte++;

    if(spielfeld[yko-1][xko-1] == 's') 
    { 
      printf("\nGetroffen! \n");
      spielfeld[yko-1][xko-1] = 'x';
    }
    else printf("\nnicht Getroffen. \n");
	

	for (int i = 0; i != 10; ++i)
	{
	 int x=0;
 	 for (int j = 0; j != 10; ++j)
 	 if(spielfeld[i][j]=='x')x++;
 	 if(x==30)
	  {
	  anzeigen(spielfeld);
	  y=x;
	  continue;
	  }
 	}
  
       
  }
 weiter: printf("Das waren %i Runden.\n", schritte);
 return 0;
}
11.12.2015 21:16
Lars
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Sorry, ich bin dämlich, ich hab das x falsch deklariert, nun funktioniert alles. Und ich saß 1h und hab den Fehler gesucht... Forum Kloppe
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
#include <stdio.h>

void anzeigen(char feld[][10])
{
	for (int i = 0; i != 10; ++i)
{
  for (int j = 0; j != 10; ++j)
    printf("%c", feld[i][j]);
  printf("\n");
}
}

int main() 
{
  char spielfeld[10][10]  = {
  {'s','s','.','s','.','.','s','s','s','s'},
  {'.','.','.','s','.','.','.','.','.','.'},
  {'s','.','.','s','.','s','s','s','.','s'},
  {'s','.','.','.','.','.','.','.','.','s'},
  {'s','.','.','.','.','.','.','.','.','.'},
  {'s','.','.','.','.','s','.','.','.','s'},
  {'.','.','.','.','.','s','.','.','.','s'},
  {'s','s','.','.','.','.','.','.','.','s'},
  {'.','.','.','.','.','.','.','.','.','.'},
  {'.','.','.','.','.','s','s','s','s','s'}
  };
 
  int schritte = 0;
  int y=0;

  while(y!=30) 
  {  
    anzeigen(spielfeld);
    int xko = 0; 
    int yko = 0;
    printf("\nFalls du beenden willst, gib [-1] ein");
    printf("\nGib die x-Koordinate (Spalte) ein, die du beschiessen willst (1-10): ");
    scanf("%i", &xko);
    printf("\nGib die y-Koordinate (Zeile) ein, die du beschiessen willst (1-10): ");
    scanf("%i", &yko);
    if(xko==-1 || yko==-1)break;
    schritte++;

    if(spielfeld[yko-1][xko-1] == 's') 
    { 
      printf("\nGetroffen! \n");
      spielfeld[yko-1][xko-1] = 'x';
    }
    else printf("\nnicht Getroffen. \n");
	
	int x=0;
	for (int s = 0; s != 10; ++s)
	{
 	 for (int d = 0; d != 10; ++d)
 	 if(spielfeld[s][d]=='x')x++;
 	 if(x==30)
	  {
	  anzeigen(spielfeld);
	  y=x;
	  continue;
	  }
 	}
  
       
  }
11.12.2015 21:36
Baumstruktur | Brettstruktur
Gehe zu:
Informatiker Board » Themengebiete » Theoretische Informatik » Schiffe versenken in C