Socorro programa em java da forca

3 respostas
D

Pessoal vi este programa na internet mas mandei para o Jcreator e compilei e esta dando erro
ALGUÉM PODE ME AJUDAR

anexo

import java.awt.*;

import javax.swing.JOptionPane;
public class Forca extends java.applet.Applet {

String[] listaPalavras =

{PETROLEO, PESTANA, PESTILENTO, PETELECO, REBOQUE, CADAFALSO,

CADEIRA, COLA, REBENTO, DEFUMADO, DISCURSO, ELETRODOMESTICO,

ELETRONICA, ENGRENAGEM, ESFOMEADO, FERRALHEIRO, FERROVIA,

FERTIL, FORTALEZA, FORTIFICANTE, OFICINA, ORNAMENTO, PALAVRA,

PREOCUPACAO, RADIOLOGIA, RADIOGRAFIA, GRANJA, GRANULADO, INDUZIDO,

IMBATIVEL, INDUSTRIA, INTERNACIONAL, LABIRINTO, LOBISOMEM,

LOCOMOTIVA, TESOURA, MASSAGISTA, MATADOURO, MOCHILA, NOROESTE,

NITROGLICERINA, HELICOPTERO, CAPITALISMO, SOFTWARE, ENGENHARIA,

NOROESTE, AUTENTICO, LINUX, PROCESSADOR, QUARENTENA, MEDICINA,

HOLOCAUSTO, RADIOGRAFIA, XAROPE, ZAROLHO, ZOOLOGICO, HEREDITARIO,

EXTASE, EXTRAVIO, DUODENO, ECOLOGISTA, TURISMO, TRAFICANTE,

CONSELHO, BAIXISTA, AVESTRUZ, QUIMICA, BOTANICA, RESPECTIVO,

SAXOFONE, TABERNA, OCULTO, TRIGONOMETRIA, ZODIACO, JUSTAPOSTO,

HIDRAULICO, HEXAGONO, MINEIRO, FRENETICO, EXPLOSIVEL, EXORCISTA};
char[] letrasAlfabeto = {A,B,C,D,E,F,G,H,I,J,K,

L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z};

char[] letrasNaoSelecionadas = new char[26];

char[] palavra;

char[] letrasAdivinhadas_X_Posicao;

int tentativasErradas;

String resultado;

boolean novoJogo = false;
// Fontes utilizadas

Font letras = new Font(SansSerif, Font.BOLD, 24);

Font mensagens = new Font(SansSerif, Font.PLAIN, 16);
public void init() {

requestFocus();

}
public void start() {

// Inicializa vetor das letrasNaoSelecionadas contendo inicialmente todas as

// letras disponiveis

for(int i = 0; i < letrasNaoSelecionadas.length; i++)

letrasNaoSelecionadas[i] = letrasAlfabeto[i];

// Sorteia palavra do jogo
palavra = sorteiaPalavra();

// Inicializa vetor das letras ja adivinhadas com todas as posicoes iguais a 0

letrasAdivinhadas_X_Posicao = new char[palavra.length];

for(int i = 0; i < letrasAdivinhadas_X_Posicao.length; i++)

letrasAdivinhadas_X_Posicao[i] = 0;

// Inicializa variavel referente ao numero de tentativas erradas do usuario
tentativasErradas = 0;

// Inicializa variaveis referentes a saida de fim de um jogo

novoJogo = false;

resultado = “”;
// Chamada ao metodo paint necessaria para o reinicio do jogo

repaint();

}
// Desenha tela do jogo

public void paint(Graphics g) {

// Seleciona cor do fundo

setBackground(Color.white);

// Seleciona fonte padrao para desenho na tela

g.setFont(letras);
// Desenha forca

g.fillRect(20, 20, 110, 10);

g.fillRect(20, 20, 10, 185);

g.fillRect(122, 30, 8, 22);

g.fillRect(10, 195, 30, 10);
// Desenha cabeca, olhos e boca

if(tentativasErradas > 0) {

g.fillRect(113, 52, 25, 28);

g.fillRect(122, 80, 8, 7);

g.setColor(Color.white);

g.fillRect(118, 58, 4, 5);

g.fillRect(129, 58, 4, 5);

g.fillRect(121, 70, 9, 4);

g.setColor(Color.black);

}
// Desenha corpo

if(tentativasErradas > 1)

g.fillRect(106, 87, 39, 50);
// Desenha braco esquerdo

if(tentativasErradas > 2) {

g.fillRect(102, 87, 6, 6);

g.fillRect(98, 93, 12, 6);

g.fillRect(92, 99, 12, 6);

g.fillRect(87, 105, 11, 10);

g.fillRect(92, 115, 12, 6);

g.fillRect(98, 121, 12, 6);

}
// Desenha braco direito

if(tentativasErradas > 3) {

g.fillRect(141, 87, 6, 6);

g.fillRect(142, 93, 12, 6);

g.fillRect(147, 99, 12, 6);

g.fillRect(152, 105, 11, 10);

g.fillRect(147, 115, 12, 6);

g.fillRect(142, 121, 12, 6);

}
// Desenha perna esquerda

if(tentativasErradas > 4) {

g.fillRect(106, 137, 14, 13);

g.fillRect(106, 150, 10, 10);

g.fillRect(106, 160, 7, 10);

g.fillRect(100, 170, 13, 5);

}
// Desenha perna direita

if(tentativasErradas > 5) {

g.fillRect(131, 137, 14, 13);

g.fillRect(135, 150, 10, 13);

g.fillRect(138, 160, 7, 10);

g.fillRect(138, 170, 13, 5);

}

// Desenha tracos referentes as letras da palavra escondida e as letras

// encontradas em suas respectivas posicoes

for(int i = 0; i < palavra.length; i++) {

if(letrasAdivinhadas_X_Posicao[i] != 0)

g.drawString(String.valueOf(letrasAdivinhadas_X_Posicao[i]), 191 + i * 30, 52);

g.fillRect(190 + i * 30, 58, 20, 4);

}
// Desenha letras ainda nao selecionadas

int x_LetrasNaoUtilizadas = 190;

int i;

for(i = 0; i < letrasNaoSelecionadas.length / 2; i++) {

if(letrasNaoSelecionadas[i] != 0 )

g.drawString(String.valueOf(letrasNaoSelecionadas[i]), x_LetrasNaoUtilizadas, 137);

x_LetrasNaoUtilizadas += 25;

}

for(x_LetrasNaoUtilizadas = 192; i < letrasNaoSelecionadas.length; i++) {

if(letrasNaoSelecionadas[i] != 0 )

g.drawString(String.valueOf(letrasNaoSelecionadas[i]), x_LetrasNaoUtilizadas, 160);

x_LetrasNaoUtilizadas += 25;

}
// Desenha mensagem de pressionamento de tecla

g.setFont(mensagens);

g.drawString("–== Tecle a letra que corresponde a seu palpite ==–", 165, 190);

// Desenha mensagem relativa ao fim do jogo (vitoria ou derrota)
g.drawString(resultado, 200, 220);

// Desenha mensagem questionando entrada de um novo jogo

if(novoJogo)

g.drawString(Iniciar novo jogo ? (S/N), 260, 250);

}
// Sorteia palavra em jogo entre aquelas da lista

public char[] sorteiaPalavra() {

int indicePalavra;

String palavraSorteada;

// Sorteia indice da palavra
indicePalavra = (int) (Math.random() * listaPalavras.length);

// Seleciona a palavra correspondente ao indice sorteado no array de palavras
palavraSorteada = listaPalavras[indicePalavra];

// Retorna palavra sorteada

return palavraSorteada.toCharArray();

}
// Captura teclas pressionadas

public boolean keyDown(Event evt, int key) {

// Pressionamento da tecla “S” indicando pedido de NOVO JOGO

if(novoJogo && (key == 83 | key == 115)) {

start();

return true;

}

// Captura de teclas no decorrer de uma secao de jogo

// Letras maiusculas - Retorna tecla

if(key >= 65 && key <= 90) {

verificaPalpite((char) key);

return true;

}

// Letras minusculas - Converte para maiscula e retorn tecla

if(key >= 97 && key <= 122) {

verificaPalpite((char) (key-32));

return true;

}

// Pressionamento de tecla invalida

return false;

}
// Verifica se o palpite e correto ou incorreto e realiza acoes referentes

public void verificaPalpite(char letra_teclada) {

// Remove letra do vetor de letras nao utilizadas

boolean achouLetra = false;

int indiceBusca = 0;

while(!achouLetra && indiceBusca < letrasNaoSelecionadas.length) {

if(letrasNaoSelecionadas[indiceBusca] == letra_teclada) {

letrasNaoSelecionadas[indiceBusca] = 0;

achouLetra = true;

}

indiceBusca++;

}
// Caso a letra nao seja encontrada, o que indica que esta ja foi utilizada,

// o metodo e abortado

if(!achouLetra)

return;
// Verifica palpite percorrendo o vetor correspondente as letras da palavra

boolean palpiteCorreto = false;

for(int i = 0; i < palavra.length; i++) {

if(palavra[i] == letra_teclada) {

letrasAdivinhadas_X_Posicao[i] = letra_teclada;

palpiteCorreto = true;

}

}

// Caso a o palpite seja errado, incrementa contador de tentativas erradas

if(palpiteCorreto == false) {

tentativasErradas++;

}

// Invoca metodo que verifica termino do jogo
verificaFimJogo();

// Redesenha a tela com as novas configuracoes

repaint();

}
// Verifica fim do jogo, derrota ou vitoria, e armazena resultado

public void verificaFimJogo() {

// Checa derrota

if(tentativasErradas == 6) {

resultado = " Que Deus perdoe seus pecados !!!";

novoJogo = true;

}

// Checa vitoria

else {

boolean temZero = false;

for(int i = 0; i < letrasAdivinhadas_X_Posicao.length; i++)

if(letrasAdivinhadas_X_Posicao[i] == 0)

temZero = true;

if(!temZero) {

resultado = PARABENS !!! Voce descobriu a palavra !”;

novoJogo = true;

}

}

}

}

3 Respostas

D

Pessoal vi este programa na internet mas mandei para o Jcreator e compilei e esta dando erro
ALGUÉM PODE ME AJUDAR

anexo

import java.awt.*;

import javax.swing.JOptionPane;
public class Forca extends java.applet.Applet {

String[] listaPalavras =

{PETROLEO, PESTANA, PESTILENTO, PETELECO, REBOQUE, CADAFALSO,

CADEIRA, COLA, REBENTO, DEFUMADO, DISCURSO, ELETRODOMESTICO,

ELETRONICA, ENGRENAGEM, ESFOMEADO, FERRALHEIRO, FERROVIA,

FERTIL, FORTALEZA, FORTIFICANTE, OFICINA, ORNAMENTO, PALAVRA,

PREOCUPACAO, RADIOLOGIA, RADIOGRAFIA, GRANJA, GRANULADO, INDUZIDO,

IMBATIVEL, INDUSTRIA, INTERNACIONAL, LABIRINTO, LOBISOMEM,

LOCOMOTIVA, TESOURA, MASSAGISTA, MATADOURO, MOCHILA, NOROESTE,

NITROGLICERINA, HELICOPTERO, CAPITALISMO, SOFTWARE, ENGENHARIA,

NOROESTE, AUTENTICO, LINUX, PROCESSADOR, QUARENTENA, MEDICINA,

HOLOCAUSTO, RADIOGRAFIA, XAROPE, ZAROLHO, ZOOLOGICO, HEREDITARIO,

EXTASE, EXTRAVIO, DUODENO, ECOLOGISTA, TURISMO, TRAFICANTE,

CONSELHO, BAIXISTA, AVESTRUZ, QUIMICA, BOTANICA, RESPECTIVO,

SAXOFONE, TABERNA, OCULTO, TRIGONOMETRIA, ZODIACO, JUSTAPOSTO,

HIDRAULICO, HEXAGONO, MINEIRO, FRENETICO, EXPLOSIVEL, EXORCISTA};
char[] letrasAlfabeto = {A,B,C,D,E,F,G,H,I,J,K,

L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z};

char[] letrasNaoSelecionadas = new char[26];

char[] palavra;

char[] letrasAdivinhadas_X_Posicao;

int tentativasErradas;

String resultado;

boolean novoJogo = false;
// Fontes utilizadas

Font letras = new Font(SansSerif, Font.BOLD, 24);

Font mensagens = new Font(SansSerif, Font.PLAIN, 16);
public void init() {

requestFocus();

}
public void start() {

// Inicializa vetor das letrasNaoSelecionadas contendo inicialmente todas as

// letras disponiveis

for(int i = 0; i < letrasNaoSelecionadas.length; i++)

letrasNaoSelecionadas[i] = letrasAlfabeto[i];

// Sorteia palavra do jogo
palavra = sorteiaPalavra();

// Inicializa vetor das letras ja adivinhadas com todas as posicoes iguais a 0

letrasAdivinhadas_X_Posicao = new char[palavra.length];

for(int i = 0; i < letrasAdivinhadas_X_Posicao.length; i++)

letrasAdivinhadas_X_Posicao[i] = 0;

// Inicializa variavel referente ao numero de tentativas erradas do usuario
tentativasErradas = 0;

// Inicializa variaveis referentes a saida de fim de um jogo

novoJogo = false;

resultado = “”;
// Chamada ao metodo paint necessaria para o reinicio do jogo

repaint();

}
// Desenha tela do jogo

public void paint(Graphics g) {

// Seleciona cor do fundo

setBackground(Color.white);

// Seleciona fonte padrao para desenho na tela

g.setFont(letras);
// Desenha forca

g.fillRect(20, 20, 110, 10);

g.fillRect(20, 20, 10, 185);

g.fillRect(122, 30, 8, 22);

g.fillRect(10, 195, 30, 10);
// Desenha cabeca, olhos e boca

if(tentativasErradas > 0) {

g.fillRect(113, 52, 25, 2);

g.fillRect(122, 80, 8, 7);

g.setColor(Color.white);

g.fillRect(118, 58, 4, 5);

g.fillRect(129, 58, 4, 5);

g.fillRect(121, 70, 9, 4);

g.setColor(Color.black);

}
// Desenha corpo

if(tentativasErradas > 1)

g.fillRect(106, 87, 39, 50);
// Desenha braco esquerdo

if(tentativasErradas > 2) {

g.fillRect(102, 87, 6, 6);

g.fillRect(98, 93, 12, 6);

g.fillRect(92, 99, 12, 6);

g.fillRect(87, 105, 11, 10);

g.fillRect(92, 115, 12, 6);

g.fillRect(98, 121, 12, 6);

}
// Desenha braco direito

if(tentativasErradas > 3) {

g.fillRect(141, 87, 6, 6);

g.fillRect(142, 93, 12, 6);

g.fillRect(147, 99, 12, 6);

g.fillRect(152, 105, 11, 10);

g.fillRect(147, 115, 12, 6);

g.fillRect(142, 121, 12, 6);

}
// Desenha perna esquerda

if(tentativasErradas > 4) {

g.fillRect(106, 137, 14, 13);

g.fillRect(106, 150, 10, 10);

g.fillRect(106, 160, 7, 10);

g.fillRect(100, 170, 13, 5);

}
// Desenha perna direita

if(tentativasErradas > 5) {

g.fillRect(131, 137, 14, 13);

g.fillRect(135, 150, 10, 13);

g.fillRect(138, 160, 7, 10);

g.fillRect(138, 170, 13, 5);

}

// Desenha tracos referentes as letras da palavra escondida e as letras

// encontradas em suas respectivas posicoes

for(int i = 0; i < palavra.length; i++) {

if(letrasAdivinhadas_X_Posicao[i] != 0)

g.drawString(String.valueOf(letrasAdivinhadas_X_Posicao[i]), 191 + i * 30, 52);

g.fillRect(190 + i * 30, 58, 20, 4);

}
// Desenha letras ainda nao selecionadas

int x_LetrasNaoUtilizadas = 190;

int i;

for(i = 0; i < letrasNaoSelecionadas.length / 2; i++) {

if(letrasNaoSelecionadas[i] != 0 )

g.drawString(String.valueOf(letrasNaoSelecionadas[i]), x_LetrasNaoUtilizadas, 137);

x_LetrasNaoUtilizadas += 25;

}

for(x_LetrasNaoUtilizadas = 192; i < letrasNaoSelecionadas.length; i++) {

if(letrasNaoSelecionadas[i] != 0 )

g.drawString(String.valueOf(letrasNaoSelecionadas[i]), x_LetrasNaoUtilizadas, 160);

x_LetrasNaoUtilizadas += 25;

}
// Desenha mensagem de pressionamento de tecla

g.setFont(mensagens);

g.drawString("–== Tecle a letra que corresponde a seu palpite ==–", 165, 190);

// Desenha mensagem relativa ao fim do jogo (vitoria ou derrota)
g.drawString(resultado, 200, 220);

// Desenha mensagem questionando entrada de um novo jogo

if(novoJogo)

g.drawString(Iniciar novo jogo ? (S/N), 260, 250);

}
// Sorteia palavra em jogo entre aquelas da lista

public char[] sorteiaPalavra() {

int indicePalavra;

String palavraSorteada;

// Sorteia indice da palavra
indicePalavra = (int) (Math.random() * listaPalavras.length);

// Seleciona a palavra correspondente ao indice sorteado no array de palavras
palavraSorteada = listaPalavras[indicePalavra];

// Retorna palavra sorteada

return palavraSorteada.toCharArray();

}
// Captura teclas pressionadas

public boolean keyDown(Event evt, int key) {

// Pressionamento da tecla “S” indicando pedido de NOVO JOGO

if(novoJogo && (key == 83 | key == 115)) {

start();

return true;

}

// Captura de teclas no decorrer de uma secao de jogo

// Letras maiusculas - Retorna tecla

if(key >= 65 && key <= 90) {

verificaPalpite((char) key);

return true;

}

// Letras minusculas - Converte para maiscula e retorn tecla

if(key >= 97 && key <= 122) {

verificaPalpite((char) (key-32));

return true;

}

// Pressionamento de tecla invalida

return false;

}
// Verifica se o palpite e correto ou incorreto e realiza acoes referentes

public void verificaPalpite(char letra_teclada) {

// Remove letra do vetor de letras nao utilizadas

boolean achouLetra = false;

int indiceBusca = 0;

while(!achouLetra && indiceBusca < letrasNaoSelecionadas.length) {

if(letrasNaoSelecionadas[indiceBusca] == letra_teclada) {

letrasNaoSelecionadas[indiceBusca] = 0;

achouLetra = true;

}

indiceBusca++;

}
// Caso a letra nao seja encontrada, o que indica que esta ja foi utilizada,

// o metodo e abortado

if(!achouLetra)

return;
// Verifica palpite percorrendo o vetor correspondente as letras da palavra

boolean palpiteCorreto = false;

for(int i = 0; i < palavra.length; i++) {

if(palavra[i] == letra_teclada) {

letrasAdivinhadas_X_Posicao[i] = letra_teclada;

palpiteCorreto = true;

}

}

// Caso a o palpite seja errado, incrementa contador de tentativas erradas

if(palpiteCorreto == false) {

tentativasErradas++;

}

// Invoca metodo que verifica termino do jogo
verificaFimJogo();

// Redesenha a tela com as novas configuracoes

repaint();

}
// Verifica fim do jogo, derrota ou vitoria, e armazena resultado

public void verificaFimJogo() {

// Checa derrota

if(tentativasErradas == 6) {

resultado = " Que Deus perdoe seus pecados !!!";

novoJogo = true;

}

// Checa vitoria

else {

boolean temZero = false;

for(int i = 0; i < letrasAdivinhadas_X_Posicao.length; i++)

if(letrasAdivinhadas_X_Posicao[i] == 0)

temZero = true;

if(!temZero) {

resultado = PARABENS !!! Voce descobriu a palavra !”;

novoJogo = true;

}

}

}

}
ivo_costa

O jogo funciona sim e é bem simples e legal.

Esse código é um applet, pra rodar é só criar um documento qualquercoisa.html e colocar dentro:

<html>
       <applet code="Forca" width=600 height=600></applet>
</html>

Compile o esse código que você postou e coloque o arquivo Forca.class no mesmo diretório do html.
Abra o html no navegador, e pimba! Funciona.

Obs.: quando for postar um código dessa grandeza é melhor usar o as tags "[code]".

Flw!

D

valeu

Criado 20 de novembro de 2007
Ultima resposta 20 de nov. de 2007
Respostas 3
Participantes 2