¿Como de sarrollar un programa...
Como desarrollar un programa java que permita a dos jugadores jugar a la cara y sello, un numero determinado de veces. El programa debe solicitar el nombre de cada jugador, y luego indicar a cual jugador le toca lanzar la mneda. Gana quien obtenga el mayor numero de aciertos al cabo de N(n>0)juagadas. Se utiliza el metodo Math.random() que genera un numero real de tip double entre 0 y 1.
Tu quieres una explicacion de como hacerlo o quieres el programa hecho?
de todas formas compila esto y hechale un vistaso:
import java.io.*;
class CaraSello
{
private String nombre_1,nombre_2;
private int bucles;
static double Turno;
public CaraSello()
{
nombre_1=null;
nombre_2=null;
Turno=0;
}
public static void main(String[] args)throws IOException
{
CaraSello jugar = new CaraSello();
int aciertos_cara=0,aciertos_sello=0;
System.out.print("Nombre Jugador CARA: ");
jugar.nombre_1=Lee.dato();
System.out.print("Nombre Jugador SLLO: ");
jugar.nombre_2=Lee.dato();
jugar.bucles=20; // VECES QUE SE HARAN LAS JUGADAS 20 significa que jugaran 10 veces cada uno
// Aleatorizar el primer turno
Turno=jugar.Azar();
System.out.println();
for(int i=0;i<jugar.bucles;i++)
{
String tmp=null;
if(Turno==1)
{
System.out.print(jugar.nombre_1+" presiona una tecla y pulsa ENTER para lanzar la Moneda ");
tmp=Lee.dato();
if(1==Azar())
{
aciertos_cara++;
}
}
else
{
System.out.print(jugar.nombre_2+" presiona una tecla y pulsa ENTER para lanzar la Moneda ");
tmp=Lee.dato();
if(2==Azar())
{
aciertos_sello++;
}
}
jugar.turno(); //cambiar el turno al siguiente jugador
}
System.out.println("Fin Jugadas");
System.out.println("nEl jugador "+jugar.nombre_1+" acerto: "+aciertos_cara+ " veces");
System.out.println("nEl jugador "+jugar.nombre_2+" acerto: "+aciertos_sello+ " veces");
if(aciertos_cara>aciertos_sello)
{
System.out.println("Gano "+jugar.nombre_1);
}
if(aciertos_cara<aciertos_sello)
{
System.out.println("Gano "+jugar.nombre_2);
}
if(aciertos_cara==aciertos_sello)
System.out.println("EMPATE");
}
static double turno()
{
if(Turno==1)
Turno=2;
else
Turno=1;
return Turno;
}
static double Azar()
{
double azar=0;
azar=Math.random()*2;
return Math.ceil(azar);
}
}
class Lee
{
private static InputStreamReader isr = new InputStreamReader(System.in);
private static PushbackReader flujoE = new PushbackReader(isr);
public static void limpiar()
{
int car = 0;
try
{
while (flujoE.ready()) flujoE.read(); // limpiar flujoE
}
catch(IOException e)
{
System.err.println("Error: " + e.getMessage());
}
}
public static String dato()
{
StringBuffer sdato = new StringBuffer();
int car = 0;
try
{
// Leer. La entrada finaliza al pulsar la tecla Entrar
while ((car = flujoE.read()) != 'r' && car != -1)
sdato.append((char)car);
limpiar();
}
catch(IOException e)
{
System.err.println("Error: " + e.getMessage());
}
if (car == -1) return null;
return sdato.toString(); // devolver el dato tecleado
}
}
de todas formas compila esto y hechale un vistaso:
import java.io.*;
class CaraSello
{
private String nombre_1,nombre_2;
private int bucles;
static double Turno;
public CaraSello()
{
nombre_1=null;
nombre_2=null;
Turno=0;
}
public static void main(String[] args)throws IOException
{
CaraSello jugar = new CaraSello();
int aciertos_cara=0,aciertos_sello=0;
System.out.print("Nombre Jugador CARA: ");
jugar.nombre_1=Lee.dato();
System.out.print("Nombre Jugador SLLO: ");
jugar.nombre_2=Lee.dato();
jugar.bucles=20; // VECES QUE SE HARAN LAS JUGADAS 20 significa que jugaran 10 veces cada uno
// Aleatorizar el primer turno
Turno=jugar.Azar();
System.out.println();
for(int i=0;i<jugar.bucles;i++)
{
String tmp=null;
if(Turno==1)
{
System.out.print(jugar.nombre_1+" presiona una tecla y pulsa ENTER para lanzar la Moneda ");
tmp=Lee.dato();
if(1==Azar())
{
aciertos_cara++;
}
}
else
{
System.out.print(jugar.nombre_2+" presiona una tecla y pulsa ENTER para lanzar la Moneda ");
tmp=Lee.dato();
if(2==Azar())
{
aciertos_sello++;
}
}
jugar.turno(); //cambiar el turno al siguiente jugador
}
System.out.println("Fin Jugadas");
System.out.println("nEl jugador "+jugar.nombre_1+" acerto: "+aciertos_cara+ " veces");
System.out.println("nEl jugador "+jugar.nombre_2+" acerto: "+aciertos_sello+ " veces");
if(aciertos_cara>aciertos_sello)
{
System.out.println("Gano "+jugar.nombre_1);
}
if(aciertos_cara<aciertos_sello)
{
System.out.println("Gano "+jugar.nombre_2);
}
if(aciertos_cara==aciertos_sello)
System.out.println("EMPATE");
}
static double turno()
{
if(Turno==1)
Turno=2;
else
Turno=1;
return Turno;
}
static double Azar()
{
double azar=0;
azar=Math.random()*2;
return Math.ceil(azar);
}
}
class Lee
{
private static InputStreamReader isr = new InputStreamReader(System.in);
private static PushbackReader flujoE = new PushbackReader(isr);
public static void limpiar()
{
int car = 0;
try
{
while (flujoE.ready()) flujoE.read(); // limpiar flujoE
}
catch(IOException e)
{
System.err.println("Error: " + e.getMessage());
}
}
public static String dato()
{
StringBuffer sdato = new StringBuffer();
int car = 0;
try
{
// Leer. La entrada finaliza al pulsar la tecla Entrar
while ((car = flujoE.read()) != 'r' && car != -1)
sdato.append((char)car);
limpiar();
}
catch(IOException e)
{
System.err.println("Error: " + e.getMessage());
}
if (car == -1) return null;
return sdato.toString(); // devolver el dato tecleado
}
}