Total de visitas: 730

JOGO DA VELHA

JOGO DA VELHA

<HTML>
<HEAD>
    <META NAME="AUTHOR" CONTENT="Francisco Alves da Assunção">
    <META NAME="DESCRIPTION" CONTENT="JOGO DA VELHA">
    <META NAME="KEY WORDS" CONTENT="JOGO, VELHA">

    <TITLE>Jogo da véia</TITLE>
</HEAD>

<!-- JOGO DA VELHA PERSONALIZADO -->

<SCRIPT LANGUAGE="javascript">

    var Jogando    = false;    // Identifica se há um jogo ocorrendo ou não.
    var Msg_Padrao = "Clique em 'Jogar agora' para iniciar"; // Mensagem padrão da barra de mensagens do jogo.
    var Vez        = "PC"; // O padrão é o computador começar o jogo.
    var BT_Jogados = 0; // Indica o número de botões jogados na pertida (0 a 9)

    function InformaVitoria(B1, B2, B3)    {
        // Esta função informa o ganhador, marca a sequência feita e atualiza o placar.
        CorPadrao   = "#E0E0E0";
        CorGanhador = "#C0C0C0";
        document.all[B1].style.background = CorGanhador;
        document.all[B2].style.background = CorGanhador;
        document.all[B3].style.background = CorGanhador;

        if (document.all[B1].value==QUADRO.ESCOLHA.value)    {
            alert("Você ganhou.");
            QUADRO.PONTOS_USU.value = (QUADRO.PONTOS_USU.value * 1) + 1;
        } else {
            alert("Computador ganhou.");
            QUADRO.PONTOS_PC.value = (QUADRO.PONTOS_PC.value * 1) + 1;
        }

        document.all[B1].style.background = CorPadrao;
        document.all[B2].style.background = CorPadrao;
        document.all[B3].style.background = CorPadrao;

        Ativacao_Quadro(false); // Desabilita o quadro para limpar os campos,
        Ativacao_Quadro(true);  // Habilita novamente o quadro para continuar o jogo.

        // Se o PC ganhou, ele começa o próximo jogo:
        if (Vez=="PC")
            PC_Jogar();
    }

    function VerResultado()    {
        /*
        Esta função verifica se há um ganhador após a jogada efetuada ou
        se terminou com empate.
        */

        // Verifica se há ganhador por colunas com X:
        for (coluna=1; coluna<4; coluna++)    {
            if ((document.all["L[1]C["+coluna+"]"].value==" X ")&&(document.all["L[2]C["+coluna+"]"].value==" X ")&&(document.all["L[3]C["+coluna+"]"].value==" X "))    {
                InformaVitoria("L[1]C["+coluna+"]", "L[2]C["+coluna+"]", "L[3]C["+coluna+"]");
                return true;
            }
        }
        // Verifica se há ganhador por colunas com O:
        for (coluna=1; coluna<4; coluna++)    {
            if ((document.all["L[1]C["+coluna+"]"].value==" O ")&&(document.all["L[2]C["+coluna+"]"].value==" O ")&&(document.all["L[3]C["+coluna+"]"].value==" O "))    {
                InformaVitoria("L[1]C["+coluna+"]", "L[2]C["+coluna+"]", "L[3]C["+coluna+"]");
                return true;
            }
        }
        // Verifica se há ganhador por linhas com X:
        for (linha=1; linha<4; linha++)    {
            if ((document.all["L["+linha+"]C[1]"].value==" X ")&&(document.all["L["+linha+"]C[2]"].value==" X ")&&(document.all["L["+linha+"]C[3]"].value==" X "))    {
                InformaVitoria("L["+linha+"]C[1]", "L["+linha+"]C[2]", "L["+linha+"]C[3]");
                return true;
            }
        }
        // Verifica se há ganhador por linhas com O:
        for (linha=1; linha<4; linha++)    {
            if ((document.all["L["+linha+"]C[1]"].value==" O ")&&(document.all["L["+linha+"]C[2]"].value==" O ")&&(document.all["L["+linha+"]C[3]"].value==" O "))    {
                InformaVitoria("L["+linha+"]C[1]", "L["+linha+"]C[2]", "L["+linha+"]C[3]");
                return true;
            }
        }
        // Verifica se há ganhador nas diagonais com X:
        if ((document.all["L[1]C[1]"].value==" X ")&&(document.all["L[2]C[2]"].value==" X ")&&(document.all["L[3]C[3]"].value==" X "))    {
            InformaVitoria("L[1]C[1]", "L[2]C[2]", "L[3]C[3]");
            return true;
        }
        if ((document.all["L[1]C[3]"].value==" X ")&&(document.all["L[2]C[2]"].value==" X ")&&(document.all["L[3]C[1]"].value==" X "))    {
            InformaVitoria("L[1]C[3]", "L[2]C[2]", "L[3]C[1]");
            return true;
        }
        // Verifica se há ganhador nas diagonais com O:
        if ((document.all["L[1]C[1]"].value==" O ")&&(document.all["L[2]C[2]"].value==" O ")&&(document.all["L[3]C[3]"].value==" O "))    {
            InformaVitoria("L[1]C[1]", "L[2]C[2]", "L[3]C[3]");
            return true;
        }
        if ((document.all["L[1]C[3]"].value==" O ")&&(document.all["L[2]C[2]"].value==" O ")&&(document.all["L[3]C[1]"].value==" O "))    {
            InformaVitoria("L[1]C[3]", "L[2]C[2]", "L[3]C[1]");
            return true;
        }

        if (BT_Jogados==9)    {
            if (Vez=="PC")    {
                Nome = "Você";
            } else {
                Nome = "Computador";
            }
            alert("Empate! "+Nome+" joga novamente.");
            Ativacao_Quadro(false);
            Ativacao_Quadro(true);
        }
    }

    function Ver_Chances(Jogador)    {
        /*
        Esta função verifica se há chance de algum jogador (PC ou você) fechar a partida, ou seja,
        completar uma sequência de 3 quadros com X ou O.
        Se Houver alguma chance, ela retorna o quadro que deve ser preenchido para fechar a partida.
        */

        if (Jogador=="PC")    {
            // Se quer ver as chances do computador...
            if (QUADRO.ESCOLHA.value==" X ")    {
                // Verifica a escolha do usuário e busca a outra.
                Op = " O ";
            } else {
                Op = " X ";
            }
        } else {
            // Se quer buscar as chances do usuário, verifica qual foi a sua escolha.
            Op = QUADRO.ESCOLHA.value;
        }

        var N = "....."; // Valor padrão para o quadro ainda não jogado.

        /*
        Primeiro, é preciso criar uma matriz que armazena quais são as posições possíveis
        do jogo para se fechar a partida.
        Existem 21 chances de ganhar fechar o jogo.
        */

        Chances = new Array();
        Chances[0]  = new Array("L[1]C[1]", "L[1]C[2]", "L[1]C[3]"); // X X . (linha 1)
        Chances[1]  = new Array("L[1]C[1]", "L[1]C[3]", "L[1]C[2]"); // X . X (linha 1)
        Chances[2]  = new Array("L[1]C[2]", "L[1]C[3]", "L[1]C[1]"); // . X X (linha 1)
        Chances[3]  = new Array("L[2]C[1]", "L[2]C[2]", "L[2]C[3]"); // X X . (linha 2)
        Chances[4]  = new Array("L[2]C[1]", "L[2]C[3]", "L[2]C[2]"); // X . X (linha 2)
        Chances[5]  = new Array("L[2]C[2]", "L[2]C[3]", "L[2]C[1]"); // . X X (linha 2)
        Chances[6]  = new Array("L[3]C[1]", "L[3]C[2]", "L[3]C[3]"); // X X . (linha 3)
        Chances[7]  = new Array("L[3]C[1]", "L[3]C[3]", "L[3]C[2]"); // X . X (linha 3)
        Chances[8]  = new Array("L[3]C[2]", "L[3]C[3]", "L[3]C[1]"); // . X X (linha 3)
        Chances[9]  = new Array("L[1]C[1]", "L[2]C[1]", "L[3]C[1]"); // X X . (coluna 1)
        Chances[10] = new Array("L[1]C[1]", "L[3]C[1]", "L[2]C[1]"); // X . X (coluna 1)
        Chances[11] = new Array("L[2]C[1]", "L[3]C[1]", "L[1]C[1]"); // . X X (coluna 1)
        Chances[12] = new Array("L[1]C[2]", "L[2]C[2]", "L[3]C[2]"); // X X . (coluna 2)
        Chances[13] = new Array("L[1]C[2]", "L[3]C[2]", "L[2]C[2]"); // X . X (coluna 2)
        Chances[14] = new Array("L[2]C[2]", "L[3]C[2]", "L[1]C[2]"); // . X X (coluna 2)
        Chances[15] = new Array("L[1]C[3]", "L[2]C[3]", "L[3]C[3]"); // X X . (coluna 3)
        Chances[16] = new Array("L[1]C[3]", "L[3]C[3]", "L[2]C[3]"); // X . X (coluna 3)
        Chances[17] = new Array("L[2]C[3]", "L[3]C[3]", "L[1]C[3]"); // . X X (coluna 3)
        Chances[18] = new Array("L[1]C[1]", "L[2]C[2]", "L[3]C[3]"); // X X . (diag. esq.)
        Chances[19] = new Array("L[1]C[1]", "L[3]C[3]", "L[2]C[2]"); // X . X (diag. esq.)
        Chances[20] = new Array("L[2]C[2]", "L[3]C[3]", "L[1]C[1]"); // . X X (diag. esq.)
        Chances[21] = new Array("L[1]C[3]", "L[2]C[2]", "L[3]C[1]"); // X X . (diag. dir.)
        Chances[22] = new Array("L[1]C[3]", "L[3]C[1]", "L[2]C[2]"); // X . X (diag. dir.)
        Chances[23] = new Array("L[2]C[2]", "L[3]C[1]", "L[1]C[3]"); // . X X (diag. dir.)

        var item = 0;
        while (item < 24)    {
            /*
            Agora verifica as possibilidades até encontrar alguma chance.
            */
            if ((document.all[Chances[item][0]].value==Op)&&(document.all[Chances[item][1]].value==Op)&&(document.all[Chances[item][2]].value==N))    {
                // Se encontrou, retorna o quadro a ser jogado para fechar a sequência.
                return Chances[item][2];
                // E para a busca por chances.
                break;
            }

            item++; // Verificar a próxima possibilidade.
        }
    }

    function Armacoes()    {
        /* Esta função busca locais onde é possível armar jogadas para fechar
        o jogo no próximo lance. */
        Jogadas = new Array();
        Jogadas[0]  = new Array("L[1]C[1]", "L[1]C[2]", "L[1]C[3]"); // . . X (linha 1)
        Jogadas[1]  = new Array("L[1]C[1]", "L[1]C[3]", "L[1]C[2]"); // . X . (linha 1)
        Jogadas[2]  = new Array("L[1]C[3]", "L[1]C[2]", "L[1]C[1]"); // X . . (linha 1)
        Jogadas[3]  = new Array("L[2]C[1]", "L[2]C[2]", "L[2]C[3]"); // . . X (linha 2)
        Jogadas[4]  = new Array("L[2]C[1]", "L[2]C[3]", "L[2]C[2]"); // . X . (linha 2)
        Jogadas[5]  = new Array("L[2]C[3]", "L[2]C[2]", "L[2]C[1]"); // X . . (linha 2)
        Jogadas[6]  = new Array("L[3]C[1]", "L[3]C[2]", "L[3]C[3]"); // . . X (linha 3)
        Jogadas[7]  = new Array("L[3]C[1]", "L[3]C[3]", "L[3]C[2]"); // . X . (linha 3)
        Jogadas[8]  = new Array("L[3]C[3]", "L[3]C[2]", "L[3]C[1]"); // X . . (linha 3)
        Jogadas[9]  = new Array("L[1]C[1]", "L[2]C[1]", "L[3]C[1]"); // . . X (coluna 1)
        Jogadas[10] = new Array("L[1]C[1]", "L[3]C[1]", "L[2]C[1]"); // . X . (coluna 1)
        Jogadas[11] = new Array("L[3]C[1]", "L[2]C[1]", "L[1]C[1]"); // X . . (coluna 1)
        Jogadas[12] = new Array("L[1]C[2]", "L[2]C[2]", "L[3]C[2]"); // . . X (coluna 2)
        Jogadas[13] = new Array("L[1]C[2]", "L[3]C[2]", "L[2]C[2]"); // . X . (coluna 2)
        Jogadas[14] = new Array("L[3]C[2]", "L[2]C[2]", "L[1]C[2]"); // X . . (coluna 2)
        Jogadas[15] = new Array("L[1]C[3]", "L[2]C[3]", "L[3]C[3]"); // . . X (coluna 3)
        Jogadas[16] = new Array("L[1]C[3]", "L[3]C[3]", "L[2]C[3]"); // . X . (coluna 3)
        Jogadas[17] = new Array("L[3]C[3]", "L[2]C[3]", "L[1]C[3]"); // X . . (coluna 3)
        Jogadas[18] = new Array("L[1]C[1]", "L[2]C[2]", "L[3]C[3]"); // . . X (diag. esq.)
        Jogadas[19] = new Array("L[1]C[1]", "L[3]C[3]", "L[2]C[2]"); // . X . (diag. esq.)
        Jogadas[20] = new Array("L[3]C[3]", "L[2]C[2]", "L[1]C[1]"); // X . . (diag. esq.)
        Jogadas[21] = new Array("L[1]C[3]", "L[2]C[2]", "L[3]C[1]"); // . . X (diag. dir.)
        Jogadas[22] = new Array("L[1]C[3]", "L[3]C[1]", "L[2]C[2]"); // . X . (diag. dir.)
        Jogadas[23] = new Array("L[3]C[1]", "L[2]C[2]", "L[1]C[3]"); // X . . (diag. dir.)

        // Com as jogadas armazenadas, basta buscar uma possibilidade.
        for (jog=0; jog<24; jog++)    {
            if ((document.all[Jogadas[jog][0]].value==".....")&&(document.all[Jogadas[jog][1]].value==".....")&&(document.all[Jogadas[jog][2]].value==Simb_PC))    {
                // Se encontrou uma jogada para armar, retorna a referência.
                return Jogadas[jog][0];
            }
        }
        return false;
    }

    function PC_Jogar()    {
        // Esta função faz o computador jogar contra o usuário.
        // Primeiro, verifica se o PC vai jogar com "X" ou com "O"
        if (QUADRO.ESCOLHA.value==" O ")    {
            Simb_PC  = " X ";
            Simb_USU = " O ";
        } else {
            Simb_PC  = " O ";
            Simb_USU = " X ";
        }

        if (QUADRO.NIVEL.value=="F")    {
            /*
            Se o usuário está jogando no nível fácil
            o computador simplesmente encontra o próximo quadro disponível
            e joga nele a sua escolha (X ou O), sem avaliar as chances de ganhar.
            */
            Jogou = false; // Atribui que ainda nao efetuou a jogada...
            for (linha=1; linha<4; linha++)    {
                for (coluna=1; coluna<4; coluna++)    {
                    if (Jogou)    {
                        // Se já jogou sai do loop.
                        break;
                    } else {
                        // Se não,
                        BOTAO = "L["+linha+"]C["+coluna+"]";
                        // Verifica se o botão já foi usado e joga nele a escolha.
                        if (document.all[BOTAO].value==".....")    {
                            document.all[BOTAO].value=Simb_PC;
                            Jogou = true;
                        }
                    }
                }
            }
        } else {
            // Se o usuário está jogando no nível difícil...

            // Procura as chances do usuário:
            var ChancesUSU = Ver_Chances("USU");
            // Procura as chances do compuatdor:
            var ChancesPC = Ver_Chances("PC");

            if (ChancesPC)    {
                    // Se o compuador puder fechar a partida, ele o faz:
                    document.all[ChancesPC].value=Simb_PC;
            } else {
                if (ChancesUSU)    {
                    // Se o usuário puder fechar a partida, o computador impedirá.
                    document.all[ChancesUSU].value=Simb_PC;
                } else {
                    /* Se não há chances de nenhum dos jogadores fecharem a partida,
                       o computador procura a melhor alternativa para jogar.
                    */
                    if (BT_Jogados==0)    {
                        // Se niguem jogou e o PC começa...
                        // Joga começando do canto.
                        document.all["L[1]C[1]"].value=Simb_PC;
                    } else if (BT_Jogados==1)    {
                        // Se o PC faz o segundo lance do jogo...
                        if ((document.all["L[1]C[1]"].value==Simb_USU)||(document.all["L[1]C[3]"].value==Simb_USU)||(document.all["L[3]C[1]"].value==Simb_USU)||(document.all["L[3]C[3]"].value==Simb_USU))    {
                            /* Se o Usuário começou jogando pelos cantos,
                                o PC joga no centro.
                            */
                            document.all["L[2]C[2]"].value=Simb_PC;
                        } else {
                            // Se não, o PC joga no canto.
                            document.all["L[1]C[1]"].value=Simb_PC;
                        }
                    } else if (BT_Jogados==2)    {
                        // Se o PC faz o terceiro lance do jogo...
                        // vai procurar jogar em outro canto.
                        if (document.all["L[1]C[1]"].value==".....") {
                            // Canto superior esquerdo.
                            document.all["L[1]C[1]"].value = Simb_PC;
                        } else if (document.all["L[1]C[3]"].value==".....")    {
                            // Canto superior direito.
                            document.all["L[1]C[3]"].value = Simb_PC;
                        } else if (document.all["L[3]C[1]"].value==".....")    {
                            // Canto inferior esquerdo.
                            document.all["L[3]C[1]"].value = Simb_PC;
                        } else if (document.all["L[3]C[3]"].value==".....")    {
                            // Canto inferior direito.
                            document.all["L[3]C[3]"].value = Simb_PC;
                        }
                    } else if (BT_Jogados==3) {
                        // Se o computador faz o quarto lance...
                        if (document.all["L[2]C[2]"].value==Simb_PC)    {
                            // Se o usuário começou jogando pelos cantos...
                            if ((document.all["L[2]C[1]"].value==".....")&&(document.all["L[2]C[3]"].value=="....."))    {
                                document.all["L[2]C[1]"].value=Simb_PC;
                            } else if ((document.all["L[1]C[2]"].value==".....")&&(document.all["L[3]C[2]"].value=="....."))    {
                                document.all["L[3]C[2]"].value=Simb_PC;
                            }
                        } else {
                            if (document.all["L[1]C[1]"].value==".....") {
                                // Canto superior esquerdo.
                                document.all["L[1]C[1]"].value = Simb_PC;
                            } else if (document.all["L[1]C[3]"].value==".....")    {
                                // Canto superior direito.
                                document.all["L[1]C[3]"].value = Simb_PC;
                            } else if (document.all["L[3]C[1]"].value==".....")    {
                                // Canto inferior esquerdo.
                                document.all["L[3]C[1]"].value = Simb_PC;
                            } else if (document.all["L[3]C[3]"].value==".....")    {
                                // Canto inferior direito.
                                document.all["L[3]C[3]"].value = Simb_PC;
                            }                            
                        }
                    } else {
                        /* Para mais de 3 jogadas sem chances de vitórias para nenhum dos
                        jogadores, o PC irá procurar os quadros vazios restantes para jogar.
                        */

                        ProximaJog = Armacoes(); // Busca uma jogada ideal.

                        if (ProximaJog)    {
                            // Se há uma jogada ideal, a realiza.
                            document.all[ProximaJog].value = Simb_PC;
                        } else {
                            // Se não há uma jogada ideal, busca um quadro vazio e joga.
                            // Cria o vetor com os endereços dos quadros
                            xQuadros = new Array("L[1]C[1]", "L[1]C[3]", "L[3]C[1]", "L[3]C[3]", "L[1]C[2]", "L[3]C[2]", "L[2]C[1]", "L[2]C[3]");
                            for (R=1; R<9; R++)    {
                                if (document.all[xQuadros[R]].value==".....")    {
                                    // Procura um quadro vazio...e joga.
                                    document.all[xQuadros[R]].value=Simb_PC;
                                    // Para a busca quando encontrar.
                                    break;
                                }
                            }
                        }
                    }
                }
            }
        }

        // Atualiza a soma dos botões jogados:
        BT_Jogados++;

        // Se jogada não resultar em vitória ou empate...
        if (!VerResultado())    {
            // Passa a vez de jogar para o usuário:
            Vez = "USU";
            QUADRO.MENSG.value = "Aguardando você jogar...";
        }
    }

    function Usuario_Joga(Linha, Coluna)    {
        // Esta função recebe a jogada do usuário e aplica-a ao jogo.
        if (Vez=="USU")    {
        // Se for a vez do usuário jogar...
            // Cria o botão,
            BOTAO = "L[" + Linha + "]C[" + Coluna + "]";
            // Verifica se este botão já foi usado no jogo.
            if (document.all[BOTAO].value!=".....")    {
                alert("Este quadro já foi usado, escolha outro!");
            } else {
                // Aplica a jogada ao botão:
                document.all[BOTAO].value = QUADRO.ESCOLHA.value;
                // Atualiza a soma dos botões já utilizados no jogo:
                BT_Jogados++;

                // Se jogada não resultar em vitoria ou empate...
                if (!VerResultado())    {
                    // Passa a vez de jogar para o computador:
                    Vez = "PC";
                    QUADRO.MENSG.value = "Aguardando o computador jogar...";
                    PC_Jogar();
                }
            }
        } else {
        // Se não o avisa:
            alert("Não é a sua vez! Aguarde o computador jogar!");
        }
    }

    function FocarBotao()    {
        // Seleciona o botão "Jogar agora" ao iniciar a página.
        QUADRO.BTJOGAR.focus();
    }

    function BTJOGAR_Click()    {
        /* Esta função verificar qual ação será tomada pelo botão 'Jogar agora':
           iniciar o jogo ou interrompê-lo
        */

        if (Jogando)    {
            // Se já está jogando, para o jogo.
            PararJogo();
        } else {
            // Se está parado, inicia o jogo.
            IniciarJogo();
        }
    }

    function Ativacao_Quadro(Acao)    {
        /* Esta função ativa ou desativa quadro habilitando/desabilitando os 9 botões de seleção X ou O.
            Acao = true  => habilita o quadro.
            Acao = false => desabilita o quadro.
        */
        for (linha=1; linha < 4; linha++)    {
        // Conta de 1 a 3 (linhas do quadro)
            for (coluna=1; coluna < 4; coluna++)    {
            // Conta de 1 a 3 (colunas do quadro)
                BOTAO = "L["+linha+"]C["+coluna+"]"; // Cria o nome do respectivo botão com a linha e coluna.
                // Faz a modificação da propriedade do botão:
                document.all[BOTAO].disabled = (!Acao);
                if (!Acao)    // Se for desativar, limpa os jogos efetuados no quadro.
                    document.all[BOTAO].value = ".....";
            }
        }

        // Ao desativar/ativar o quadro, a soma dos botões jogados é zerada:
        BT_Jogados = 0;
    }

    function Zera_Placar()    {
        // Esta função zera o placar do jogo.
        QUADRO.PONTOS_PC.value  = "0";
        QUADRO.PONTOS_USU.value = "0";
    }

    function IniciarJogo()    {
        /* Esta função dá inicio ao jogo,
           desabilitando a escolha da letra e alterando o botão 'Jogar agora' para
           'Parar jogo'
        */

        if (QUADRO.ESCOLHA.value=="")    {
            alert("Selecione sua opção (X ou O)!");
            QUADRO.ESCOLHA.focus();
        } else {
            Jogando = true; // Agora há um jogo em andamento.
            QUADRO.ESCOLHA.disabled    = true; // Não deixa escolher X ou O enquanto estiver jogando.
            QUADRO.NIVEL.disabled      = true; // Não deixa alterar o nível (difícil/fácil) enquanto joga.
            QUADRO.BTJOGAR.value       = "Parar jogo"; // Altera o botão 'Jogar agora' para 'Parar jogo'
            QUADRO.BTJOGAR.style.color = "#DD0000";        // Muda a cor do texto do botão 'Jogar agora' para vermelho.
            Ativacao_Quadro(true); // Habilita o quadro para jogar.

            /* Se for o PC que começa a jogar, chama a função PC_Jogar();
               se for o usuário que começa a jogar, aguarda o seu lance.
            */
            if (QUADRO.Q_COMECA.value=="PC")    {
                QUADRO.MENSG.value = "Aguardando o computador jogar...";
                Vez = "PC";
                PC_Jogar();
            } else {
                QUADRO.MENSG.value = "Aguardando você jogar...";
                Vez = "USU";
            }
        }
    }

    function PararJogo()    {
        /* Esta função interrompe um jogo em andamento sem somar ponto
           para as equipes e desfaz as alterações do quadro.
           O jogo será interrompido somente se o usuário confirmar a solicitação.
        */
        if (confirm("Deseja mesmo parar o jogo agora?"))    {  // Solicita confirmação para interromper o jogo.
            // Se a confirmação foi aceita...
            Jogando = false; // Agora o jogo foi interrompido.
            QUADRO.ESCOLHA.disabled    = false; // Libera a escolha de X ou O.
            QUADRO.NIVEL.disabled      = false; // Libera a escolha do nível do jogo.
            QUADRO.BTJOGAR.value       = "Jogar agora"; // Altera o botão 'Parar jogo' para 'Jogar agora'.
            QUADRO.BTJOGAR.style.color = "#0000DD";    // Muda a cor do texto do botão 'Jogar agora' para azul.
            QUADRO.MENSG.value         = Msg_Padrao; // Altera texto da barra de mensagens.
            Ativacao_Quadro(false)    // Desabilita o quadro de botões impedindo o jogo.
        }
    }

</SCRIPT>

<BODY BGCOLOR="#ffddb0" TEXT="#00000" ONLOAD="FocarBotao()">
    <CENTER>
    <FORM NAME="QUADRO">
    <TABLE BORDER="1" CELLSPACING="2" CELLPADDING="10">
        <TR>
            <TD COLSPAN="3" ALIGN="CENTER" BGCOLOR="#FFEED0">
                <FONT FACE="VERDANA" SIZE="2"><B>
                <MARQUEE>Tente ganhar este jogo da véia!</MARQUEE>

            </TD>
        </TR>
    <!-- PRIMEIRA LINHA DE BOTOES DO QUADRO -->
        <TR>
            <TD BGCOLOR="#FFDDB0" ALIGN="CENTER" VALIGN="MIDDLE" ONMOUSEOVER="this.bgColor='#D0D0D0'" ONMOUSEOUT="this.bgColor='#FFDDB0'">
                <INPUT TYPE="BUTTON" NAME="L[1]C[1]" DISABLED VALUE="....." STYLE="font-family: arial; font-size: 25 px; font-weight: bold; background: #E0E0E0" ONCLICK="Usuario_Joga(1,1)">
            </TD>
            <TD BGCOLOR="#FFDDB0" ALIGN="CENTER" VALIGN="MIDDLE" ONMOUSEOVER="this.bgColor='#D0D0D0'" ONMOUSEOUT="this.bgColor='#FFDDB0'">
                <INPUT TYPE="BUTTON" NAME="L[1]C[2]" DISABLED VALUE="....." STYLE="font-family: arial; font-size: 25 px; font-weight: bold; background: #E0E0E0" ONCLICK="Usuario_Joga(1,2)">

            </TD>
            <TD BGCOLOR="#FFDDB0" ALIGN="CENTER" VALIGN="MIDDLE" ONMOUSEOVER="this.bgColor='#D0D0D0'" ONMOUSEOUT="this.bgColor='#FFDDB0'">
                <INPUT TYPE="BUTTON" NAME="L[1]C[3]" DISABLED VALUE="....." STYLE="font-family: arial; font-size: 25 px; font-weight: bold; background: #E0E0E0" ONCLICK="Usuario_Joga(1,3)">
            </TD>
        </TR>
    <!-- SEGUNDA LINHA DE BOTOES DO QUADRO -->
        <TR>
            <TD BGCOLOR="#FFDDB0" ALIGN="CENTER" VALIGN="MIDDLE" ONMOUSEOVER="this.bgColor='#D0D0D0'" ONMOUSEOUT="this.bgColor='#FFDDB0'">
                <INPUT TYPE="BUTTON" NAME="L[2]C[1]" DISABLED VALUE="....." STYLE="font-family: arial; font-size: 25 px; font-weight: bold; background: #E0E0E0" ONCLICK="Usuario_Joga(2,1)">

            </TD>
            <TD BGCOLOR="#FFDDB0" ALIGN="CENTER" VALIGN="MIDDLE" ONMOUSEOVER="this.bgColor='#D0D0D0'" ONMOUSEOUT="this.bgColor='#FFDDB0'">
                <INPUT TYPE="BUTTON" NAME="L[2]C[2]" DISABLED VALUE="....." STYLE="font-family: arial; font-size: 25 px; font-weight: bold; background: #E0E0E0" ONCLICK="Usuario_Joga(2,2)">
            </TD>
            <TD BGCOLOR="#FFDDB0" ALIGN="CENTER" VALIGN="MIDDLE" ONMOUSEOVER="this.bgColor='#D0D0D0'" ONMOUSEOUT="this.bgColor='#FFDDB0'">
                <INPUT TYPE="BUTTON" NAME="L[2]C[3]" DISABLED VALUE="....." STYLE="font-family: arial; font-size: 25 px; font-weight: bold; background: #E0E0E0" ONCLICK="Usuario_Joga(2,3)">
            </TD>
        </TR>
    <!-- TERCEIRA LINHA DE BOTOES DO QUADRO -->

        <TR>
            <TD BGCOLOR="#FFDDB0" ALIGN="CENTER" VALIGN="MIDDLE" ONMOUSEOVER="this.bgColor='#D0D0D0'" ONMOUSEOUT="this.bgColor='#FFDDB0'">
                <INPUT TYPE="BUTTON" NAME="L[3]C[1]" DISABLED VALUE="....." STYLE="font-family: arial; font-size: 25 px; font-weight: bold; background: #E0E0E0" ONCLICK="Usuario_Joga(3,1)">
            </TD>
            <TD BGCOLOR="#FFDDB0" ALIGN="CENTER" VALIGN="MIDDLE" ONMOUSEOVER="this.bgColor='#D0D0D0'" ONMOUSEOUT="this.bgColor='#FFDDB0'">
                <INPUT TYPE="BUTTON" NAME="L[3]C[2]" DISABLED VALUE="....." STYLE="font-family: arial; font-size: 25 px; font-weight: bold; background: #E0E0E0" ONCLICK="Usuario_Joga(3,2)">
            </TD>
            <TD BGCOLOR="#FFDDB0" ALIGN="CENTER" VALIGN="MIDDLE" ONMOUSEOVER="this.bgColor='#D0D0D0'" ONMOUSEOUT="this.bgColor='#FFDDB0'">
                <INPUT TYPE="BUTTON" NAME="L[3]C[3]" DISABLED VALUE="....." STYLE="font-family: arial; font-size: 25 px; font-weight: bold; background: #E0E0E0" ONCLICK="Usuario_Joga(3,3)">

            </TD>
        </TR>
    <!-- CONFIGURAÇÕES DO JOGO -->
        <TR>
            <TD COLSPAN="3" ALIGN="CENTER">
                <SELECT NAME="ESCOLHA" SIZE="2" STYLE="font-family: verdana; font-size: 8 pt;">
                    <OPTION VALUE=" O " SELECTED>Jogar com 'O'</OPTION>
                    <OPTION VALUE=" X ">Jogar com 'X'</OPTION>

                </SELECT>
                <SELECT NAME="Q_COMECA" SIZE="2" STYLE="font-family: verdana; font-size: 8 pt;">
                    <OPTION VALUE="PC" SELECTED>Computador começa</OPTION>
                    <OPTION VALUE="USU">Você começa</OPTION>
                </SELECT>
                <BR>
                <SELECT NAME="NIVEL" SIZE="1" STYLE="font-family: verdana; font-size: 8 pt;">
                    <OPTION VALUE="D" SELECTED>Jogar no nível difícil</OPTION>

                    <OPTION VALUE="F">Jogar no nível fácil</OPTION>
                </SELECT>
                <P>
                <INPUT TYPE="BUTTON" VALUE="Jogar agora" NAME="BTJOGAR" STYLE="font-family: verdana; font-size: 8 pt; font-weight: bold; color: #0000DD; background: #d0d0d0;" ONCLICK="BTJOGAR_Click()" ONMOUSEOVER="this.style.background='#f0f0f0'" ONMOUSEOUT="this.style.background='#d0d0d0'">
                <INPUT TYPE="BUTTON" VALUE="Zerar placar" NAME="ZERAR" STYLE="font-family: verdana; font-size: 8 pt; font-weight: bold; color: #0000DD; background: #d0d0d0;" ONCLICK="Zera_Placar()" ONMOUSEOVER="this.style.background='#f0f0f0'" ONMOUSEOUT="this.style.background='#d0d0d0'">
            </TD>
        </TR>
    <!-- PLACAR DO JOGO -->

        <TR>
            <TD ALIGN="CENTER" COLSPAN="3">
                <FONT FACE="VERDANA" SIZE="1"><B>
                Pontos<BR></B>
                Computador:<BR>
                <INPUT TYPE="TEXT" NAME="PONTOS_PC" READONLY SIZE="10" VALUE="0" STYLE="font-family: verdana; font-size: 8 pt;"><BR>
                Você:<BR>

                <INPUT TYPE="TEXT" NAME="PONTOS_USU" READONLY SIZE="10" VALUE="0" STYLE="font-family: verdana; font-size: 8 pt;"><BR>
            </TD>
        </TR>
    <!-- BARRA DE MENSAGENS DO JOGO -->
        <TR>
            <TD BGCOLOR="#000000" ALIGN="CENTER" COLSPAN="3">
                <INPUT TYPE="TEXT" NAME="MENSG" READONLY SIZE="40" VALUE="Clique em 'Jogar agora' para iniciar" STYLE="font-family: verdana; font-size: 8 pt; background: #000000; color: #ffffff"><BR>
            </TD>
        </TR>

    <!-- CREDITOS -->
        <TR>
            <TD ALIGN="CENTER" COLSPAN="3">
                <FONT FACE="ARIAL" SIZE="1" COLOR="#000000">
                Francisco Alves da Assunção<BR>
                <A HREF="Edivan: w1.edivan@hotmail.com">w1.edivan@hotmail.com</A>
            
            </TD>
        </TR>
    </TABLE>
    </FORM>
</BODY>
</HTML>