Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

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

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
SpeeD
Novato
Novato
Reações: 0
Mensagens: 4

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

Mensagem por SpeeD » Seg Fev 20, 2017 4:19 pm

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.

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitante