Código
package RetoFinal;
import java.util.Scanner;
public class BuscarTesoro {
int dificultad = lector.nextInt();
Juego partida = new Juego(dificultad);
do{
partida.imprimir();
partida.mover();
}while(partida.vida>=0&&partida.tesEncontrados<partida.numTesoros);
if(partida.vida<0){
partida.imprimir();
}else{
partida.imprimir();
}
}
}
Código
package RetoFinal;
class Comida extends Item{
Comida(int posX, int posY) {
this.posX=posX;
this.posY=posY;
this.afecta=3;
}
}
Código
package RetoFinal;
public class Elemento {
int posX;
int posY;
}
Código
package RetoFinal;
class Enemigo extends Item{
Enemigo(int posX, int posY) {
this.posX=posX;
this.posY=posY;
this.afecta=-5;
}
}
Código
package RetoFinal;
class Item extends Elemento{
int afecta;
}
Código
package RetoFinal;
import java.util.Random;
import java.util.Scanner;
public class Juego {
boolean continuar=true;
int tesEncontrados = 0;
private boolean hallazgo;
private boolean ver;
int numTesoros;
private int numEnemigos;
private int numComida;
int vida;
private int mapDimension;
private Jugador player1;
private Mapa map;
private Enemigo[] enemies;
private Comida[] food;
private Tesoro[] chest;
public Juego(int dificultad) {
switch(dificultad){
case 1:
this.mapDimension=5;
this.vida = 50;
this.numTesoros=1;
this.numEnemigos=2;
this.numComida=8;
break;
case 2:
this.mapDimension=8;
this.numTesoros=2;
this.vida = 40;
this.numEnemigos=4;
this.numComida=6;
break;
case 3:
this.numTesoros=4;
this.numEnemigos=8;
this.numComida=4;
this.vida = 30;
this.mapDimension=12;
break;
default:
break;
}
map = new Mapa(this.mapDimension);
this.generarJugador();
this.generarEnemigos();
this.generarComida();
this.generarTesoro();
}
private void generarJugador() {
int posX = 0+generadorAleatorios.nextInt(this.mapDimension);
int posY = 0+generadorAleatorios.nextInt(this.mapDimension);
player1 = new Jugador(posX,posY);
}
private void generarEnemigos() {
this.enemies = new Enemigo[this.numEnemigos];
for(int i=0;i<this.numEnemigos;i++){
int posX = 0+generadorAleatorios.nextInt(this.mapDimension);
int posY = 0+generadorAleatorios.nextInt(this.mapDimension);
int numeroAleatorio = 1+generadorAleatorios.nextInt(5);
this.enemies[i] = new Enemigo(posX, posY);
}
}
private void generarComida() {
this.food = new Comida[this.numComida];
for(int i=0;i<this.numComida;i++){
int posX = 0+generadorAleatorios.nextInt(this.mapDimension);
int posY = 0+generadorAleatorios.nextInt(this.mapDimension);
int numeroAleatorio = 1+generadorAleatorios.nextInt(5);
food[i] = new Comida(posX, posY);
}
}
private void generarTesoro() {
this.chest = new Tesoro[this.numTesoros];
for(int i=0;i<this.numTesoros;i++){
int posX = 0+generadorAleatorios.nextInt(this.mapDimension);
int posY = 0+generadorAleatorios.nextInt(this.mapDimension);
int numeroAleatorio = 1+generadorAleatorios.nextInt(5);
chest[i] = new Tesoro(posX, posY);
}
}
public void imprimir() {
map.matriz[player1.posX][player1.posY] = '@';
map.imprimir();
this.generarItem();
}
public void mover() {
if(!this.hallazgo){
map.matriz[player1.posX][player1.posY] = ' ';
}
if(ver){
map.matriz[player1.posX][player1.posY] = '?';
}
char opcion = lector.next().charAt(0);
switch(opcion){
case 'a':
player1.moverX(-1);
break;
case 'w':
player1.moverY(-1);
break;
case 's':
player1.moverY(1);
break;
case 'd':
player1.moverX(1);
break;
}
this.encontrarItem();
this.vida-=2;
}
private void generarItem() {
int i;
this.hallazgo=false;
for(i=0;i<this.numTesoros;i++){
if(player1.posX==chest[i].posX&&player1.posY==chest[i].posY){
map.matriz[player1.posX][player1.posY] = '$';
this.hallazgo=true;
}
}
for(i=0;i<this.numComida;i++){
if(player1.posX==food[i].posX&&player1.posY==food[i].posY){
map.matriz[player1.posX][player1.posY] = '+';
this.hallazgo=true;
}
}
for(i=0;i<this.numEnemigos;i++){
if(player1.posX==enemies[i].posX&&player1.posY==enemies[i].posY){
map.matriz[player1.posX][player1.posY] = '!';
this.hallazgo=true;
}
}
}
private void encontrarItem() {
int i;
for(i=0;i<this.numTesoros;i++){
if(player1.posX==chest[i].posX&&player1.posY==chest[i].posY){
this.tesEncontrados++;
}
}
for(i=0;i<this.numComida;i++){
if(player1.posX==food[i].posX&&player1.posY==food[i].posY){
this.vida+=3;
}
}
for(i=0;i<this.numEnemigos;i++){
if(player1.posX==enemies[i].posX&&player1.posY==enemies[i].posY){
this.vida-=5;
}
}
}
}
Código
package RetoFinal;
class Jugador extends Elemento{
int vida;
Jugador(int posX, int posY) {
this.posX=posX;
this.posY=posY;
}
public void moverX(int i){
this.posY += i;
}
public void moverY(int j){
this.posX += j;
}
}
Código
package RetoFinal;
class Mapa {
char[][] matriz;
private int dimension;
public Mapa(int d) {
this.dimension = d;
this.matriz = new char[d][d];
for(int i=0;i<this.dimension;i++){
for(int j=0;j<this.dimension;j++){
this.matriz[i][j]='?';
}
}
}
void imprimir() {
for(int i=0;i<this.dimension;i++){
for(int j=0;j<this.dimension;j++){
}
}
}
}
Código
package RetoFinal;
class Tesoro extends Elemento{
Tesoro(int posX, int posY) {
this.posX=posX;
this.posY=posY;
}
}
lo que tengo duda es que al momento de que el jugador haga un movimiento pregunte si se quiere mover o quiere solo ver la casilla si se mueve perderia 2 de vida y si solo ve lo que hay en la casilla perderia 1 vida





 Autor
 Autor
		

 En línea
									En línea
								





 estudia y aprende, quieres que te hagan la tarea
 estudia y aprende, quieres que te hagan la tarea

 gracias  por enseñarme lo de Geshi si es muy útil
 gracias  por enseñarme lo de Geshi si es muy útil 
