Página 1 de 1

Dúvida(Problema) na execução de script

Enviado: Seg Fev 20, 2017 4:19 pm
por SpeeD
Meu script deveria fazer o seguinte:
1. somar +1 na variavel score_player;
2. soltar o som sound_win;
3. mostrar na tela a mensagem você ganhou;
4.reiniciar a matriz(botar 0 nos campos);
5. reiniciar o jogo(para retirar todos os sprites
Eis os scripts relevantes para se entender.
scr_field_init<-script
var i,j;
for(i=0;i<=2;i+=1){
    for(j=0;j<=2;j+=1){
        field[i,j]=0;
    }
}

scr_game_init<-script
score_player = 0;
score_computer = 0;
score_draw = 0;
scr_field_init();

scr_check_end<-script
if(scr_check_player_win()){
    score_player +=1;
    sound_play(snd_win);
    show_message("You Win");
    scr_field_init();
    game_restart();
}

if(scr_check_draw()){
    score_draw +=1;
    sound_play(snd_draw);
    show_message("it'is a draw");
     scr_field_init();
    game_restart();
}

if(scr_check_computer_win()){
    score_computer +=1;
    sound_play(snd_lose);
    show_message("you lose");
   scr_field_init();
    game_restart();
}
/////////////////////////////////////////////////////////////////
Porém(e eu sei que nesse código o 4 termo que escrevi no início está investido com o 5) não acontece como desejado, na logica deveria ocorrer, porém conseguir ajeitar e é ai que começa minha dúvida, consertei fazendo o seguinte.
if(scr_check_player_win()){
    score_player +=1;
    sound_play(snd_win);
    show_message("You Win");
.....//codigo de condiçao para verificaçao da maquina
....//empate
if(scr_check_player_win()||scr_check_computer_wing()||scr_check_draw()){
      scr_field_init();
}
if(scr_check_player_wing()||scr_check_computer_wing()||scr_check_draw()){
      game_restart();
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Eis minha resolução ai em cima, mas fiquei em dúvida. Por quê no 1 tudo junto num if não deu certo e no 2 com scr_field_init() em um if separado e game_restart() tambem separado deu certo? Seguindo a logica(pelo menos a minha porem sou novato) não vejo diferença só ordem de execução, e é a mesma coisa porem separados. Se alguem conseguir me responder e explicar ficarei muito agradecido, já estou a dias tentando entender isso e não conseguir ainda. 
obs: é o jogo tic tac toe, do game maker aprenddicer.