Skip to content

Commit b92c27e

Browse files
committed
Enhance Factory pattern examples in Readme.md with detailed scenarios for ice cream and monster battle simulations
1 parent c8df618 commit b92c27e

File tree

1 file changed

+124
-20
lines changed

1 file changed

+124
-20
lines changed

content/sesion10/Readme.md

Lines changed: 124 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -985,37 +985,141 @@ psg-oop-2025/
985985

986986
---
987987

988-
1. Utilizando el patron Factory
988+
1. Utilizando el patrón **Factory**
989989

990-
```markdown
991-
En una heladería, los clientes pueden pedir helado de vainilla o chocolate.
992-
Puedes pedir en cono o en vaso los helados.
993-
El encargado usa la máquina adecuada para preparar cada sabor.
990+
En una heladería, los clientes pueden pedir helados de **vainilla** o **chocolate**.
991+
Además, pueden elegir si desean su helado en **cono** o en **vaso**.
992+
993+
El encargado utiliza la **máquina adecuada** para preparar cada sabor:
994+
995+
- La *máquina de vainilla* solo prepara helados de vainilla.
996+
- La *máquina de chocolate* solo prepara helados de chocolate.
997+
998+
Todos los helados comparten características en común:
999+
- Se pueden **comer**.
1000+
- Tienen un **envase** (cono o vaso).
1001+
1002+
El sistema debe permitir al usuario realizar pedidos de helado mediante un **Factory**, y escribir `"salir"` para terminar el proceso.
1003+
1004+
*(1/4)*
1005+
1006+
---
1007+
1008+
- Los helados se representan como:
9941009

995-
La máquina de vainilla solo prepara helados de vainilla.
996-
La máquina de chocolate solo prepara helados de chocolate.
1010+
`"[sabor] 🍦 en [envase]"`
9971011

998-
Todos los helados se pueden comer y tienen un envase.
1012+
- El menú de opciones se representa como:
1013+
1014+
```text
1015+
🍨 Pedidos de Helado 🍨
1016+
1. Vainilla en Cono
1017+
2. Vainilla en Vaso
1018+
3. Chocolate en Cono
1019+
4. Chocolate en Vaso
9991020
Escribe "salir" para terminar.
10001021
```
10011022

1023+
*(2/4)*
1024+
10021025
---
10031026

1004-
2. Utilizando el patron Factory
1027+
El sistema debe permitir:
1028+
1029+
Crear helados mediante una **fábrica**
1030+
1031+
Representar cada helado en el formato especificado.
1032+
1033+
Registrar varios pedidos hasta que el usuario escriba "salir".
1034+
1035+
*(3/4)*
1036+
1037+
---
1038+
1039+
Instrucciones:
1040+
1041+
- Realiza el **análisis** y **diagrama de clases** para las clases `Helado`, `HeladoVainilla`, `HeladoChocolate`, `Maquina`, `MaquinaVainilla`, `MaquinaChocolate` en `ejercicio_01.md`
1042+
- Escribe el código en Python implementando el patrón Factory en `ejercicio_01.py`
1043+
- Prueba varios pedidos de helado para verificar el correcto funcionamiento
1044+
1045+
*(4/4)*
1046+
1047+
---
1048+
1049+
2. Utilizando el patrón **Factory**
1050+
1051+
Simulador de Batalla de Monstruos
1052+
1053+
Dos jugadores pueden elegir un **monstruo** para luchar.
1054+
Cada jugador selecciona uno de los siguientes tipos:
1055+
1056+
- **Dragón**
1057+
- **Zombi**
1058+
- **Vampiro**
1059+
1060+
*(1/5)*
1061+
1062+
---
1063+
1064+
Cada monstruo tiene fortalezas y debilidades:
10051065

10061066
```markdown
1007-
Simulador de batalla de monstruos
1008-
Dos jugadores pueden elegir un monstruo para luchar.
1009-
Cada jugador selecciona un monstruo: dragón, zombi o vampiro.
1010-
Donde cada uno tiene debilidades contra otros monstruos.
1011-
- Dragon: Fuerte contra Zombi, débil contra Vampiro, igual contra Dragón.
1012-
- Zombi: Fuerte contra Vampiro, débil contra Dragón, igual contra Zombi.
1013-
- Vampiro: Fuerte contra Dragón, débil contra Zombi, igual contra Vampiro.
1014-
1015-
Muestra el resultado de la batalla.
1016-
Si alguno escribir “salir” se termina el juego.
1067+
- Dragón:
1068+
- Fuerte contra Zombi
1069+
- Débil contra Vampiro
1070+
- Igual contra Dragón
1071+
- Zombi:
1072+
- Fuerte contra Vampiro
1073+
- Débil contra Dragón
1074+
- Igual contra Zombi
1075+
- Vampiro:
1076+
- Fuerte contra Dragón
1077+
- Débil contra Zombi
1078+
- Igual contra Vampiro
1079+
```
1080+
1081+
El simulador debe determinar el **resultado de la batalla** entre los monstruos elegidos, si alguno de los jugadores escribe `"salir"`, el juego termina.
1082+
1083+
*(2/5)*
1084+
1085+
---
1086+
1087+
1088+
Los monstruos se representan como:
1089+
1090+
`"[monstruo] 🧟‍♂️ listo para luchar"`
1091+
1092+
El menú de selección se representa como:
1093+
1094+
```text
1095+
🧩 Selección de Monstruos 🧩
1096+
Jugador 1: Elige tu monstruo (dragón/zombi/vampiro):
1097+
Jugador 2: Elige tu monstruo (dragón/zombi/vampiro):
1098+
Escribe "salir" para terminar.
10171099
```
10181100

1101+
*(3/5)*
1102+
1103+
---
1104+
1105+
El sistema debe permitir:
1106+
1107+
- Crear monstruos mediante una **fábrica**
1108+
- Representar cada monstruo en el formato especificado.
1109+
- Determinar el resultado de la batalla según las fortalezas y debilidades.
1110+
- Registrar varias batallas hasta que un jugador escriba "salir".
1111+
1112+
*(4/5)*
1113+
1114+
---
1115+
1116+
Instrucciones:
1117+
1118+
- Realiza el **análisis** y **diagrama de clases** para las clases `Monstruo`, `Dragon`, `Zombi`, `Vampiro`, `Spawner`, `SpawnerDragon`, `SpawnerZombi`, `SpawnerVampiro` en `ejercicio_02.md`
1119+
- Escribe el código en Python implementando el patrón Factory en `ejercicio_02.py`
1120+
- Prueba las batallas entre diferentes monstruos para verificar el correcto funcionamiento
1121+
1122+
*(5/5)*
10191123

10201124
---
10211125
<!-- .slide: data-background-image="../../content/psg-bg-dark.png" data-background-size="100%"-->
@@ -1026,7 +1130,7 @@ Si alguno escribir “salir” se termina el juego.
10261130
<br>
10271131
<br>
10281132

1029-
[![GitHub](../../content/github_logo.png) <!-- .element width="20%"-->](https://github.com/python-la-paz/python-study-group-oop/content/sesion10)
1133+
[![GitHub](../../content/github_logo.png) <!-- .element width="20%"-->](https://github.com/python-la-paz/python-study-group-oop/tree/main/content/sesion10)
10301134

10311135
Repositorio de la Sesión
10321136

0 commit comments

Comments
 (0)