ILLuZi[]n
Legacy Member
Lo,
Ik zit met een vervelend probleem , ik ben namelijk bezig met het programmere van het spel " Vier op een rij" , mijn spel is bijna af , maar ik zit met 1 lastig probleem , namelijk , het programma zou eigelijk moeten checken of er een winnaar is ( 4 op een rij diagonaal , verticaal , horizontaal ), en ik kom hier maar niet uit hoe ik dit eventueel zou kunnen oplossen.
Ik heb al geprobeerd dit op te lossen via pointers , maar met een weinig "werkend" resultaat. Als iemand een idee heeft hoe ik dit kan oplossen , laat het me weten
TY in advance ,
Dit is momenteel mijn code van het programma :
#include <stdio.h>
int tab[6][7];
int main(void)
{
int keuze;
while (keuze)
{
printf("*******************\n");
printf("** 1.Nieuw Spel **\n");
printf("** 2.Score **\n");
printf("*******************\n");
printf("Selecteer een optie : ");
scanf("%d", &keuze);
switch ( keuze )
{
case 1 :
printf("U hebt ervoor gekozen om een nieuw spel te starten\n\n");
spel(1);
break;
case 2 :
printf("U hebt ervoor gekozen om de Scores te zien\n\n"); break;
default :
printf("FOUTE KEUZE, Kies een getal uit de lijst\n\n"); break;
scanf("%*[^\n]%*c");
printf("\n");
printf("\n");
}
}
return 0;
}
int spel(void)
{
int rij=0, kolom;
while ( rij < 6 )
{
kolom = 0;
while ( kolom < 7 )
{
tab[rij][kolom] = 0;
printf("%d ", tab[rij][kolom]);
kolom++;
}
printf("\n");
rij++;
}
printf("\n");
steenwerpen(1);
return 0;
}
int steenwerpen(void)
{
int speler = 1;
int gegeven;
int rij;
int rdy = 0, rdy2 = 0;
int kolom;
do
{
if ( speler > 2 )
{
// Speler trgzetten van 2 naar 1
speler = 1;
}
else
{
printf("Speler %d is nu aan de beurt\n",speler);
printf("In welke kolom wilt u een steen werpen? : ");
scanf("%d", &gegeven);
while(gegeven<1 || gegeven>7)
{
printf("Dit is een foutieve waarde");
scanf("%*[^\n]%*c");
printf("\n");
printf("\n");
printf("Speler %d , geef een nogmaals een kolomnummer in\n",speler);
printf("In welke kolom wilt u een steen werpen? : ");
scanf("%d", &gegeven);
}
printf("\n");
rij = 5;
gegeven-=1;
rdy = 0;
// Bepaal de rij waarop het steentje moet rusten.
do
{
if ( tab[rij][gegeven]==0 )
{
tab[rij][gegeven]=speler;
rdy = 1;
}
else
{
rij--;
}
}while ( rdy == 0 );
// Hertekenen van de tabel
rij = 0;
while ( rij < 6 )
{
kolom = 0;
while ( kolom < 7 )
{
printf("%d ", tab[rij][kolom]);
kolom++;
}
printf("\n");
rij++;
}
// Ga naar volgende speler
/* controle(1); */
speler++;
}
}while ( rdy2 == 0 );
return 0;
}
int controle(void)
{
return 0;
}
Ik zit met een vervelend probleem , ik ben namelijk bezig met het programmere van het spel " Vier op een rij" , mijn spel is bijna af , maar ik zit met 1 lastig probleem , namelijk , het programma zou eigelijk moeten checken of er een winnaar is ( 4 op een rij diagonaal , verticaal , horizontaal ), en ik kom hier maar niet uit hoe ik dit eventueel zou kunnen oplossen.
Ik heb al geprobeerd dit op te lossen via pointers , maar met een weinig "werkend" resultaat. Als iemand een idee heeft hoe ik dit kan oplossen , laat het me weten

TY in advance ,
Dit is momenteel mijn code van het programma :
#include <stdio.h>
int tab[6][7];
int main(void)
{
int keuze;
while (keuze)
{
printf("*******************\n");
printf("** 1.Nieuw Spel **\n");
printf("** 2.Score **\n");
printf("*******************\n");
printf("Selecteer een optie : ");
scanf("%d", &keuze);
switch ( keuze )
{
case 1 :
printf("U hebt ervoor gekozen om een nieuw spel te starten\n\n");
spel(1);
break;
case 2 :
printf("U hebt ervoor gekozen om de Scores te zien\n\n"); break;
default :
printf("FOUTE KEUZE, Kies een getal uit de lijst\n\n"); break;
scanf("%*[^\n]%*c");
printf("\n");
printf("\n");
}
}
return 0;
}
int spel(void)
{
int rij=0, kolom;
while ( rij < 6 )
{
kolom = 0;
while ( kolom < 7 )
{
tab[rij][kolom] = 0;
printf("%d ", tab[rij][kolom]);
kolom++;
}
printf("\n");
rij++;
}
printf("\n");
steenwerpen(1);
return 0;
}
int steenwerpen(void)
{
int speler = 1;
int gegeven;
int rij;
int rdy = 0, rdy2 = 0;
int kolom;
do
{
if ( speler > 2 )
{
// Speler trgzetten van 2 naar 1
speler = 1;
}
else
{
printf("Speler %d is nu aan de beurt\n",speler);
printf("In welke kolom wilt u een steen werpen? : ");
scanf("%d", &gegeven);
while(gegeven<1 || gegeven>7)
{
printf("Dit is een foutieve waarde");
scanf("%*[^\n]%*c");
printf("\n");
printf("\n");
printf("Speler %d , geef een nogmaals een kolomnummer in\n",speler);
printf("In welke kolom wilt u een steen werpen? : ");
scanf("%d", &gegeven);
}
printf("\n");
rij = 5;
gegeven-=1;
rdy = 0;
// Bepaal de rij waarop het steentje moet rusten.
do
{
if ( tab[rij][gegeven]==0 )
{
tab[rij][gegeven]=speler;
rdy = 1;
}
else
{
rij--;
}
}while ( rdy == 0 );
// Hertekenen van de tabel
rij = 0;
while ( rij < 6 )
{
kolom = 0;
while ( kolom < 7 )
{
printf("%d ", tab[rij][kolom]);
kolom++;
}
printf("\n");
rij++;
}
// Ga naar volgende speler
/* controle(1); */
speler++;
}
}while ( rdy2 == 0 );
return 0;
}
int controle(void)
{
return 0;
}
, hartelijk bedankt trouwes
zonder indentatie kunde als buitenstaander niet zien wat er staat ze