Some corrections in play_move
This commit is contained in:
parent
dc5b803e03
commit
f4fb6f5137
1 changed files with 15 additions and 17 deletions
26
src/model.c
26
src/model.c
|
@ -216,25 +216,21 @@ void set_tictactoe_winner(s_tictactoe *p_ttt){
|
||||||
}
|
}
|
||||||
|
|
||||||
e_status play_move(s_utictactoe *p_uttt, s_move *p_move) {
|
e_status play_move(s_utictactoe *p_uttt, s_move *p_move) {
|
||||||
if (is_move_valid(p_uttt, p_move) == YES) {
|
if (is_move_valid(p_uttt, p_move) == NO) {
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
p_uttt->outer_tictactoe->content[p_move->outer_position] = p_move->player;
|
p_uttt->outer_tictactoe->content[p_move->outer_position] = p_move->player;
|
||||||
list_element_s_move *value = (list_element_s_move*)
|
list_element_s_move *value = (list_element_s_move*)
|
||||||
malloc(sizeof(list_element_s_move));
|
malloc(sizeof(list_element_s_move));
|
||||||
|
|
||||||
|
// we need to create a s_move in memory...
|
||||||
|
// and affect p_move
|
||||||
|
value->last_move = create_empty_move();
|
||||||
value->last_move = p_move;
|
value->last_move = p_move;
|
||||||
if ( p_uttt->history == NULL ){
|
value->next = ( p_uttt->history == NULL ) ? NULL : p_uttt->history;
|
||||||
value->next = NULL;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
value->next = p_uttt->history;
|
|
||||||
}
|
|
||||||
p_uttt->history = value;
|
p_uttt->history = value;
|
||||||
}
|
|
||||||
else {
|
if ( p_uttt->inception_level != 1 ) {
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
if ( p_uttt->inception_level == 1 ) {
|
|
||||||
p_uttt->outer_tictactoe->content[p_move->outer_position] = p_move->player;
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
p_uttt->inner_tictactoes[p_move->outer_position]->content[p_move->inner_position] = p_move->player;
|
p_uttt->inner_tictactoes[p_move->outer_position]->content[p_move->inner_position] = p_move->player;
|
||||||
|
@ -245,6 +241,8 @@ e_status play_move(s_utictactoe *p_uttt, s_move *p_move) {
|
||||||
p_uttt->outer_tictactoe->content[p_move->outer_position] = p_move->player;
|
p_uttt->outer_tictactoe->content[p_move->outer_position] = p_move->player;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
p_uttt->outer_tictactoe->content[p_move->outer_position] = p_move->player;
|
||||||
set_tictactoe_winner(p_uttt->outer_tictactoe);
|
set_tictactoe_winner(p_uttt->outer_tictactoe);
|
||||||
return YES;
|
return YES;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue