Ajudaaa........................jogo da forca

17 respostas
D

PO estava tentandu criar jogos fiz o da velha… + nao to conseguindo fazer o da forca…
alguem sabe o codigo ??? se souberem por favor me mostrem como eh…agradeço desde ja !!

gostaria do jogo com algumas regras : 3 niveis , facil,medio e dificil

no facil o jogador podeiria errar o nº de vezes equivalente ao nº de letras da palavra
no medio ele erraria apenas 5 vezes
no dificil ele erraria apenas 3 vezes

vlw obrigado pela ajuda

17 Respostas

ricoldi

tá… tenta assim…


mapeia uma palavra em um array e cada tecla que o jogador pressionar vc corre o array e ve se tá lá se tiver faz X se não tiver errou++, manja?

ou vc quer um código pronto? a semente esta ai acima em itálico!

Att
Ricoldi

D

PO eu entendi o q vc disse e estou fazendu assim…

  • e no meu codigo…naum estou conseguindu concluir…

po se vc puudesse me passar agradeceria…

ricoldi

posta sua duvida e seu código que fica mais fácil

ps: não esqueça de circundar com code e /code

Att
Ricoldi

D

PO falei aew em cima meu codigo ta incompleto…
po sou novo na programaçao em java…naum sei muito…por issu nao to conseguindo fazer a mairo parte…

se vc puder me ajudar…

tem msn ??? fica + facil…

paulog

Se você não sabe muito, está ai uma ótima oportunidade para aprender. :wink:

Se tu queres o código completo, esquece.
Ninguém aqui vai fazer o teu “dever de casa”.

ricoldi

Daniel_Furia, seguinte… como você é novo aqui no fórum eu vou tentar te explicar como é a idéia do fórum, pois ao meu ver parece que não entende o conceito da coisa:

1 ? Aqui não se pede códigos. Posta-se o código e/ou erro e o pessoal ajuda.
2 ? Msn acaba com a idéia do fórum pois imagina que todo mundo resolvesse seu problema com msn ai era mais fácil ter só um site com os endereços de msn dos usuários e não um fórum inteiro, isso aqui é para que alguém com este mesmo problema um dia mais a frente possa achar a resposta sem ter que perguntar novamente.

Eu to a fim de te ajudar, mas não vou postar código, não é muito de minha índole. Se quer aprender a pescar pelo menos tenha uma vara de pesca a mão.

Você é novo em java ou em programação em geral? Esta lógica é muito simples pode ser que esteja tendo problemas em conhecer as malicias do java, mas também não é nenhum fim do mundo.

Que parte conseguiu fazer? E que parte esta com problema?

Aguardo.

Att
Ricoldi

D

PO issu nauM eh dever d casa naUM…ja disse anteriormente q estava fazendu por vontade propria…

  • naum to conseguindu…

se puderem me ajudar ajudem, se naum naum precisem fikar me avisandu q naum faz trab, pq eu sei e mt dissu…

ViniGodoy

Daniel, pq suas frases são sempre começadas com PO?

Você não notou que está todo mundo querendo de ajudar? Eu sou um deles. Então, diz o que está dando erro, no que vc está com dúvida, e a gente te ajuda!!

Mas ninguém vai parar o que está fazendo só para desenvolver um joguinho de forca para você. :stuck_out_tongue:

Agora, vc pode tentar também esse outro fórum.
Lá é bem capaz que te ajudem no seu caso…

Outra coisa, pelo menos nos fóruns, use um português mais formal.

Andre_Brito

Quanto você paga?
Poco marrento o cara… po, po po.
E escreve direito… não direitu.

D

Eu fiz um programa assim…

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;
public void init() {

requestFocus();

}

public void start() {

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

palavra = sorteiaPalavra();

letrasAdivinhadas_X_Posicao = new char[palavra.length];

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

letrasAdivinhadas_X_Posicao[i] = 0;

tentativasErradas = 0;

novoJogo = false;
resultado = “”;

repaint();
}

public void paint(Graphics g) {

setBackground(Color.white);

g.setFont(letras);

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

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

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

g.fillRect(10, 195, 30, 10);
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);

}

if(tentativasErradas > 1)
g.fillRect(106, 87, 39, 50);

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);

}
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);

}
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);

}
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);

}
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);

}
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;

}

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

g.drawString(resultado, 200, 220);

if(novoJogo)

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

}
public char[] sorteiaPalavra() {

int indicePalavra;

String palavraSorteada;

indicePalavra = (int) (Math.random() * listaPalavras.length);

palavraSorteada = listaPalavras[indicePalavra];

return palavraSorteada.toCharArray();
}

public boolean keyDown(Event evt, int key) {

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

start();

return true;

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

verificaPalpite((char) key);

return true;

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

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

return true;

}

return false;
}

public void verificaPalpite(char letra_teclada) {

boolean achouLetra = false;

int indiceBusca = 0;

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

if(letrasNaoSelecionadas[indiceBusca] == letra_teclada) {

letrasNaoSelecionadas[indiceBusca] = 0;

achouLetra = true;

}

indiceBusca++;

}

if(!achouLetra)
return;

boolean palpiteCorreto = false;

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

if(palavra[i] == letra_teclada) {

letrasAdivinhadas_X_Posicao[i] = letra_teclada;

palpiteCorreto = true;

}

}
if(palpiteCorreto == false) {

tentativasErradas++;

}

verificaFimJogo();

repaint();
}

public void verificaFimJogo() {

if(tentativasErradas == 6) {

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

novoJogo = true;

}
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;

}

}

}

}

soh q agora keria por nos tres niveis como falei no 1º post…sera q alguem me ajuga agora !!!

