Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reto 003 #93

Open
wants to merge 72 commits into
base: entrega-003
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
47fe353
Creacion del tiempo
Feb 10, 2024
a320856
Merge branch 'main' of https://github.com/Alejandrojuarez0105/23-24-prg2
Feb 10, 2024
d658126
Se agrega la llegada de clientes
Feb 11, 2024
85da47f
Corrección de commit anterior e implementación de items
Feb 11, 2024
e23f332
Merge branch 'mmasias:main' into main
Alejandrojuarez0105 Feb 11, 2024
ae99528
Vuelve a 0
Feb 12, 2024
ddc44c3
Merge branch 'main' of https://github.com/Alejandrojuarez0105/23-24-prg2
Feb 12, 2024
db4db39
Avance del tiempo
Feb 12, 2024
c7c03ef
Clientes
Feb 12, 2024
f88c2f0
Se agrega 1 caja
Feb 12, 2024
155be74
4 cajas
Feb 12, 2024
f2f5797
Reto base terminado
Feb 12, 2024
b7d3bb9
Ajuste de tiempo y primer reto extendido
Feb 12, 2024
d782d40
Limpiar pantalla, linea divisora y finalizados todos los retos extend…
Feb 12, 2024
8c6707e
Correcion de nombre del codigo
Feb 12, 2024
2ee3f9e
Rename carrefour.java to Carrefour.java
Alejandrojuarez0105 Feb 12, 2024
e3c4131
Primer reto ampliado
Feb 12, 2024
df77e59
Merge branch 'main' of https://github.com/Alejandrojuarez0105/23-24-prg2
Feb 12, 2024
c1e5c42
Bienvenida y clientes
Feb 12, 2024
ebe8705
Se ajustan los items
Feb 13, 2024
82f7441
In english please
Feb 13, 2024
caa6899
Final
Feb 13, 2024
a8d0f72
Implementación inicial
mmasias Mar 5, 2024
3553746
Update aDiaDeHoy.md
mmasias Mar 5, 2024
41a199d
Merge branch 'mmasias:main' into main
Alejandrojuarez0105 Mar 7, 2024
6160df1
Reto 003
Mar 7, 2024
4b57b83
Update Cliente.java
mmasias Mar 8, 2024
8c49f1e
Update Mesa.java
mmasias Mar 8, 2024
1fd505a
Update Reserva.java
mmasias Mar 8, 2024
90500e2
Update Restaurante.java
mmasias Mar 8, 2024
450d6ea
Renombrado de archivo y mejoras en documentación
mmasias Mar 14, 2024
a7391aa
Reorganización de métodos en vista pública de intervalo
mmasias Mar 15, 2024
6da539f
Merge branch 'mmasias:main' into main
Alejandrojuarez0105 Mar 18, 2024
169ddf0
Update aDiaDeHoy.md
mmasias Mar 19, 2024
185938b
Publico/Privado - Clase/Objeto
mmasias Mar 19, 2024
3fb41b0
Update vistaPublicaClasesEjemplos.md
mmasias Mar 19, 2024
c86b20b
Agrega clase Intervalo para rangos numéricos
mmasias Mar 20, 2024
a73712b
Update README.md
mmasias Mar 24, 2024
386f43c
Update README.md
mmasias Mar 27, 2024
98e4499
Merge branch 'mmasias:main' into main
Alejandrojuarez0105 Apr 8, 2024
197bdc6
Update vistaPrivadaClases.md
mmasias Apr 11, 2024
f03b0aa
🤔
mmasias Apr 11, 2024
8aca53a
Actualización de temario completado
mmasias Apr 22, 2024
afdd5f8
Update README.md
mmasias Apr 23, 2024
d79b1bf
Actualización del temario y ejemplo HOOD
mmasias Apr 25, 2024
f758138
Actualización de enlace al repo definitivo
mmasias Apr 26, 2024
d765069
Update README.md
mmasias Apr 26, 2024
fa4930c
Update README.md
mmasias Apr 26, 2024
ddf346e
Merge branch 'mmasias:main' into main
Alejandrojuarez0105 Apr 29, 2024
9571d0b
Creación de la primera clase
Apr 29, 2024
1a875f1
Merge branch 'main' of https://github.com/Alejandrojuarez0105/23-24-prg2
Apr 29, 2024
77c8dff
Creación, implementación, entre otros
Apr 29, 2024
43e0114
Reto base terminado
Apr 29, 2024
e512cba
Detalles
Apr 29, 2024
cfebd57
🧠++
mmasias May 6, 2024
e7f63ed
🧠++
mmasias May 6, 2024
38f0af0
Update miembrosClase.md
mmasias May 7, 2024
fd7ed3a
MdC++
mmasias May 7, 2024
27b71c2
MdC#
mmasias May 7, 2024
53a78e5
Update miembrosClase.md
mmasias May 10, 2024
7fe9cef
Update miembrosClase.md
mmasias May 10, 2024
bd3b9ea
Link a los tres juegos hechos: tictactoe, klondike, 21
mmasias May 10, 2024
05c764b
To heir is human
mmasias May 14, 2024
201a401
Toheir is human
mmasias May 14, 2024
848f9b2
Merge branch 'mmasias:main' into main
Alejandrojuarez0105 May 14, 2024
1110636
Update herencia.md
mmasias May 14, 2024
7cf13a8
fix typo
mmasias May 14, 2024
8bdfdb2
Merge branch 'main' of https://github.com/mmasias/23-24-prg2
mmasias May 14, 2024
d08935a
fix typo
mmasias May 14, 2024
d9d46f6
Merge branch 'mmasias:main' into main
Alejandrojuarez0105 Jun 11, 2024
da287e7
Update README.md
mmasias Jun 12, 2024
b402b50
Merge branch 'mmasias:main' into main
Alejandrojuarez0105 Jun 13, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ Repo de materiales y proyectos de la asignatura **Programación II** del [Grado
- Evaluaciones
- Evaluación continua: [Retos!](evaluaciones/retos/README.md)
- Exámenes
- Parcial: Enunciado | Repositorio de trabajo y entrega.
- Final: Enunciado | Repositorio de trabajo y entrega.
- Parcial: [Enunciado](https://github.com/mmasias/23-24-prg2-ep) | [Repositorio de entrega](https://github.com/mmasias/23-24-prg2-ep).
- Final: Enunciado | [Repositorio de trabajo y entrega](https://classroom.github.com/a/sE-EGMrx)

> ***NOTA:*** Los repositorios de entrega de exámenes estarán disponible días antes del examen. El repositorio con el enunciado del examen se activa al inicio del examen y permitirá entregas hasta la finalización del mismo.

Expand All @@ -28,6 +28,6 @@ Repo de materiales y proyectos de la asignatura **Programación II** del [Grado

NOTA: *Algunos enlaces podrían requerir **credenciales de acceso al campus** o a otros espacios colaborativos.*

- Hoja de asistencia et-al
- [Hoja de asistencia et-al](https://docs.google.com/spreadsheets/d/1kzA5eHJtHyxrxYVbTrbaM8zTaQAkO99sw1cy2aXucuw/edit?usp=sharing)
- Libro de la asignatura
- [U.Santa Tecla](https://github.com/USantaTecla-0-general/3-publicaciones), Prof. Dr. Luis Fernández
67 changes: 67 additions & 0 deletions documentos/preSRC/Cinema.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
```java
package documentos.preSRC;

class Cinema {

public Cinema() {}

public void showMovies() {}
public Ticket buyTicket(Moviegoer moviegoer, Movie movie) {
return
}
}

class Movie {

public Movie(String title, String director, int length) {}

public String getTitle() {
return}
public String getDirector() {
return
}
public int getLength() {
return
}
}

class Ticket {

public Ticket(Moviegoer moviegoer, Movie movie) {}

public Movie getMovie() {
return
}
public Moviegoer getgetMoviegoer() {
return
}
}

class Moviegoer {

public Moviegoer(String name) {}
public String getName() {
return
}
}

class Simulation {
public static void main(String[] args) {

Cinema cinesaSantander = new Cinema();

Movie interstellar = new Movie("Interstellar", "Christopher Nolan", 169);
Movie lordOfTheRings = new Movie("El Señor de los Anillos", "Peter Jackson", 178);

cinesaSantander.showMovies();

Moviegoer rogerWilco = new Moviegoer("Juan");
Moviegoer guybrushThreepwood = new Moviegoer("Pedro")


Ticket ticket1 = cinesaSantander.buyTicket(rogerWilco, interstellar);
Ticket ticket2 = cinesaSantander.buyTicket(guybrushThreepwood, lordOfTheRings);

}
}
```
Empty file.
60 changes: 60 additions & 0 deletions entregas/juarezAlejandro/PPT/src/Juego.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package src;

public class Juego {
private Jugador jugador1;
private Jugador jugador2;
private int empates;

public Juego(String nombreJugador1, String nombreJugador2) {
jugador1 = new Jugador(nombreJugador1);
jugador2 = new Jugador(nombreJugador2);
}

public void jugar() {
jugador1.elegirOpcion();
jugador2.elegirOpcion();
}

public void determinarGanador() {
if (jugador1.getOpcion() == jugador2.getOpcion()) {
System.out.println("Empate!");
empates++;
} else if ((jugador1.getOpcion() == Jugador.Opcion.Piedra && jugador2.getOpcion() == Jugador.Opcion.Tijera) ||
(jugador1.getOpcion() == Jugador.Opcion.Papel && jugador2.getOpcion() == Jugador.Opcion.Piedra) ||
(jugador1.getOpcion() == Jugador.Opcion.Tijera && jugador2.getOpcion() == Jugador.Opcion.Papel)) {
System.out.println(jugador1.getNombre() + " gana!");
jugador1.incrementarVictorias();
} else {
System.out.println(jugador2.getNombre() + " gana!");
jugador2.incrementarVictorias();
}
}

public void mostrarResultado() {
System.out.println("[" + jugador1.getNombre() + "] saca [" + jugador1.getOpcion() + "] / ["
+ jugador2.getNombre() + "] saca [" + jugador2.getOpcion() + "]");
System.out.println("Resultados: ");
System.out.println(jugador1.getNombre() + ": " + jugador1.getVictorias() + " victorias");
System.out.println(jugador2.getNombre() + ": " + jugador2.getVictorias() + " victorias");
System.out.println("Empates:" + empates);
System.out.println("-".repeat(50));
}

public void mostrarInicio() {
System.out.println(
".______ __ _______ _______ .______ ___ .______ ___ .______ _______ __ ______ .___________. __ __ _______ .______ ___ ");
System.out.println(
"| _ \\ | | | ____|| \\ | _ \\ / \\ | _ \\ / \\ | _ \\ | ____|| | / __ \\ | || | | | | ____|| _ \\ / \\ ");
System.out.println(
"| |_) | | | | |__ | .--. || |_) | / ^ \\ | |_) | / ^ \\ | |_) | | |__ | | | | | | `---| |----`| | | | | |__ | |_) | / ^ \\ ");
System.out.println(
"| ___/ | | | __| | | | || / / /_\\ \\ | ___/ / /_\\ \\ | ___/ | __| | | | | | | | | | | .--. | | | __| | / / /_\\ \\ ");
System.out.println(
"| | | | | |____ | '--' || |\\ \\----. / _____ \\ __ | | / _____ \\ | | | |____ | `----. | `--' | | | | | | `--' | | |____ | |\\ \\----. / _____ \\ ");
System.out.println(
"| _| |__| |_______||_______/ | _| `._____|/__/ \\__\\ (_ ) | _| /__/ \\__\\ | _| |_______||_______| \\______/ |__| |__| \\______/ |_______|| _| `._____|/__/ \\__\\ ");
System.out.println(
" |/ ");
}

}
48 changes: 48 additions & 0 deletions entregas/juarezAlejandro/PPT/src/Jugador.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package src;

import java.util.Scanner;

public class Jugador {

private String nombre;
private Opcion opcion;
private int victorias;

public Jugador(String nombre) {
this.nombre = nombre;
}

public String getNombre() {
return nombre;
}

public void elegirOpcion() {
Scanner scanner = new Scanner(System.in);
System.out.println(nombre + " elige (1: Piedra, 2: Papel, 3: Tijera): ");
int opcionElegida = scanner.nextInt();
Opcion[] opciones = { Opcion.Piedra, Opcion.Papel, Opcion.Tijera };

if (opcionElegida >= 1 && opcionElegida <= 3) {
opcion = opciones[opcionElegida - 1];
} else {
System.out.println("Opción incorrecta");
elegirOpcion();
}
}

public Opcion getOpcion() {
return opcion;
}

public void incrementarVictorias() {
victorias++;
}

public int getVictorias() {
return victorias;
}

public enum Opcion {
Piedra, Papel, Tijera
}
}
13 changes: 13 additions & 0 deletions entregas/juarezAlejandro/PPT/src/Ppt.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package src;

public class Ppt {
public static void main(String[] args) {
Juego juego = new Juego("Bill Gates", "Steve Jobs");
juego.mostrarInicio();
while (true) {
juego.jugar();
juego.determinarGanador();
juego.mostrarResultado();
}
}
}
20 changes: 20 additions & 0 deletions entregas/juarezAlejandro/PPT/src/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Piedra papel o tijera

## Inicio

1. Se crea la clase Ppt (Piedra, papel o tijera) en donde el juego (de manera redundante) solo se encarga del juego como tal (iniciar)

---

2. Partiendo de esa misma idea, ¿el juego que tiene que llevar?
- Tiene que llevar 2 jugadores
- Determinar quien gana, pierde o si se da un empate
- Iniciar juego (aunque ya se definió en Ppt como jugar)

---

3. Siguiendo con la misma idea del Juego, ¿Que tiene que llevar el jugador?
- Nombre
- Opciones

---
Empty file.
149 changes: 149 additions & 0 deletions entregas/juarezAlejandro/reto-001/Carrefour.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
import java.util.Scanner;

class Carrefour {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
final double OPENING_HOUR = 9.0;
final double CLOSING_TIME = 21.0;
final double MINUTES = 1.0 / 60.0;
double attending = OPENING_HOUR;
boolean working = true;
int minutesWithoutLine = 0;
int totalClientsServed = 0;
int totalItemsSold = 0;

int row = 0;
final double CUSTOMER_ARRIVAL_PROBABILITY = 0.6;
final int AMOUNT_ATMS = 4;
int [] box = new int [AMOUNT_ATMS];
final int MAXIMUM_CUSTOMER_ITEMS = 15;
final int MINIMUM_CUSTOMER_ITEMS = 5;
boolean customerExtraBox = false;
int extraBoxItems = 0;


boolean welcome = false;

do {
if (attending == OPENING_HOUR && !welcome) {
printWelcome();
welcome = true;
System.out.println("Presione enter para iniciar");
scanner.nextLine();
cleanScreen();
}

cleanScreen();
attending += MINUTES;
int hours = (int) attending;
int minutes = (int) ((attending - hours) * 60);

System.out.println("Hora actual: " + hours + ":" + minutes);
printLine();
working = attending < CLOSING_TIME;
if (row == 0){
minutesWithoutLine++;
}
if (Math.random() < CUSTOMER_ARRIVAL_PROBABILITY) {
row = row + 1;
}

if (customerExtraBox){
if (extraBoxItems > 0) {
extraBoxItems--;
if (extraBoxItems == 0){
System.out.println("La caja extra está vacía.");
customerExtraBox = false;
} else {
System.out.print("Un cliente se dirige a la caja extra con ");
for (int drawingExtraItems = 0; drawingExtraItems < extraBoxItems; drawingExtraItems++){
System.out.print("[#]");
}
System.out.println(" items. Lo que es igual a [" + extraBoxItems + "] items.");
}
}
}

if (row > 15 && !customerExtraBox) {
for (int extraBox = 0; extraBox < AMOUNT_ATMS; extraBox++) {
if (box[extraBox] <= 0 && !customerExtraBox) {
box[extraBox] = (int) (Math.random() * (MAXIMUM_CUSTOMER_ITEMS - MINIMUM_CUSTOMER_ITEMS)) + MINIMUM_CUSTOMER_ITEMS;
row--;
totalClientsServed++;
totalItemsSold += box[extraBox];
customerExtraBox = true;
extraBoxItems = box[extraBox];
}
}
}

for (int attend = 0; attend < AMOUNT_ATMS; attend++){
if (box[attend] <= 0 && row > 0){
row --;
totalClientsServed++;
int itemsSale = (int) (Math.random() * (MAXIMUM_CUSTOMER_ITEMS - MINIMUM_CUSTOMER_ITEMS)) + MINIMUM_CUSTOMER_ITEMS;
totalItemsSold += itemsSale;
box[attend] = itemsSale;
} else if (box[attend] > 0){
box[attend]--;
}

if (box[attend] > 0){
System.out.print("Caja " + (attend + 1) + " atiende al cliente y le quedan ");
for (int drawingItems = 0; drawingItems < box[attend]; drawingItems++){
System.out.print("[#]");
}
System.out.println(" items. Lo que es igual a que le quedan [" + box[attend] + "] items.");
} else {
System.out.println("Caja " + (attend + 1) + " se encuentra vacia.");
}
}
printLine();
System.out.println("Cantidad de clientes en fila: " + row);
printPerson(row);
printLine();
scanner.nextLine();
} while (working);

System.out.println("RESUMEN");
printSummaryLine();
System.out.println("Cantidad de minutos en los que no hubo nadie en la fila: " + minutesWithoutLine);
System.out.println("Cantidad de clientes que permanecieron en fila a la hora de cierre: " + row);
System.out.println("Al finalizar el día se atendieron " + totalClientsServed + " clientes.");
System.out.println("En total se vendieron " + totalItemsSold + " items.");
printSummaryLine();
scanner.close();
}

static void printPerson(int row) {
int number = row / 10 + 1;
int repetition = row % 10;
do {
number--;
System.out.println(" O ".repeat(row = number != 0 ? 10 : repetition));
System.out.println(" /|\\".repeat(row = number != 0 ? 10 : repetition));
System.out.println(" / \\".repeat(row = number != 0 ? 10 : repetition));
System.out.println();
} while (number > 0);
}

static void printWelcome() {
System.out.println(" ______ ___ .______ .______ _______ _______ ______ __ __ .______ ");
System.out.println(" / | / \\ | _ \\ | _ \\ | ____|| ____| / __ \\ | | | | | _ \\ ");
System.out.println("| ,----' / ^ \\ | |_) | | |_) | | |__ | |__ | | | | | | | | | |_) | ");
System.out.println("| | / /_\\ \\ | / | / | __| | __| | | | | | | | | | / ");
System.out.println("| `----. / _____ \\ | |\\ \\----.| |\\ \\----.| |____ | | | `--' | | `--' | | |\\ \\----.");
System.out.println(" \\______|/__/ \\__\\ | _| `._____|| _| `._____||_______||__| \\______/ \\______/ | _| `._____|");
}
static void printSummaryLine() {
System.out.println("===========".repeat(7));
}
static void printLine(){
System.out.println("---------+".repeat(5));
}

static void cleanScreen() {
System.out.print("\033[H\033[2J");
System.out.flush();
}
}
13 changes: 13 additions & 0 deletions entregas/juarezAlejandro/reto-001/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Por el momento lo intentaré en español, luego lo iré cambiando a inglés
Si en algun momento, parece que su código lo copié es porque muchas veces necesitaba darme una idea de como seguir. Además que no se porque en el anterior commit parece que es su código el que subí cuando realmente, los cambios me aparecian guardados con mi código.

Debido a que el codigo en un momento sentia que no se entendía y no era lo suficientemente legible, mejor opte por volver a iniciarlo todo de 0, para que se pueda leer de mejor manera (además que ahora lo estoy intentando repasar con un esquema de flujo).

Intentaré una pequeña guía, sin embargo, intentaré hacerlo de otra forma.

Para el primer reto ampliado, seré sincero que no logré entender del todo la instrucción, así que lo realicé a como yo creia que era, así que cuando se llegan a más de 15 personas en la fila, una persona se va a la caja extre. A pesar de eso, el programa si realiza la cuenta de la caja extra, así que la caja funciona correctamente.

Intente arreglar el código para que fuera más bonito visualmete, sin embargo, por la manera en la que lo hice, muchas cosas no podia sacarlas. Además que por falta de tiempo no pude hacer otro código.


"Quisiera que las cosas con ella funcionaran, así como funciona este código." :(
Loading