- #1
charmedbeauty
- 271
- 0
Homework Statement
when I am compiling my code I am getting a segmentation fault when entering in input but I don't know why?
it prints Segmentation fault: 11
Homework Equations
The Attempt at a Solution
This is my code I tried looking up what was causing it but couldn't find the reason please help
Code:
void flipifneeded(int array[][MAX_SIZE], int posx, int posy, int turn){
int x,y,i;
int deltax = 0;
int deltay = 0;
//down
while(turn == 1){
for(deltax = -1; deltax< 2; deltax++){
for(deltay = -1; deltay< 2; deltay++){
// deltax = deltax + posx;
// deltay = deltay + posy;
if(array[deltax + posx][deltay + posy] == BLACK){
x = deltax + posx;
y = deltay + posy;
for(i = 0; i< 10000; i++){ x += deltax;
y += deltay;
if((x<0 || x >= MAX_SIZE || y < 0 || y>= MAX_SIZE) ||
(array[x][y] == EMPTY)) {
break;
}
if(array[x][y] == BLACK){
while((array[x-=deltax][y-=deltay] == WHITE)){
array[x][y] = BLACK;
}
break;
}
}
}
}
}
}
while(turn == 2){
for(deltax = -1; deltax< 2; deltax++){
for(deltay = -1; deltay< 2; deltay++){
if(array[deltay + posy][deltax + posx] == WHITE){
x = deltax + posx;
y = deltay + posy;
for(i = 0; i< 10000; i++){
x += deltax;
y += deltay;
if((x<0 || x >= MAX_SIZE || y < 0 || y>= MAX_SIZE) ||
(array[x][y] == EMPTY)) {
break;
}
if(array[x][y] == BLACK){
while(array[x-=deltax][y-=deltay] = WHITE){
array[x][y] = BLACK;
}
break;
}
}
}
}
}
}
}
and this is the function I call it from
Code:
int playingame(int array[][MAX_SIZE],int turn){
// char input[2];
int posx=0;
int posy=0;
if((turn == 2)){
printf("it is Black's turn to move\n");
}
else{
printf("whites turn\n");
}
char letter=0;
int number=0;
printf("Enter your move: \n");
letter = getchar();
number = getchar();
getchar();
posy = letter -'a';
posx = number - '0'-1;
//int counti = i;
//int countj = j;
if((array[posx][posy] == CROSS && turn == 2)){
printf("error\n");
turn = 2;
}
else if((array[posx][posy] == CROSS && turn == 1)){
printf("error\n");
turn = 1;
}
if((array[posx][posy] == EMPTY && turn == 2 )){
array[posx][posy] = BLACK;
updateboard(array);
flipifneeded(array,posx, posy, turn);
turn = nexturn(array, turn);
}
else if((array[posx][posy] == EMPTY && turn == 1)){
array[posx][posy] = WHITE;
updateboard(array);
flipifneeded(array, posx, posy, turn);
turn = nexturn(array, turn);
}
return turn;
}
if someone could help me with this that would be great as I am in a bit of a hurry and can't proceed until I fix this issue.
THANKS.!