gpd38

Por favor.
Use as tegs codigo .
Fica mais legivel

Seu codigo é esse aqui:

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; 

public void init() { 
requestFocus(); 
} 

public void start() { 

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

palavra = sorteiaPalavra(); 

letrasAdivinhadas_X_Posicao = new char[palavra.length]; 
for(int i = 0; i < letrasAdivinhadas_X_Posicao.length; i++) 
letrasAdivinhadas_X_Posicao[i] = '0'; 


tentativasErradas = 0; 


novoJogo = false; 
resultado = ""; 

repaint(); 
} 


public void paint(Graphics g) { 

setBackground(Color.white); 

g.setFont(letras); 


g.fillRect(20, 20, 110, 10); 
g.fillRect(20, 20, 10, 185); 
g.fillRect(122, 30, 8, 22); 
g.fillRect(10, 195, 30, 10); 


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); 
} 

if(tentativasErradas > 1) 
g.fillRect(106, 87, 39, 50); 


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); 
} 


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); 
} 


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); 
} 


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); 
} 

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); 
} 


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; 
} 


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


g.drawString(resultado, 200, 220); 


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


public char[] sorteiaPalavra() { 
int indicePalavra; 
String palavraSorteada; 


indicePalavra = (int) (Math.random() * listaPalavras.length); 


palavraSorteada = listaPalavras[indicePalavra]; 


return palavraSorteada.toCharArray(); 
} 


public boolean keyDown(Event evt, int key) { 

if(novoJogo && (key == 83 | key == 115)) { 
start(); 
return true; 
} 


if(key >= 65 && key <= 90) { 
verificaPalpite((char) key); 
return true; 
} 

if(key >= 97 && key <= 122) { 
verificaPalpite((char) (key-32)); 
return true; 
} 

return false; 
} 


public void verificaPalpite(char letra_teclada) { 

boolean achouLetra = false; 
int indiceBusca = 0; 
while(!achouLetra && indiceBusca < letrasNaoSelecionadas.length) { 
if(letrasNaoSelecionadas[indiceBusca] == letra_teclada) { 
letrasNaoSelecionadas[indiceBusca] = '0'; 
achouLetra = true; 
} 
indiceBusca++; 
} 



if(!achouLetra) 
return; 


boolean palpiteCorreto = false; 
for(int i = 0; i < palavra.length; i++) { 
if(palavra[i] == letra_teclada) { 
letrasAdivinhadas_X_Posicao[i] = letra_teclada; 
palpiteCorreto = true; 
} 
} 

if(palpiteCorreto == false) { 
tentativasErradas++; 
} 


verificaFimJogo(); 


repaint(); 
} 


public void verificaFimJogo() { 

if(tentativasErradas == 6) { 
resultado = " Que Deus perdoe seus pecados !!!"; 
novoJogo = true; 
} 

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; 
} 
} 
} 
}
H

po eu tbm sou iniciante em java e no meu curso faço esses programinhas . tentei fazer mas tah dando sempre um erro ,Se for possivel alguem postar esse codigo pronto pra ser testado eu agradeceria, ateh pq sempre q eu faço dah um erro (simples).
por issu pesso a ajuda de vcs tbm , eu sei q muitos vao dizer q naum podem postar o codigo mas a minha intençao e unicamente aprender e colocar algumas particularidades nele se for possivel.

D

PO sera q alguem pode fazer os niveeis pra mim eu nauM sei…soh conesegui dakele modo…

ricoldi

Estamos perdidos…

henrigunner:
po eu tbm sou iniciante em java e no meu curso faço esses programinhas . tentei fazer mas tah dando sempre um erro ,Se for possivel alguem postar esse codigo pronto pra ser testado eu agradeceria, ateh pq sempre q eu faço dah um erro (simples).
por issu pesso a ajuda de vcs tbm , eu sei q muitos vao dizer q naum podem postar o codigo mas a minha intençao e unicamente aprender e colocar algumas particularidades nele se for possivel.

Meio dificil…

+ Meio dificil…

Galera antes de estudar a programação estudem os conceitos de OO
http://www.google.com.br/search?hl=pt-BR&client=firefox-a&rls=org.mozilla:pt-BR:official&hs=p13&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=orienta%C3%A7%C3%A3o+a+objetos&spell=1
é só uma dica!

E leiam a sessão de foruns e artigos
http://www.guj.com.br/artigos.jsp


Att
Ricoldi

ViniGodoy

Vocês também podem estudar alguns códigos prontos, como o “Genius for Dummies”, que coloquei na PDJ:
http://www.programadoresdejogos.com/osgames/

Ou esse ótimo tutorial aqui:
http://www.cokeandcode.com/spaceinvaderstutorial

Ou ainda esse livro:
http://fivedots.coe.psu.ac.th/~ad/jg/

ViniGodoy

Você fez? Ou ele fez?
http://forum.imasters.uol.com.br/index.php?showtopic=172813

Não copie códigos da Internet em seus trabalhos acadêmicos. Estude, aprenda.
Eu costumo a zerar meus alunos que copiam e assumem a autoria de terceiros…

Não só é extremamente pouco profissional, como também é crime.

ricoldi

Você fez? Ou ele fez?
http://forum.imasters.uol.com.br/index.php?showtopic=172813

Não copie códigos da Internet em seus trabalhos acadêmicos. Estude, aprenda.
Eu costumo a zerar meus alunos que copiam e assumem a autoria de terceiros…

Não só é extremamente pouco profissional, como também é crime.

Huummm… ficou feio agora hein Garoto “PO”

Criado 3 de agosto de 2008
Ultima resposta 8 de ago. de 2008
Respostas 17
Participantes 7