Hallo Leute, folgende Funktion soll eigentlich auswerten, ob beim Tic Tac Toe einer der beiden Spieler gewonnen hat. Ich bekomme jedoch die Exception:
Was mache ich falsch?
Kennt vielleicht jemand einen geeigneteren Algorithums, den ich verwenden könnte?
Code:
conflicting type for 'player_win'
C++:
#include <stdio.h>
#include <stdbool.h>>
#include <stdlib.h>
#ifdef __unix__
#define clrscr() printf("\x1B[2J")
#elif __BORLANDC__ && __MSDOS__
#include <conio.h>
#elif __WIN32__ || _MSC_VER
#define clrscr() system("cls")
#else
#define clrscr() printf("clrscr() - Fehler!!\n")
#endif
#define X 'X'
#define O 'O'
#define LEER ' '
#define GAME_OVER 0
#define A_WINNER 1
#define CONTINUE 2
/* Inhalt des 3 x 3 großen Felds */
char TicTacToe[3][3] = { {' ',' ',' '},
{' ',' ',' '},
{' ',' ',' '} };
/* Spieler1 hat das Zeichen 'X'. */
char Spieler1 = X;
.
.
.
int auswertung(void) {
if(player_win(Spieler1)){
printf("Spieler1 hat gewonnen\n");
return A_WINNER;
}else if(player_win(Spieler2)){
printf("Spieler1 hat gewonnen\n");
return CONTINUE;
}
}
bool check_line(char player,int xstart,int ystart,int xadd,int yadd)
{
unsigned counter=0;
const int fieldsize=3;
while(xstart<fieldsize && ystart<fieldsize)
{
if(TicTacToe[xstart][ystart]==player) counter++;
xstart+=xadd;
ystart+=yadd;
}
return counter==fieldsize;
}
bool player_win(char player)
{
const int fieldsize=3;
for(int i=0;i<fieldsize;i++)
{
if(check_line(player,i,0,0,1)||check_line(player,0,i,1,0)||check_line(player,0,0,1,1)||check_line(player,fieldsize-1,0,-1,1))
{
return true;
}
}
return false;
}
Kennt vielleicht jemand einen geeigneteren Algorithums, den ich verwenden könnte?
Zuletzt bearbeitet: