/**
*
* Fundamentos de Programacion 2: CuatroEsferas.java
*
*/
class CuatroEsferas {
static int MENOS =0;
// Datos miembro
private Esfera esfera1;
private Esfera esfera2;
private Esfera esfera3;
private Esfera esfera4;
// Constructores
public CuatroEsferas() {
esfera1 = new Esfera('R');
esfera2 = new Esfera('R');
esfera3 = new Esfera('R');
esfera4 = new Esfera('R');
}
public CuatroEsferas(CuatroEsferas cuatroEsferas) {
esfera1 = new Esfera(cuatroEsferas.esfera1);
esfera2 = new Esfera(cuatroEsferas.esfera2);
esfera3 = new Esfera(cuatroEsferas.esfera3);
esfera4 = new Esfera(cuatroEsferas.esfera4);
}
public void CuatroPegs(Esfera e1, Esfera e2, Esfera e3, Esfera e4){
esfera1 = e1;
esfera2 = e2;
esfera3 = e3;
esfera4 = e4;
}
//-------------------------------------------------
// Metodos publicos
// void setColor ( int, char );
// char getColor ( int );
// String toString ( );
// int contandotPseudoHits ( CuastroEsferas );
// int contandotHits ( CuatroEsferas );
//------------------------------------------------
// Cambia el color del peg seleccionado
public void setColor (int queColor, char elColor) {
switch (queColor) {
case 1: esfera1.setColor(elColor);
break;
case 2: esfera2.setColor(elColor);
break;
case 3: esfera3.setColor(elColor);
break;
case 4: esfera4.setColor(elColor);
break;
default: System.err.println("No hay tal color!");
System.exit(1);
}
}
// Retorna el color de la esfera seleccionada
public char getColor (int queColor) {
char color = ' ';
switch (queColor) {
case 1: color = esfera1.getColor();
break;
case 2: color = esfera2.getColor();
break;
case 3: color = esfera3.getColor();
break;
case 4: color = esfera4.getColor();
break;
default: System.err.println("No hay tal color!g");
System.exit(2);
}
return color;
}
// Retorna la representacion string del objeto CuatroEsferas
public String toString (){
// este es un stub (recuerde que un stub es un metodo incompleto)
return esfera1.getColor()+" "+esfera2.getColor()+" "+esfera3.getColor()+" "+esfera4.getColor();
}
// Retorna el numero de pseudoHits entre el objeto y la suposición
public int contandoPseudoHits (CuatroEsferas esferaAdivina) {
// este es un stub (recuerde que un stub es un metodo incompleto)
int phit=0,i=0,j=0,C=4;
// int i=0,j=0;
//int C=4;
char f[]={getColor(1),getColor(2),getColor(3),getColor(4)};
for(i=0;i {
if(f[i]==esferaAdivina.getColor(i+1))
{
f[i]='*';
esferaAdivina.setColor(i+1, '*');
}
}
for(i=1;i {
for(j=1;j {
if(f[i-1]==esferaAdivina.getColor(j)&&f[i-1]!='*')
{
phit++;
esferaAdivina.setColor(j, '*');
break;
}
}
}
return phit;
}
// Retorna el numero de hits entre el objeto y la suposicion
public int contandoHits (CuatroEsferas esferaAdivina) {
// este es un stub (recuerde que un stub es un metodo incompleto)
int hit=0,i=0,C=4;
for(i=1; i {
if(esferaAdivina.getColor(i)==getColor(i))
{
hit++;
}
}
return hit;
}
}
//////////////////////////////////////////////////////////////////7
/**
* Definicion de los colores
* Esta clase esta completa y NO DEBE SER MODIFICADA
*/
class Esfera {
// Dato miembro
private char color;
// Constructores
public Esfera() {
color = 'R';
}
public Esfera(Esfera e) {
color = e.getColor();
}
public Esfera(char c) {
color = c;
}
//-------------------------------------------------
// Metodos Publicos:
// void setColor ( char );
// char getColor ( );
// String toString ( );
//------------------------------------------------
// Cambia el color de la esfera
public void setColor (char c) {
color = c;
}
// Retorna el color de la esfera
public char getColor () {
return color;
}
// Retorna la representacion string del ojbeto Esfera
public String toString () {
return "" + getColor();
}
}
////////////////////////////////////////////////////////////////////////
import java.text.DecimalFormat;
import java.util.Scanner;
public class MenteMestra {
public static void main(String[] arg)
{
/** df 01,02...10
* hit guarda hit
* cdx=cadenax=cadena ingresada
* cd=cadena clave
* cdg=cadena guardada (ingresada)
* OkSize para verificar correcto numero de char
* EsferasIni para inicialiar cdx con valores ingresados (cdg)
*/
DecimalFormat df = new DecimalFormat("00");
int i=0,hit;
String cdg="";
CuatroEsferas cdx = new CuatroEsferas();
CuatroEsferas cd = new CuatroEsferas();
cd.setColor(1,'M');
cd.setColor(2,'L');
cd.setColor(3,'A');
cd.setColor(4,'R');
System.out.println("\t\tCodgo secreto: "+cd);
do{
cdg=OkSize(cdg);
EsferasIni(cdg,cdx);
hit=cd.contandoHits(cdx);
System.out.println("\t\tSuposicion #"+df.format((i+1))+": "+cdx+" Hits: "+hit+"; PseudoHits = "+cd.contandoPseudoHits(cdx));
if(hit==4){
System.out.print("Felicitaciones! \nEspero que hayas disfrutado el juego. Adios!");
break;
}
i++;
}while(i<10 p="">
if(hit!=4)
{
System.out.println();
System.out.println("Lo siento, no lo logró. El código secreto es "+cd);
System.out.println("Espero que hayas disfrutado el juego. Adios!");
}
}
public static String OkSize(String s)
{
Scanner sc=new Scanner(System.in);
do{
System.out.print("Ingrese su suposcion: ");
s=sc.nextLine();
}while(s.length()!=4);
return s;
}
public static CuatroEsferas EsferasIni(String s, CuatroEsferas e4)
{
int i=0;
for(i=0;i {
e4.setColor(i+1, s.charAt(i));
}
return e4;
}
}
10>
*
* Fundamentos de Programacion 2: CuatroEsferas.java
*
*/
class CuatroEsferas {
static int MENOS =0;
// Datos miembro
private Esfera esfera1;
private Esfera esfera2;
private Esfera esfera3;
private Esfera esfera4;
// Constructores
public CuatroEsferas() {
esfera1 = new Esfera('R');
esfera2 = new Esfera('R');
esfera3 = new Esfera('R');
esfera4 = new Esfera('R');
}
public CuatroEsferas(CuatroEsferas cuatroEsferas) {
esfera1 = new Esfera(cuatroEsferas.esfera1);
esfera2 = new Esfera(cuatroEsferas.esfera2);
esfera3 = new Esfera(cuatroEsferas.esfera3);
esfera4 = new Esfera(cuatroEsferas.esfera4);
}
public void CuatroPegs(Esfera e1, Esfera e2, Esfera e3, Esfera e4){
esfera1 = e1;
esfera2 = e2;
esfera3 = e3;
esfera4 = e4;
}
//-------------------------------------------------
// Metodos publicos
// void setColor ( int, char );
// char getColor ( int );
// String toString ( );
// int contandotPseudoHits ( CuastroEsferas );
// int contandotHits ( CuatroEsferas );
//------------------------------------------------
// Cambia el color del peg seleccionado
public void setColor (int queColor, char elColor) {
switch (queColor) {
case 1: esfera1.setColor(elColor);
break;
case 2: esfera2.setColor(elColor);
break;
case 3: esfera3.setColor(elColor);
break;
case 4: esfera4.setColor(elColor);
break;
default: System.err.println("No hay tal color!");
System.exit(1);
}
}
// Retorna el color de la esfera seleccionada
public char getColor (int queColor) {
char color = ' ';
switch (queColor) {
case 1: color = esfera1.getColor();
break;
case 2: color = esfera2.getColor();
break;
case 3: color = esfera3.getColor();
break;
case 4: color = esfera4.getColor();
break;
default: System.err.println("No hay tal color!g");
System.exit(2);
}
return color;
}
// Retorna la representacion string del objeto CuatroEsferas
public String toString (){
// este es un stub (recuerde que un stub es un metodo incompleto)
return esfera1.getColor()+" "+esfera2.getColor()+" "+esfera3.getColor()+" "+esfera4.getColor();
}
// Retorna el numero de pseudoHits entre el objeto y la suposición
public int contandoPseudoHits (CuatroEsferas esferaAdivina) {
// este es un stub (recuerde que un stub es un metodo incompleto)
int phit=0,i=0,j=0,C=4;
// int i=0,j=0;
//int C=4;
char f[]={getColor(1),getColor(2),getColor(3),getColor(4)};
for(i=0;i
if(f[i]==esferaAdivina.getColor(i+1))
{
f[i]='*';
esferaAdivina.setColor(i+1, '*');
}
}
for(i=1;i
for(j=1;j
if(f[i-1]==esferaAdivina.getColor(j)&&f[i-1]!='*')
{
phit++;
esferaAdivina.setColor(j, '*');
break;
}
}
}
return phit;
}
// Retorna el numero de hits entre el objeto y la suposicion
public int contandoHits (CuatroEsferas esferaAdivina) {
// este es un stub (recuerde que un stub es un metodo incompleto)
int hit=0,i=0,C=4;
for(i=1; i
if(esferaAdivina.getColor(i)==getColor(i))
{
hit++;
}
}
return hit;
}
}
//////////////////////////////////////////////////////////////////7
/**
* Definicion de los colores
* Esta clase esta completa y NO DEBE SER MODIFICADA
*/
class Esfera {
// Dato miembro
private char color;
// Constructores
public Esfera() {
color = 'R';
}
public Esfera(Esfera e) {
color = e.getColor();
}
public Esfera(char c) {
color = c;
}
//-------------------------------------------------
// Metodos Publicos:
// void setColor ( char );
// char getColor ( );
// String toString ( );
//------------------------------------------------
// Cambia el color de la esfera
public void setColor (char c) {
color = c;
}
// Retorna el color de la esfera
public char getColor () {
return color;
}
// Retorna la representacion string del ojbeto Esfera
public String toString () {
return "" + getColor();
}
}
////////////////////////////////////////////////////////////////////////
import java.text.DecimalFormat;
import java.util.Scanner;
public class MenteMestra {
public static void main(String[] arg)
{
/** df 01,02...10
* hit guarda hit
* cdx=cadenax=cadena ingresada
* cd=cadena clave
* cdg=cadena guardada (ingresada)
* OkSize para verificar correcto numero de char
* EsferasIni para inicialiar cdx con valores ingresados (cdg)
*/
DecimalFormat df = new DecimalFormat("00");
int i=0,hit;
String cdg="";
CuatroEsferas cdx = new CuatroEsferas();
CuatroEsferas cd = new CuatroEsferas();
cd.setColor(1,'M');
cd.setColor(2,'L');
cd.setColor(3,'A');
cd.setColor(4,'R');
System.out.println("\t\tCodgo secreto: "+cd);
do{
cdg=OkSize(cdg);
EsferasIni(cdg,cdx);
hit=cd.contandoHits(cdx);
System.out.println("\t\tSuposicion #"+df.format((i+1))+": "+cdx+" Hits: "+hit+"; PseudoHits = "+cd.contandoPseudoHits(cdx));
if(hit==4){
System.out.print("Felicitaciones! \nEspero que hayas disfrutado el juego. Adios!");
break;
}
i++;
}while(i<10 p="">
if(hit!=4)
{
System.out.println();
System.out.println("Lo siento, no lo logró. El código secreto es "+cd);
System.out.println("Espero que hayas disfrutado el juego. Adios!");
}
}
public static String OkSize(String s)
{
Scanner sc=new Scanner(System.in);
do{
System.out.print("Ingrese su suposcion: ");
s=sc.nextLine();
}while(s.length()!=4);
return s;
}
public static CuatroEsferas EsferasIni(String s, CuatroEsferas e4)
{
int i=0;
for(i=0;i
e4.setColor(i+1, s.charAt(i));
}
return e4;
}
}
No hay comentarios:
Publicar un comentario