Jogo da forca

5 respostas
R

[color=blue] [/color]Bom dia aee galera!To fazendo um joguinho com interface gráfica, porém não to conseguindo, to fazendo um jogo da forca, se alguém puder aee me da um Help agradeço! :shock:

5 Respostas

R

sim bota o que tu fez ai fera!!!

R

Cara o código eu tenho, só nao to conseguindo gerencia a interface dele, que eu ainda nao consegui faze:S :frowning: da uma olhada aee:

/* 
 * To change this template, choose Tools | Templates 
 * and open the template in the editor. 
 */  
package jogo_forca;  
  
import java.io.*;  
import java.io.BufferedReader;  
import java.io.FileReader;  
import java.io.FileWriter;  
import java.io.IOException;  
import java.util.Scanner;  
import javax.swing.JOptionPane;  
  
/** 
 * 
 * @author julio 
 */  
public class Jogo_forca {  
    //minhas variaveis locais  
  
    static String palavra_completa, tracos;  
  
    public static void main(String[] args) {  
        Scanner entrada = new Scanner(System.in);  
        String palavra, nome;  
  
        int opt;  
  
  
  
        do {  
  
            //menu do programa  
            opt = Integer.parseInt(JOptionPane.showInputDialog(" menu\n 0.Fim\n "  
                    + "1.Jogar sorteio palavra (aleatorio)"  
                    + "\n 2.Sortear Palavra por idice\n"  
                    + " 3.Exibe numero de erros\n "  
                    + "4.Ver minha Pontuação\n "  
                    + "5. Resetar meus pontos"));  
  
            switch (opt) {  
  
                case 0:  
                    //finalizar o programa  
                    System.exit(0);  
                    break;  
  
                case 1:  
  
                    break;  
  
                case 2:  
                    JOptionPane.showMessageDialog(null, ".::Instruções.::" + "\n o Jogador pode errar até "  
                            + "\n 6 vezes caso contrario perde");  
  
  
                    nome = JOptionPane.showInputDialog("Nome: ");  
                    sortearpalavra();  
                    desenharPalavra();  
                    alterarTracos();  
                    break;  
  
                case 3:  
                    break;  
  
                case 4:  
                    break;  
  
                case 5:  
                    break;  
  
  
  
  
            }  
        } while (opt != 5);  
  
    }  
  
// sorteio das palavras.... jogo....      
    public static void sortearpalavra() {  
        int linhas = 0;  
        int max = 0;  
        String linha, palavras[];  
        String nomeArquivo = "/temp/palavras.txt";  
        try {  
            FileReader arqTexto = new FileReader(nomeArquivo);  
            BufferedReader leitor = new BufferedReader(arqTexto);  
  
            max = Integer.parseInt(leitor.readLine());  
            palavras = new String[max];  
            System.out.println("Total de palavras: " + max);  
  
            int i = 0;  
            while ((linha = leitor.readLine()) != null) {  
                palavras[i] = linha;  
                //System.out.println("Palavra: " + palavras[i]);  
                linhas++;  
                i++;  
            }  
            int n = (int) (Math.random() * max);  
            System.out.println("Palavra Sorteada: " + palavras[n].toLowerCase());  
  
            //verificando o tamanho da palavra escolhida  
            int tam_palavrasort = palavras[n].length();  
            //convertendo a palavra toda para minuscula  
            palavra_completa = palavras[n].toLowerCase();  
            tracos = "";  
            //transformando a palavra nos traços  
            for (i = 0; i < tam_palavrasort; i++) {  
                tracos += " _ ";  
            }  
  
            // vendo o tamanho da palavra sorteada  
  
  
            System.out.println("Tamanho da palavra sorteada: " + tam_palavrasort);  
  
  
  
  
        } catch (IOException e) {  
            System.out.print("Erro! Não foi possível concluir a pesquisa.");  
        }  
  
    }  
  
    public static void desenharPalavra() {  
  
        JOptionPane.showMessageDialog(null, "Palavra a ser advinhada" + tracos);  
  
  
  
  
    }  
  
    public static void alterarTracos() {  
        char letra;  
        int i;  
  
        String entrada = JOptionPane.showInputDialog(null, "Digite a Letra");  
        letra = entrada.charAt(0);  
  
  
        for (i = 0; i < palavra_completa.length(); i++) {  
            if (palavra_completa.charAt(i) == letra);  
              
            tracos = palavra_completa.substring(i);  
            System.out.println(tracos.substring(i, i));  
        }  
  
// duvidas aqui,,  
  
  
  
  
    }  
}

se puder me ajudar agredeço abraço

R

olha vou te mandar esta aqui mas tenta vero que foi feito Ok!

public class Forca extends java.applet.Applet {   
	/**
	 * @author vitorm
	 */
	private static final long serialVersionUID = 1L;

	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 = " Seu burro não acertou !!!";   
			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 !";   
				novoJogo = true;   
			}   
		}   

	  
	}
}
R

cara tentei roda esse teu código mas ele tah com erro. na linha 48 acusa o run.exe

I

E qual é a linha 48 :?:

Aqui no Fórum é uma linha em branco.

flw :thumbup:

Criado 22 de março de 2012
Ultima resposta 9 de abr. de 2012
Respostas 5
Participantes 3