Jogo de Personagem Simples

[list]Tenho que fazer o seguinte jogo mais estou com umas pequenas complicações, quando executo ele e solicito para trocar personagem nao me mostra a opcao pra eu escolher qual personagem, e tb na arma.[/list]

[code]package apresentação;

public class Menu {

public void menu(){
	System.out.println("Escolha uma das Opcoes \n" +
			"1 - Criar Soldado \n" +
			"2 - Criar General \n" +
			"3 - Trocar Personagem \n" +
			"4 - Atirar \n" +
			"5 - Trocar Arma \n" +
			"6 - Encerar");
}

}
[/code]

[code]package apresentação;

import java.util.Scanner;

import armas.Basuca;

import personagem.*;
public class UsePersonagem {

public static void main(String[] args) {
	
	Menu menu = new Menu();
	Personagem p = null;
	
	Scanner teclado = new Scanner(System.in);
	
	int opcao = 0;
			
	while(opcao != 6){
		
		menu.menu();
		
		opcao = teclado.nextInt();
		
		switch (opcao) {
		case 1:
			p = new Soldado();
			p.desenhar();		
		break;
		
		case 2:
			
			p = new Genaral();
			p.desenhar();
			
			break;
			
		case 3:
			if(p instanceof Genaral){
				p = new Soldado();
			}
			
			
			
			break;
			
		case 4:
			
			break;
				
		case 5:
			 p = trocarArmar(p);
			break;
			
		case 6:
			
			System.out.println("Sistema Encerrado \n");
			break;

		default:
			System.out.println("Opção Invalida \n");
			break;
		}
	}
	
	

	
}
public static Personagem trocarArmar(Personagem p){
		
	
	switch (op) {
	case 1:
		
		p.setArma(new Basuca());
		break;

	default:
		break;
	}
	
	
		return p;
}

}
[/code]

[code]package armas;

public interface Arma_IF {

void  usarArma();

}
[/code]

[code]package armas;

public class Granada implements Arma_IF{

public void usarArma() {
	System.out.println("usando a granada \n(BUMMMMMM)");
	
}

}
[/code]

[code]package armas;

public class Revolver implements Arma_IF{

public void usarArma() {
	System.out.println("atirando com revolver \n(POHW)");
}

}
[/code]

[code]package personagem;

import armas.Arma_IF;

public abstract class Personagem {

public abstract  void desenhar();

Arma_IF arma;

public void falar(){
	
	System.out.println("personagem falando");
	
}

public void setArma(Arma_IF arma){
	this.arma = arma;
}

public void arma(){
	this.arma.usarArma();
}

}
[/code]

[code]package personagem;

public class Genaral extends Personagem{

public void desenhar() {
	System.out.println("desenhar general");
	
}

}
[/code]

[code]package personagem;

public class Soldado extends Personagem{

public void desenhar() {
	System.out.println("desenhar soldado \n");
}

}
[/code]

teria que estudar o código com calma, ta muito dividido em classes. dá trabalho para montar o estudo aqui, tens tudo zipado?

meu site tem alguns jogos legais, inclusive com código, dá uma olhada…

é mais avançado que este, com gráficos…

memoria e poker

e neste link
http://www.raghyjose.net/programacao.php

bingo, sena, tabuleiro, etc…

valeu. escreva aí para comentar, tente instalar meus jogos e diga se conseguiu… imagens na pasta c://

raghy@ig.com.br

[quote=BrunnoFreires][list]Tenho que fazer o seguinte jogo mais estou com umas pequenas complicações, quando executo ele e solicito para trocar personagem nao me mostra a opcao pra eu escolher qual personagem, e tb na arma.[/list]

case 3:
if(p instanceof Genaral){
   p = new Soldado();
}				
break;

[/quote]
Não estaria faltando embaixo do ‘if’:

else if(p instanceof Soldado){ p = new Genaral(); } else System.out.println("Não foi criado nem Soldado nem General!");
Espero ter dado uma luz!

Abraço.

public static Personagem trocarArmar(Personagem p){ switch (op) { ... } }
Aonde a variável op foi declarada? Não falta um ‘Scanner’?

Abraço.