CC10A03-Computación I – Auxiliar 1 – Viernes 30 de Abril 2004

 

1. (P1C11999)El juego de las piedras consiste en que dos jugadores contrincantes extraen de un monton de piedras hasta acabar con él . Pierde el jugador que extrae la última piedra. La regla es que un jugador sólo puede extraer 1, 2 o 3 piedras cada vez. El montón tiene inicialmente entre 10 y 40 piedras.

Escriba un programa que arbitre el juego de las piedras. Inicialmente debe generar aleatoriamente el número de piedras con la función random y mostrar el tamaño del montón colocando un * por cuantas piedras saca, mostrando a continuación en una línea de la pantalla el tamaño del nuevo montón. El programa debe señalar quién es el vencedor cuando se extrae la última piedra.

Un ejemplo del diálogo que debe mantener el programa con los jugadores es el siguiente:

            ***********

            Cuantas piedras saca el jugador 1? 3

            ********

            Cuantas piedras saca el jugador 2? 1

            *******

Cuantas piedras saca el jugador 1? 6

No puede sacar más de 3 piedras.

            Cuantas piedras saca el jugador 1? 3

            ****

            Cuantas piedras saca el jugador 2? 3

            *

Cuantas piedras saca el jugador 1? 0

Tiene que sacar al menos 1 piedra.

Cuantas piedras saca el jugador 1? 1

 

El ganador es el jugador 2. Felicitaciones!

 

Durante el juego, su programa debe verificar:

·           Que un jugador no saque más de 3 piedras.

·           Que un jugador saque al menos una piedra.

·           Que un jugador no saque más piedras de las que hay.

 

2. (P3C12002)La siguiente tabla muestra los métodos de una clase (Dia) que permite realizar operaciones con los días de una semana:

Encabezamiento

ejemplo

resultado

Dia(int x) // 1 £ x £ 7

Dia a = new Dia(1);

objeto que representa el día lunes

Dia mañana()

a.mañana()

objeto que representa el día de mañana

int comparar(Dia x)

a.comparar(b)

1 si los objetos son iguales (0 si distintos)

String nombre()

a.nombre()

“lunes” o “martes” o ... “domingo”

 

A)Utilice la clase anterior en un programa que muestre el calendario de un mes siguiendo el diálogo:

 

Ingrese cantidad de días del mes (1-31) : 31

Ingrese primer dia del mes (1-7) : 3

mi

ju

vi

sa

DO

lu

ma

mi

ju

vi

sa

DO

...

ju

vi

1

2

3

4

5

6

7

8

9

10

11

12

...

30

31

Nótese que:

-      los nombres de los días aparecen abreviados y separados por un espacio

-      los domingos se muestran en mayúsculas

-      los números de los días aparecen bajo la primera letra del nombre del día

B) Escriba la clase Dia, suponiendo la declaración: class Dia{ private int d; ...}