Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Rasgaroth

#1
Java / Juego MasterMind Java necesito ayuda
1 Febrero 2015, 17:24 PM
Tengo que hacer el juego del MasterMind en java, por el momento he conseguido que me genere una clave aleatoria de 4 colores entre 6 colores existentes dentro del juego que seria lo que habria que adivinar, introduciendo por teclado una secuencia de 4 colores.

El juego trata de introducir una secuencia de colores en un orden concreto y si coincide con la que el programa habia generado en un principio ganas, pero si fallas pueden ocurrir dos cosas, que no aciertes ninguna posicion pero si el color y te apareceria un mensaje que te diria "Hay X fichas descolocadas" y " 0 fichas acertadas" o podria ser que acertases alguna y hubiese alguna descolocada. El problema lo tengo al intentar sacar el metodo de fichasAcertadas y fichasDescolocadas

pongo el codigo que tengo y a ver si algun alma caritativa me pudiese resolver estos dos metodos. Perdon por lo del code, no lo sabia.

Código (java) [Seleccionar]
import java.util.Random;
import java.util.Scanner;

public class MasterMind {

public static void main(String[] args) {
//char [] clave = GenerarClave();
   
System.out.println("Bienvenido al juego del MasterMind");
System.out.println("");
System.out.println("Escribe una secuencia de 4 colores introduciendo la letras del color elegido y pulsando intro hasta completar la secuencia.");
System.out.println("M=Marron, R=Rojo, A=Azul, Z=Amarillo, N=Naranja y V=Verde");
System.out.println("");
MostrarSolucion(pedirSolucion());
}

public static String [] pedirSolucion()  {
String [] solucion = new String [4];
Scanner input = new Scanner(System.in);
System.out.println("Escriba la soluccion que crea que es correcta: ");
for (int i = 0; i < solucion.length; i = i + 1) {
String color = input.next();
solucion[i] = color;
}
return solucion;
}
 
public static void MostrarSolucion(String [] solucion){
for (int i = 0; i < solucion.length; i = i + 1) {
System.out.print(solucion[i] + " ");
}
System.out.println();
}

static boolean estaRepetido(char color,char [] clave){
boolean repetido = false;
int i=0;
while ( (i < clave.length)&&(repetido == false) ){
if (color == clave[i]){
repetido=true;
}
i++;
}
return repetido;
}

public static char[] GenerarClave(){
Random rnd = new Random();
char [] clave = new char[4];
int i=0;
char posibleColor = 'Q';
char posibleColor2 = 'Q';
while(i < clave.length){
if(i==0){
double x = rnd.nextDouble();
int color =(int) ((x*5)+1);
switch (color) {
case 1: clave[i] = 'M';break;
case 2: clave[i] = 'R';break;
case 3: clave[i] = 'N';break;
case 4: clave[i] = 'A';break;
case 5: clave[i] = 'Z';break;
case 6: clave[i] = 'V';break;
}
i++;
}else{
double j = rnd.nextDouble();
int color3 =(int) ((j*5)+1);
switch (color3) {
case 1: posibleColor = 'M';break;
case 2: posibleColor = 'R';break;
case 3: posibleColor = 'N';break;
case 4: posibleColor = 'A';break;
case 5: posibleColor = 'Z';break;
case 6: posibleColor = 'V';break;
}
posibleColor2 = posibleColor;
while (estaRepetido(posibleColor2,clave)){
double y = rnd.nextDouble();
int color2 =(int) ((y*5)+1);
switch (color2) {
case 1: posibleColor2 = 'M';break;
case 2: posibleColor2 = 'R';break;
case 3: posibleColor2 = 'N';break;
case 4: posibleColor2 = 'A';break;
case 5: posibleColor2 = 'Z';break;
case 6: posibleColor2 = 'V';break;
}
}
clave[i] = posibleColor2;
i++;
}
}
return clave;
}
}



Mod: Tema movido a Java, procura usar los Sub-foros correctos