Giter VIP home page Giter VIP logo

tp_solitario_algo3's Introduction

TP_solitario_Algo3

Integrantes y padrones:

  • Mariana Noelia Juarez Goldemberg: 108441
  • Tania Friedenberger: 108823
  • Rodrigo Martin Rotondo Andrada: 109210

tp_solitario_algo3's People

Contributors

mariana-jg avatar taniafrieden avatar rodrigorotondo avatar

Watchers

Santiago Maraggi avatar  avatar

tp_solitario_algo3's Issues

Clase Juego

La clase juego se encarga de empezar el juego (recibe por parametro una instancia hija de solitario y lo inicializa dependiedo que clase de solitario sea)

DECIDIR si necesitamos realmente la clase juego o SOLITARIO sera el encargado de tener esos metodos.

SOLITARIO Y REGLAS DEBEN SER ABSTRACTAS!!!!!!

cambiarVisibilidad()

  • Hay que discutir la utilidad de esta funcion frente a una funcion ponerBocaArriba() y otra ponerBocaAbajo()

Corrector asignado

El corrector asignado es Santiago. Por favor denle acceso: smaraggi. Pueden cerrar este issue.

ColumnaColumna

  • Debemos ver si podemos crear una funcion que cuente los espacios entre estructuras para agregar columnas enteras

Ideas Reglas

A partir de la clase abstracta Reglas, definimos los siguientes metodos:

  • inicializar todas las estructuras necesarias para iniciar la partida (tablero, mazo, fundaciones, descarte, puntos)
  • metodos de movimientos validos (cambiar de lugar de columna en columna, agregar carta a la fundacion, pedir carta al deposito)

Tiene que estar creada la clase Klondike donde implementamos estos metodos.

Regla visibles

  • Cuando una carta es visible debemos poder moverlas, pero solo en ese caso, en caso de agregarles cartas, se debe hacer automáticamente

rompemos ley de demeter en PuedoAgregarCartasAColumna

  • se usan cartas que no son creadas por el metodo ni estan visibles en la firma del mismo, deberiamos romperlo en funciones mas chiquitas o bien reorganizar el codigo para que reciba solo la carta "importante" y todas las demas cartas la sigan

Quizás refactorizar fundación

-deberíamos implementar una fundacion de la cual se pueda robar y otra de la que no para respetar segregacion de la interfaz

Inicializar el juego en un estado

Inicializar el juego en un estado particular.

  • asignarle las columnas en un estado particular
  • fundacion con un estado particular
  • deposito y descarte en un estado particular ( quizas deposito vacio (?) )

Clase Klundike

La clase Klundike debe implementar los metodos de Reglas
Fundaciones [4] (0 cartas c/u)
Tablero [7 ColumnasDeJuego] {1, 2, 3, 4, 5, 6, 7}
//REGLAS en solitario Klondike
//1. en la columna de juego podemos mover cartas de 1 columna hacia otra
//2. las cartas en las columnas deberan ubicarse en orden DESCENDENTE y deben alternar su color
//3. tambien se pueden mover conjuntos SECUENCIALES de cartas entre columnas
//4. si hay alguna columna vacia, se puede ubicar una K o cualquier conjunto secuencial que comience con ella
//5. si quiero mas cartas, pido en el deposito (puedo ver hasta 3 cartas). Si presiono nuevamente se da vuelta
//al deposito y me entrega las cartas nuevamente

provisorio reglas

  • jugadaColumnaAAuxiliar() aproximadamente en la linea 57 hay un arreglo provisorio hasta que sepamos que hacer con las reglas

Clase StackDeCartas (mejora del Stack original aplicado a las Cartas)

La clase StackDeCartas es una pila especialmente hecha para cartas (la extendemos).
Todo lo que sea una 'apilamiento de cartas' extiende el comportamiento de StackDeCartas (fundaciones, columnas de juego, deposito y el descarte).

Por ejemplo: las clases Fundacion y ColumnaDeJuego agregan cartas de diferente manera (podemos usar metodos abstractos y que las mismas los implementen)

Metodos Primitivos StackDeCartas:

  • AgregarCarta (push)
  • MostrarCarta (peek)
  • SacarUltimaCarta (pop)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.