{"id":50343,"date":"2025-09-13T18:49:56","date_gmt":"2025-09-13T18:49:56","guid":{"rendered":"https:\/\/skdojo.com\/?p=50343"},"modified":"2025-09-13T19:51:08","modified_gmt":"2025-09-13T19:51:08","slug":"juego-del-ahorcado","status":"publish","type":"post","link":"https:\/\/skdojo.com\/es\/juego-del-ahorcado\/","title":{"rendered":"Desaf\u00eda a tus amigos en el Ahorcado Online"},"content":{"rendered":"\n<p class=\"translation-block\">Nessa p\u00e1gina voc\u00ea pode desafiar seus amigos no <strong>Jogo da Forca<\/strong> com esse gerador online ou aceitar o desafio de algum amigo que te enviou o link. Eu nem preciso explicar como jogar certo? Basta tentar adivinhar a palavra que seu amigo te enviou chutando letras antes de ser enforcado. Crie tamb\u00e9m seu link e desafie seus amigos! <\/p>\n\n\n\n    <style>\n        \/* Se\u00e7\u00e3o de Cria\u00e7\u00e3o do Jogo *\/\n        #setup {\n            display: flex;\n            flex-direction: column;\n            gap: 15px;\n        }\n\n        #palavraInput {\n            padding: 12px;\n            font-size: 1.1em;\n            border: 2px solid #ddd;\n            border-radius: 8px;\n            transition: border-color 0.3s;\n        }\n        \n        #palavraInput:focus {\n            border-color: #1a73e8;\n            outline: none;\n        }\n\n        #gerarLinkBtn {\n            padding: 12px 20px;\n            font-size: 1.1em;\n            background-color: #1a73e8;\n            color: white;\n            border: none;\n            border-radius: 8px;\n            cursor: pointer;\n            transition: background-color 0.3s;\n        }\n\n        #gerarLinkBtn:hover {\n            background-color: #155ab6;\n        }\n\n        #linkGerado {\n            margin-top: 20px;\n            background-color: #e8f0fe;\n            padding: 15px;\n            border-radius: 8px;\n            word-wrap: break-word;\n        }\n        \n        #linkGerado input {\n            width: 100%;\n            border: 1px solid #ccc;\n            padding: 8px;\n            border-radius: 4px;\n            box-sizing: border-box;\n            font-size: 1em;\n        }\n        \n        #linkGerado small {\n            color: #555;\n            display: block;\n            margin-top: 5px;\n        }\n\n        \/* Se\u00e7\u00e3o do Jogo *\/\n        #jogo {\n            display: none; \/* Come\u00e7a escondido *\/\n        }\n\n        #forca-container {\n            width: 200px;\n            height: 250px;\n            margin: 0 auto;\n            position: relative;\n        }\n\n        .forca-parte {\n            background-color: #555;\n            position: absolute;\n            display: none; \/* Todas as partes come\u00e7am escondidas *\/\n        }\n\n        #forca-base { display: block; width: 150px; height: 5px; bottom: 0; left: 25px; }\n        #forca-haste { display: block; width: 5px; height: 220px; bottom: 0; left: 50px; }\n        #forca-topo { display: block; width: 100px; height: 5px; top: 0; left: 50px; }\n        #forca-corda { display: block; width: 5px; height: 40px; top: 0; left: 150px; }\n\n        #boneco-cabeca { width: 40px; height: 40px; border: 4px solid #333; border-radius: 50%; top: 40px; left: 132px; }\n        #boneco-corpo { width: 4px; height: 70px; top: 84px; left: 150px; }\n        #boneco-braco-e { width: 40px; height: 4px; top: 100px; left: 110px; transform: rotate(30deg); }\n        #boneco-braco-d { width: 40px; height: 4px; top: 100px; left: 150px; transform: rotate(-30deg); }\n        #boneco-perna-e { width: 40px; height: 4px; top: 165px; left: 110px; transform: rotate(-45deg); }\n        #boneco-perna-d { width: 40px; height: 4px; top: 165px; left: 150px; transform: rotate(45deg); }\n\n\n        #palavra-container {\n            margin: 20px 0;\n            font-size: 2em;\n            letter-spacing: 2px;\n            text-transform: uppercase;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n        }\n\n        #teclado-container {\n            display: flex;\n            flex-wrap: wrap;\n            gap: 8px;\n            justify-content: center;\n        }\n\n        .letra {\n            width: 50px;\n            height: 50px;\n            font-weight: 700;\n            font-size: 20px;\n            border: 1px solid #ccc;\n            border-radius: 6px;\n            cursor: pointer;\n            background-color: #1b5c9e;\n            transition: background-color 0.3s, color 0.3s;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n        }\n\n        .letra:hover {\n            background-color: #007c82;\n        }\n\n        .letra.correta {\n            background-color: #28a745;\n            color: white;\n            border-color: #28a745;\n        }\n\n        .letra.incorreta {\n            background-color: #dc3545;\n            color: white;\n            border-color: #dc3545;\n        }\n\n        .letra:disabled {\n            cursor: not-allowed;\n            opacity: 0.7;\n        }\n\n        \/* Mensagem Final *\/\n        #mensagemFinal {\n            margin-top: 20px;\n            font-size: 1.5em;\n            font-weight: bold;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n        }\n        #mensagemFinal .vitoria { color: #28a745; \n\n}\n        #mensagemFinal .derrota { color: #dc3545; }\n        #reiniciarBtn {\n             margin-top: 15px;\n             padding: 10px 18px;\n             font-size: 1em;\n             background-color: #007bff;\n             color: white;\n             border: none;\n             border-radius: 6px;\n             cursor: pointer;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n        }\n.centralizar { display: flex;\n  align-items: center;\n  justify-content: center;}\n<\/style>\n\n\n\n <div class=\"container google-no-ad\">\n        <div id=\"setup\">\n            <h2>Crie seu Jogo da Forca<\/h2>\n            <input id=\"palavraInput\" placeholder=\"Digite a palavra secreta aqui\">\n            <button id=\"gerarLinkBtn\">Gerar Link do Jogo<\/button>\n            <div id=\"linkGerado\" style=\"display: none;\">\n                <p class=\"translation-block\">Link gerado! Copie e envie para um amigo:<\/p>\n                <input type=\"text\" id=\"urlOutput\" readonly>\n                <small>O jogo come\u00e7ar\u00e1 quando algu\u00e9m abrir este link.<\/small>\n            <\/div>\n        <\/div>\n\n        <div id=\"jogo\">\n            <h2>Jogo da Forca<\/h2>\n            <div id=\"forca-container\">\n                <div id=\"forca-base\" class=\"forca-parte\"><\/div>\n                <div id=\"forca-haste\" class=\"forca-parte\"><\/div>\n                <div id=\"forca-topo\" class=\"forca-parte\"><\/div>\n                <div id=\"forca-corda\" class=\"forca-parte\"><\/div>\n                <div id=\"boneco-cabeca\" class=\"forca-parte\"><\/div>\n                <div id=\"boneco-corpo\" class=\"forca-parte\"><\/div>\n                <div id=\"boneco-braco-e\" class=\"forca-parte\"><\/div>\n                <div id=\"boneco-braco-d\" class=\"forca-parte\"><\/div>\n                <div id=\"boneco-perna-e\" class=\"forca-parte\"><\/div>\n                <div id=\"boneco-perna-d\" class=\"forca-parte\"><\/div>\n            <\/div>\n            <div id=\"palavra-container\"><\/div>\n            <div id=\"teclado-container\"><\/div>\n            <div id=\"mensagemFinal\"><\/div>\n             <div class=\"centralizar\">\n<button id=\"reiniciarBtn\" style=\"display: none;\">Jogar Novamente<\/button>\n<\/div>\n        <\/div>\n    <\/div>  \n\n\n\n <script>\n        \/\/ Elementos da p\u00e1gina\n        const setupDiv = document.getElementById('setup');\n        const jogoDiv = document.getElementById('jogo');\n        const palavraInput = document.getElementById('palavraInput');\n        const gerarLinkBtn = document.getElementById('gerarLinkBtn');\n        const linkGeradoDiv = document.getElementById('linkGerado');\n        const urlOutput = document.getElementById('urlOutput');\n\n        const palavraContainer = document.getElementById('palavra-container');\n        const tecladoContainer = document.getElementById('teclado-container');\n        const mensagemFinalDiv = document.getElementById('mensagemFinal');\n        const reiniciarBtn = document.getElementById('reiniciarBtn');\n        \n        const partesBoneco = [\n            'boneco-cabeca', 'boneco-corpo', 'boneco-braco-e', 'boneco-braco-d', 'boneco-perna-e', 'boneco-perna-d'\n        ];\n\n        let palavraSecreta = '';\n        let letrasDescobertas = [];\n        let erros = 0;\n        const maxErros = 6;\n\n        \/\/ Fun\u00e7\u00e3o para normalizar strings (remover acentos)\n        function normalizarString(str) {\n            return str.normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\n        }\n\n        \/\/ L\u00d3GICA DE INICIALIZA\u00c7\u00c3O DA P\u00c1GINA\n        window.onload = function() {\n            const params = new URLSearchParams(window.location.search);\n            const jogoData = params.get('jogo');\n\n            if (jogoData) {\n                \/\/ Se existe o par\u00e2metro 'jogo', decodifica e inicia o jogo\n                try {\n                    palavraSecreta = atob(jogoData).toUpperCase();\n                    setupDiv.style.display = 'none';\n                    jogoDiv.style.display = 'block';\n                    iniciarJogo();\n                } catch (e) {\n                    \/\/ Se a decodifica\u00e7\u00e3o falhar, mostra erro e volta para a tela de setup\n                    alert('Link inv\u00e1lido!');\n                    window.location.href = window.location.pathname;\n                }\n            } else {\n                \/\/ Se n\u00e3o, mostra a tela de setup\n                setupDiv.style.display = 'flex';\n                jogoDiv.style.display = 'none';\n            }\n        };\n\n        \/\/ L\u00d3GICA DA TELA DE SETUP\n        gerarLinkBtn.addEventListener('click', () => {\n            const palavra = palavraInput.value.trim();\n            if (palavra.length < 3) {\n                alert('Por favor, digite uma palavra com pelo menos 3 letras.');\n                return;\n            }\n\n            \/\/ Codifica a palavra em Base64\n            const palavraCodificada = btoa(palavra);\n            \n            \/\/ Gera a URL completa\n            const url = `${window.location.href.split('?')[0]}?jogo=${palavraCodificada}`;\n            \n            urlOutput.value = url;\n            linkGeradoDiv.style.display = 'block';\n        });\n\n        \/\/ L\u00d3GICA DO JOGO\n        function iniciarJogo() {\n    erros = 0;\n    letrasDescobertas = [];\n\n    for (let i = 0; i < palavraSecreta.length; i++) {\n        if (palavraSecreta[i] === ' ') {\n            \/\/ coloca h\u00edfen no lugar de espa\u00e7o\n            letrasDescobertas[i] = '-';\n        } else {\n            letrasDescobertas[i] = '_';\n        }\n    }\n    \n    \/\/ Limpa o estado anterior\n    palavraContainer.innerHTML = '';\n    tecladoContainer.innerHTML = '';\n    mensagemFinalDiv.innerHTML = '';\n    reiniciarBtn.style.display = 'none';\n    document.querySelectorAll('.forca-parte').forEach(parte => {\n        if (!parte.id.startsWith('forca-')) {\n           parte.style.display = 'none';\n        }\n    });\n\n    desenharPalavra();\n    criarTeclado();\n}\n\n        function desenharPalavra() {\n            palavraContainer.innerHTML = letrasDescobertas.join(' ');\n        }\n\n        function criarTeclado() {\n            const alfabeto = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n            for (const letra of alfabeto) {\n                const botao = document.createElement('button');\n                botao.className = 'letra';\n                botao.textContent = letra;\n                botao.onclick = () => checarLetra(letra, botao);\n                tecladoContainer.appendChild(botao);\n            }\n        }\n\n        function checarLetra(letra, botao) {\n            botao.disabled = true;\n            const palavraNormalizada = normalizarString(palavraSecreta);\n            \n            if (palavraNormalizada.includes(letra)) {\n                botao.classList.add('correta');\n                for (let i = 0; i < palavraSecreta.length; i++) {\n                    if (normalizarString(palavraSecreta[i]) === letra) {\n                        letrasDescobertas[i] = palavraSecreta[i];\n                    }\n                }\n                desenharPalavra();\n            } else {\n                botao.classList.add('incorreta');\n                erros++;\n                desenharForca();\n            }\n\n            verificarFimDeJogo();\n        }\n\n\n\n        function desenharForca() {\n            if (erros > 0 && erros <= partesBoneco.length) {\n                const parte = document.getElementById(partesBoneco[erros - 1]);\n                if (parte) {\n                    parte.style.display = 'block';\n                }\n            }\n        }\n\n        function verificarFimDeJogo() {\n            \/\/ Vit\u00f3ria\n            if (!letrasDescobertas.includes('_')) {\n                mensagemFinalDiv.innerHTML = '<span class=\"vitoria\">Parab\u00e9ns, voc\u00ea venceu!<\/span>';\n                finalizarJogo();\n            }\n            \n            \/\/ Derrota\n            else if (erros >= maxErros) {\n                mensagemFinalDiv.innerHTML = `<span class=\"derrota\">Voc\u00ea perdeu! A palavra era: ${palavraSecreta}<\/span>`;\n                finalizarJogo();\n            }\n        }\n        \n        function finalizarJogo() {\n            \/\/ Desabilita todos os bot\u00f5es do teclado\n            document.querySelectorAll('.letra').forEach(botao => {\n                botao.disabled = true;\n            });\n            reiniciarBtn.style.display = 'block';\n        }\n\n        reiniciarBtn.addEventListener('click', () => {\n            \/\/ Redireciona para a p\u00e1gina inicial para criar um novo jogo\n            window.location.href = window.location.pathname;\n        });\n\n    <\/script><\/div>\n\n\n\n<p class=\"translation-block\">Se voc\u00ea tiver acessado essa p\u00e1gina de um par\u00e2metro de URL (um link esquisito), significa que voc\u00ea recebeu o desafio de algu\u00e9m e o jogo vai aparecer. Caso esteja apenas na p\u00e1gina sem nenhum par\u00e2metro, voc\u00ea deve colocar uma palavra desejada para gerar um link de desafio para os amigos jogarem sua Forca. <\/p>\n\n\n\n<p class=\"translation-block\">Essa p\u00e1gina trata-se de um gerador de Jogo da Forca Online! Simples e funcional! Espero que gostem! <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"translation-block\">\u201cO jogo da forca surgiu no s\u00e9culo XIX, na Inglaterra, como passatempo escolar chamado \u2018Birds, Beasts and Fishes\u2019. S\u00f3 depois ganhou o desenho do boneco na forca, que acabou se tornando a vers\u00e3o mais popular no mundo todo.\u201d<\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":50378,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,1],"tags":[],"class_list":["post-50343","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-apps","category-games","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-25","no-featured-image-padding"],"_links":{"self":[{"href":"https:\/\/skdojo.com\/es\/wp-json\/wp\/v2\/posts\/50343","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/skdojo.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/skdojo.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/skdojo.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/skdojo.com\/es\/wp-json\/wp\/v2\/comments?post=50343"}],"version-history":[{"count":43,"href":"https:\/\/skdojo.com\/es\/wp-json\/wp\/v2\/posts\/50343\/revisions"}],"predecessor-version":[{"id":50395,"href":"https:\/\/skdojo.com\/es\/wp-json\/wp\/v2\/posts\/50343\/revisions\/50395"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/skdojo.com\/es\/wp-json\/wp\/v2\/media\/50378"}],"wp:attachment":[{"href":"https:\/\/skdojo.com\/es\/wp-json\/wp\/v2\/media?parent=50343"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/skdojo.com\/es\/wp-json\/wp\/v2\/categories?post=50343"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/skdojo.com\/es\/wp-json\/wp\/v2\/tags?post=50343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}