Kleines C spielchen

AgentKST

Grünschnabel
Hallo Jungz,

Ich hab mich gerade fast tot gegoogled,
also ich brauche ein kleines C spielchen
für die Berufsschule, weiß jemand wo ich
sowas her kriegen kann? evtl. halt sowas wie
snake oder 4 gewinnt oder so nur halt sehr einfach
gehalten...

greetz,
AgentKST
 
hallo

soll das eine Konsolenanwendung werden?
dann würde ich das an deiner Stelle mit den Funktionen

GetStdHandle()
SetConsoleTextAttribute()
SetConsoleCursorPosition()

versuchen

aurux
 
Zineus könntest du vielleicht den Quelltext veröffentlichen, ich versuch gerade selber 4gewinnt umzusetzen, aber ich weiss nicht genau wie ich abfragen soll ob unter dem eingeworfenen Chip bereits andere sind und dass er dann einen weiter oben bleibt.
 
Hi ...
@bernard
Kannst du da nicht einfach ein 2-dimensionales BOOL-Array benutzen, welches das "Spielfeld" darstellt ?
Das sollte doch recht einfach sein dann ...

Gruß
Shai
 
@shaihai

Hmm, also ich hab dafür ein 2dimensionales Integer Array verwendet, welches mit 0 initialisiert wird, weiterhin hab ich das spiel für 2 menschliche Spieler konzipiert. in die vom ersten Spieler belegten Zellen schreibe ich 1 rein und in die des zweiten 2, eine andere Funktion überprüft jetzt ob nebeneinander, übereinander oder diagonal 4 in einer Reihe sind und gibt gegebenenfalls eine Siegermeldung aus. (die funktion muss ich noch entwickeln)

Aber ich habe das Problem, dass ich nicht weiß wie ich innerhalb einer Whileschleife nach dem meine vorher festgelegte und mit 0 initialisierte Variable int a nach zweimaliger inkrementierung also a++; a++; den Wert 2 hat, den neuen Wert wieder zurück an den Anfang der schleife gebe, damit die Spielchips auch übereinander liegen und sich nicht "überschreiben".

Ich bin mal so frei und poste meinen Abschnitt mit Whileschleife zur besseren Einsicht:
Code:
  int spieler,gegner;
  gotoxy (30,1);
  cout<<"Welcher Spieler faengt an? 1oder2? Spieler:  ";
  cin>>spieler;
  
  if (spieler == 1)
  gegner=2;
  
  if (spieler == 2)
  gegner=1;
  
  char t;
  
  //Anfang_while
  while (t!='n')
  {
  int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0;
  gotoxy (30,2);
  cout<<"Spieler "<<spieler<<" waehle einen Schacht von 1-8: ";
  int s;
  cin>>s;
  
  switch (s)
     {
     case 1: feld[0][18-a]=1;   gotoxy(s+1,19-a); cout<<"o"; a++; break;
     case 2: feld[1][18-b]=1;   gotoxy(s+1,19-b); cout<<"o"; b++; break;
     case 3: feld[2][18-c]=1;   gotoxy(s+1,19-c); cout<<"o"; c++; break;
     case 4: feld[3][18-d]=1;   gotoxy(s+1,19-d); cout<<"o"; d++; break;
     case 5: feld[4][18-e]=1;   gotoxy(s+1,19-e); cout<<"o"; e++; break;
     case 6: feld[5][18-f]=1;   gotoxy(s+1,19-f); cout<<"o"; f++; break;
     case 7: feld[6][18-g]=1;   gotoxy(s+1,19-g); cout<<"o"; g++; break;
     case 8: feld[7][18-h]=1;   gotoxy(s+1,19-h); cout<<"o"; h++; break;
     }
  
  gotoxy (30,3);
  cout<<"Spieler "<<gegner<<" waehle einen Schacht von 1-8: ";
  int k;
  cin>>k;
  
  switch (k)
     {
     case 1: feld[0][18-a]=2;   gotoxy(k+1,19-a); cout<<"x"; a++; break;
     case 2: feld[1][18-b]=2;   gotoxy(k+1,19-b); cout<<"x"; b++; break;
     case 3: feld[2][18-c]=2;   gotoxy(k+1,19-c); cout<<"x"; c++; break;
     case 4: feld[3][18-d]=2;   gotoxy(k+1,19-d); cout<<"x"; d++; break;
     case 5: feld[4][18-e]=2;   gotoxy(k+1,19-e); cout<<"x"; e++; break;
     case 6: feld[5][18-f]=2;   gotoxy(k+1,19-f); cout<<"x"; f++; break;
     case 7: feld[6][18-g]=2;   gotoxy(k+1,19-g); cout<<"x"; g++; break;
     case 8: feld[7][18-h]=2;   gotoxy(k+1,19-h); cout<<"x"; h++; break;
     }
  
  gotoxy (30,4);
  cout<<"Naechste Runde? j/n?";
  cin>>t;
  
  }
  //Ende_While
 
Zuletzt bearbeitet:
Definiere deine Variablen a,b,c usw. VOR der While-Schleife ... ansonsten werden sie bei jedem neuen Zug wieder auf 0 gesetzt ...

Gruß
Shai
 
Zurück