[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:
sim bota o que tu fez ai fera!!!
Cara o código eu tenho, só nao to conseguindo gerencia a interface dele, que eu ainda nao consegui faze:S 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
olha vou te mandar esta aqui mas tenta vero que foi feito Ok!
[code]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;
}
}
}
}[/code]
cara tentei roda esse teu código mas ele tah com erro. na linha 48 acusa o run.exe
E qual é a linha 48 :?:
Aqui no Fórum é uma linha em branco.
flw :thumbup: