Java - Gregorian Calendar

 
Vista:
sin imagen de perfil

Gregorian Calendar

Publicado por Fer (10 intervenciones) el 06/04/2014 11:15:26
Tengo que realizar el siguiente programa para la universidad y me gustaria que me ayudar a crear el atributo encargado de guardar la fecha del sorteo
GRACIAS




Escribir un programa que simule el juego de la lotería Primitiva y compruebe las
apuestas de sus jugadores.

Se crearán dos clases una que representa la Primitiva y otra a los jugadores:
 La clase Primitiva tendrá dos atributos, uno encargado de guardar la fecha del
sorteo (GregorianCalendar) y otro para generar la combinación ganadora (seis
enteros al azar entre el 1 y el 49 sin repetición).
 La clase Jugador se encargará de almacenar los datos de cada jugador,
incluyendo el NIF (String), nombre (String), teléfono (int) y su apuesta (seis
enteros entre el 1 y el 49 sin repetición).

Para la representación de la apuesta de un jugador y la combinación ganadora se pueden
utilizar o arrays o ArrayList.

La clase Primitiva debe tener al menos un método “sortear” que generará la
combinación ganadora y otro método “comprobar” que se debe encargar de comprobar
los aciertos de las apuestas de los jugadores, al que se le pase como parámetro un objeto
jugador y nos devuelva el número de aciertos. Además hay que escribir otro método
auxiliar “imprimir” que permita imprimir los datos de la combinación ganadora y los
datos y aciertos del jugador. El resultado del programa podría ser como:

“Datos del jugador” + Apuesta: 22, 25, 31, 38, 41, 49
Combinación ganadora: 8, 14, 22, 23, 30, 41
Número de aciertos: 2

Crear una clase de prueba con método main donde se instancien objetos de tipo
Primitiva y jugadores.

PROGRAMA

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
package loteria;
 
import java.io.IOException;
import java.util.Random;
import java.util.Scanner;
 
public class Primitiva {
 
        private static String combinacionIntroducida ;
 
	private static int combinacionIntro [] = new int [ 6 ] ;
	private static int combinacionGanadora [] = new int [ 6 ] ;
 
	private static Scanner entrada = new Scanner ( System . in ) ;
 
	private static boolean incorrecto = true ;
	private static boolean numCompletos = false ;
 
	public static void obtenerCombinacion ()
	{
		System . out . println ( "\nIngrese 6 numeros separados por comas ( rango -> 1 - 46 ) : " ) ;
		combinacionIntroducida = entrada . nextLine () ;
		combinacionIntroducida = String . format ( "%s" , combinacionIntroducida + "," ) ;
	}
 
	public static void jugar ()
	{
		do
		{
			try
			{
				obtenerCombinacion () ;
				convertir () ;
				incorrecto = false ;
 
				if ( ! numCompletos )
					System . out . println ( "\nDebe ingresar 6 numeros!\n " ) ;
 
				else if ( repetidoIntro () )
				{
					System . out . println ( "\nDebe ingresar 6 numeros distintos! \n" ) ;
					incorrecto = true ;
				}
 
			}
			catch ( NumberFormatException exepcion )
			{
				System . out . println ( "\nDebe ingresar datos correctos! \n" ) ;
				incorrecto = true ;
			}
			catch ( ArrayIndexOutOfBoundsException excepcion )
			{
				System . out . println ( "\nDebe ingresar 6 numeros!\n " ) ;
				incorrecto = true ;
			}
		}
		while ( incorrecto || ! numCompletos ) ;
 
		generarCombinacion () ;
		imprimir () ;
		comparar () ;
 
	}
 
	public static void convertir () throws NumberFormatException
	{
		String num = "" ;
		int pos = 0 ;
 
		for ( int i = 0 ; i < combinacionIntroducida . length () ; i ++ )
		{
 
			if ( combinacionIntroducida . charAt ( i ) != ',' )
			{
				num = String . format ( "%s" , num + combinacionIntroducida . charAt ( i ) ) ;
			}
			else if ( combinacionIntroducida . charAt ( i ) == ',' )
			{
				num = num . trim () ;
 
				int numero = Integer . parseInt ( num ) ;
 
				if ( numero > 41 || numero < 1 )
				{
					throw new NumberFormatException () ;
				}
 
				combinacionIntro [ pos ] = Integer . parseInt ( num ) ;
				pos ++ ;
 
				if ( pos == 6 )
					numCompletos = true ;
				num = "" ;
			}
		}
	}
 
	public static void generarCombinacion ()
	{
		Random random = new Random();
 
		for ( int i = 0 ; i < 6 ; i ++ )
		{
			int num ;
			do
			{
				num = ( random . nextInt ( 49 ) + 1 ) ;
			}
			while ( repetido ( num ) ) ;
			combinacionGanadora [ i ] = num ;
		}
	}
 
	public static boolean repetido ( int num )
	{
		for ( int ele : combinacionGanadora )
		{
			if ( ele == num )
			{
				return true ;
			}
		}
 
		return false ;
	}
 
	private static boolean repetidoIntro ()
	{
		for ( int i = 0 ; i < 6 ; i ++ )
		{
			for ( int j = i + 1 ; j < 6 ; j ++ )
			{
				if ( combinacionIntro [ i ] == combinacionIntro [ j ] )
					return true ;
			}
		}
 
		return false ;
	}
 
	public static void comparar ()
	{
		int aciertos = 0 ;
 
		for ( int combi : combinacionGanadora )
			for ( int introdu : combinacionIntro )
				if ( combi == introdu )
					aciertos ++ ;
 
		if( aciertos != 6 )
			System . out . println ( "\n Numero de aciertos = " + aciertos ) ;
		else if ( aciertos == 6 )
			System . out . println ( "\n\n USTED GANO!\n\n " ) ;
	}
 
	public static void imprimir ()
	{
		System . out . print ( "\n Combinacion Introducida: " ) ;
		for ( int el : combinacionIntro )
			System . out. print ( el + " " ) ;
 
		System . out . print ( "\n Combinacion Ganadora: " ) ;
		for ( int ele : combinacionGanadora )
			System . out. print ( ele + " " ) ;
	}
 
	public static void main ( String args [] )
	{
		jugar () ;
	}
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder