java - Time delaying computer move tic tac toe -
i learning java/android, , have wrote simple tic tac toe program. works, game play feels weird. have 9 methods (1 each move) if 1 player game playertest call computermove method. move, have 2 second delay computer moves. when time delay computer move. program waits 2 seconds , displays move, , computers move @ same time.
public void displayforposition1(view view) { pieceplaced = false; // determine players piece if (pos1.equals("") && !gameover) { if (sound) { button 1 = (button) this.findviewbyid(r.id.position2); final mediaplayer mp = mediaplayer.create(main2activity.this, r.raw.button_sound); mp.start(); } if (movecounter % 2 == 0) { piece = player1; } else { piece = player2; } textview scoreview = (textview) findviewbyid(r.id.position1); scoreview.settext(piece); movecounter++; pos1 = piece; wintest(); } playertest(); }
there better ways this, can see of code, think should work.
the on-screen view not updated player's move until displayforposition1 method returns, , method not return until playertest method too. 2 second delay inside playertest method, , computer moves , it's move displayed. so, displayforposition1 not return, , new view not appear on screen, until after 2 second delay , computer's move.
one solution might execute playertest method on new thread. displayforposition1 method return immediately, , player's move displayed. meanwhile, second thread sleep 2 seconds , make computer's move.
new thread(new runnable() { @override public void run() { playertest(); }}).start(); my fear when playertest executed outside displayforposition1 method, computer's move not displayed until displayforposition1 next executed. both moves still appear @ same time. try it, , see happens.
Comments
Post a Comment