!correctFirstHit)){
11 var loseTurn =true;
12 var gameOver =true;
13 }else if (!nineBallSank &&(cueBallSank ||
.!correctFirstHit)){
14 var loseTurn =true;
15 var scratch =true;
16 }else if (!nineBallSank &&!cueBallSank &&
.correctFirstHit &&!ballSank){
17 var loseTurn =true;
18 }else if (!nineBallSank &&!cueBallSank &&
.correctFirstHit &&ballSank){
19 //вы хорошо поработали
20 }
21 if (gameOver){
22 if (loseTurn){
23 if (game.myTurn){
24 iWin =false;
25 }else {
26 iWin =true;
27 }
28 }else {
29 if (game.myTurn){
30 iWin =true;
31 }else {
32 iWin =false;
33 }
34 }
35 popup.gotoAndStop("game over");
36 if (iWin){
37 popup.msg.text ="You win!";
38 }else {
39 popup.msg.text ="You lose!";
40 }
41 }else if (loseTurn){
42 game.myTurn =game.myTurn ?false :true;
43 if (scratch){
44 game.ball1.x =(game.middle+game.left)/2;
45 game.ball1.y =(game.top+game.bottom)/2;
46 game.ball1.clip._x =game.ball1.x;
47 game.ball1.clip._y =game.ball1.y;
48 game.ball1.clip._visible =true;
49 }
50 }
51 moveVariables();
52 if (game.myTurn &&!gameOver &&!scratch){
53 initializeStick();
54 }else if (game.myTurn &&scratch){
55 ballInHand("full");
56 }
57 }
Первое, что мы делаем в moveDone(), это вызов функции roundPositions(). (Смотрите вставку на следующей странице, в которой описывается, зачем нужна эта функция.) Затем мы устанавливаем player1stopped или player2stopped в «yes» на сервере. Помните, что эта переменная представляет состояние экрана. Когда она установлена в «yes», это означает, что оба экрана синхронизированы и остановлены. После инициализации нескольких переменных, используемых функцией, мы вступаем в большой условный блок. Мы проходим через серию условий (строки 8-20) для определения результата удара, который был только что сделан