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

README inicial del proyecto "Guess the Number" - JAVA #1532

Closed
wants to merge 19 commits into from

Conversation

vivieall
Copy link
Contributor

@vivieall vivieall commented Aug 21, 2023

Este PR draft introduce el proyecto "Guess the Number - Adivina el número", un juego interactivo diseñado para ayudar a las estudiantes a familiarizarse con Java y la programación orientada a objetos. En este borrador, se proporciona una descripción general del proyecto, incluyendo su propósito y cómo se juega. También se detallan las consideraciones generales y técnicas para la implementación del juego. Los objetivos de aprendizaje aún están pendientes de agregar.

El borrador incluye la estructura del índice y una descripción detallada de las clases propuestas para el juego, como GameLogic, Player y Computer, así como sus propósitos y métodos. Además, se presentan los criterios mínimos de aceptación del proyecto, que resumen lo que se espera lograr con el juego.

Este PR draft se crea para fomentar la colaboración y la revisión temprana de las ideas y la estructura del proyecto. ¡Espero sus comentarios y sugerencias para asegurarnos de que el proyecto siga en la dirección correcta!

PD. Commit respondiendo al issue 1500

Actualizado. Última versión del README

@merunga
Copy link
Collaborator

merunga commented Aug 24, 2023

@vivieall asegurate porfa de ejecutar npm run mdlint para asegurarte que el markdown cumpla con el formato necesario

Es un juego interactivo que se lleva a cabo en la terminal, en el que la jugadora y la computadora toman turnos para intentar adivinar un número aleatorio entre 1 y 100. Tras cada intento, se ofrece una pista que indica si la suposición fue demasiado alta, demasiado baja o acertada. El juego prosigue hasta que el número es correctamente adivinado por alguna de las dos participantes (computadora y usuaria).

## 3. Objetivos de aprendizaje

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vivieall aqui debemos crear un archivo project.yml con los OAs correspondientes de aqui

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

¡Realizado! Unicamente me percaté que hay un pequeñito bug en la identación aquí:

      - uml: 
        - class-diagram
      - abstraction
      - composition
      - interface
      - polimorphism 

Del resto todo ok, lo probé en mi local con dichos OA's y script generándose correctamente!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

y del inglés, que vendría a ser polymorphism .

- Se utilizará un número aleatorio entre 1 y 100 como número secreto.
- La jugadora y la computadora se turnarán para adivinar el número.
- Después de cada turno, se mostrará información sobre la suposición realizada.
- El juego terminará cuando se adivine el número.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- El juego terminará cuando se adivine el número.
- El juego terminará cuando se adivine el número. Se debe mostrar la lista de todos los intentos del la jugadora ganadora.

@vivieall pense en agregar este requerimiento para tener q usar algun collection

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

- El nombre del jugador (persona o computadora).
- La suposición que se hizo.
- Un mensaje que indique si la suposición fue demasiado alta, demasiado baja o correcta.
- El juego finalizará en cuanto la jugadora o la computadora acierte el número secreto.
Copy link
Collaborator

@merunga merunga Aug 24, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- El juego finalizará en cuanto la jugadora o la computadora acierte el número secreto.
- El juego finalizará en cuanto la jugadora o la computadora acierte el número secreto. Se debe mostrar un mensaje de fin del juego, asi como una lista todos los intentos realizados por la jugadora ganadora.

Comment on lines 119 to 124
## 5. Consideraciones técnicas

- El juego se llevará a cabo en la terminal haciendo uso de Java.
- La lógica del juego se basará en estructuras de control, incluyendo ciclos y sentencias condicionales.
- Se recomienda emplear funciones para segmentar el código y mejorar su legibilidad y mantenimiento.
- Es posible hacer uso de bibliotecas o paquetes adicionales para la generación de números aleatorios.
Copy link
Collaborator

@merunga merunga Aug 24, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

esto lo ves necesario @unjust ?

Comment on lines 80 to 103
+------------------+
| GameLogic |
+------------------+
|- randomNumber |
|------------------|
|+startGame() |
|+checkGuess(int) |
+------------------+

+--------------+
| Player |
+--------------+
|- name |
|--------------|
|+guess() |
|+getName() |
+--------------+
^
|
+--------------+
| Computer |
+--------------+
|+autoGuess() |
+--------------+
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Según la implementación propuesta algo asi debería ser el Class Diagram, no?

classDiagram
  class GuessTheNumberGame {
    - java.util.Random random$
    - int targetNumber$
    - Player player1
    - Player player2
    - checkGuess(int guess, Player player)$ boolean
    + main(String[] args)$

  }
  GuessTheNumberGame *-- Player
  Player <|-- HumanPlayer
  Player <|-- ComputerPlayer
  <<abstract>> Player
  class Player{
    -String name
    #Array~int~ guesses
    + makeGuess()* int
    + getName() String
    + getGuesses() Array~int~
  }
  class HumanPlayer {
    +makeGuess() int
  }
  class ComputerPlayer {
    -java.util.Random random
    +makeGuess() int
  }
Loading

Este es el codigo de mermaid para ese diagrama. Aca lo pueden ver en el editor de mermaid

classDiagram
  class GuessTheNumberGame {
    - java.util.Random random$
    - int targetNumber$
    - Player player1
    - Player player2
    - checkGuess(int guess, Player player)$ boolean
    + main(String[] args)$

  }
  GuessTheNumberGame *-- Player
  Player <|-- HumanPlayer
  Player <|-- ComputerPlayer
  <<abstract>> Player
  class Player{
    -String name
    #Array~int~ guesses
    + makeGuess()* int
    + getName() String
    + getGuesses() Array~int~
  }
  class HumanPlayer {
    +makeGuess() int
  }
  class ComputerPlayer {
    -java.util.Random random
    +makeGuess() int
  }

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

¡Súper! Lo he agregado al README como SVG. Por otro lado, hice una pequeña modificación, el diagrama de clases original utiliza Array~int~ para almacenar los intentos de la jugadora, lo cual es una estructura de datos, pero no es una implementación de la interfaz Collection en Java como tal. Ante ello, modifiqué el el campo Array~int~ guesses a ArrayList~Integer~ guesses . ¿Lo ves bien?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

la imagen debería se agnóstica de lenguaje de programación... quizás querramos usar el mismo proyecto para otro stack

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

¡Claro! Toda la razón, lo actualicé por el de aquí que está genérico:
image

¿qué les parece?

@unjust
Copy link
Contributor

unjust commented Jan 3, 2024

GUess the Number ya esta en la curricula

@unjust unjust closed this Jan 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants