UTNianos

Versión completa: [ConsultaS] TP Objetos - Smalltalk
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Bueno les soy completamente sincero, estoy en el horno con este TP, estuve adelantandome en otras materias y lo dejé de lado...

Link: Estanciero
https://dl.dropbox.com/u/24573189/Estanciero.docx
https://docs.google.com/file/d/0BzwCzyhk...edit?pli=1
Tengo que hacer toda la primer parte del TP, es decir hasta la página 3.

Por ahora lo que tengo es que tengo que crear las clases Provincia y Campo, donde las instancias de clase Provincia tienen colecciones del tipo Campo..
Pero no sé como pasarlo al programa!

Alguno para darme una mano? Confused Lo que pueda me viene bien! Muchas gracias!

EDIT: Agregué links a un word descargable y a un word para verlo online.
el link al PDF no funciona, o al menos yo no lo pude ver.

imagino que están trabajando con Pharo.

tenés que hacer exactamente lo que dijiste, crear 2 clases, y hacer que una de ellas tenga una variable de instancia que sea una colección, a donde van a ir a parar instancias de la otra clase.

antes de ir a los bifes (el lenguaje de programación), hacete un esquema en papel para entender lo que tenés que hacer y lo que querés. un modelo del problema. si ya tenés eso listo, llevarlo al lenguaje no debería representar mayores complicaciones.
.
che, ahí me anduvo el PDF.
un cago de risa el enunciado, ¿quién lo redactó, jorge silva? es buenísimo.

por acá me dicen mis compañeros de laburo que ese mismo tp lo hicieron en la UCA hace un tiempito.

en fin... no tengo tiempo ahora para ponerme a ver mucho, y para desgracia de santi, no tengo internet en casa, así que no podré colaborar mucho.
.
bueno, ahí leí esta la página 3.
puedo decirte que es mucho más complejo de lo que planteaste, y a mí se me ocurrieron al menos 10 clases para modelar (desde el Tablero, hasta los Dados, Billetes, jugadores, etc.).

si es para entregar mañana, tenés que poner YA a programar.

en fin, no es sencillo, pero tampoco imposible. es un lindo TP diría yo.
(17-09-2012 16:39)LeaTex escribió: [ -> ]el link al PDF no funciona, o al menos yo no lo pude ver.

imagino que están trabajando con Pharo.

tenés que hacer exactamente lo que dijiste, crear 2 clases, y hacer que una de ellas tenga una variable de instancia que sea una colección, a donde van a ir a parar instancias de la otra clase.

antes de ir a los bifes (el lenguaje de programación), hacete un esquema en papel para entender lo que tenés que hacer y lo que querés. un modelo del problema. si ya tenés eso listo, llevarlo al lenguaje no debería representar mayores complicaciones.
.
che, ahí me anduvo el PDF.
un cago de risa el enunciado, ¿quién lo redactó, jorge silva? es buenísimo.

por acá me dicen mis compañeros de laburo que ese mismo tp lo hicieron en la UCA hace un tiempito.

en fin... no tengo tiempo ahora para ponerme a ver mucho, y para desgracia de santi, no tengo internet en casa, así que no podré colaborar mucho.
.
bueno, ahí leí esta la página 3.
puedo decirte que es mucho más complejo de lo que planteaste, y a mí se me ocurrieron al menos 10 clases para modelar (desde el Tablero, hasta los Dados, Billetes, jugadores, etc.).

si es para entregar mañana, tenés que poner YA a programar.

en fin, no es sencillo, pero tampoco imposible. es un lindo TP diría yo.

Si, estoy totalmente dispuesto a quedarme hasta la hora que sea con tal de terminarlo, a full, me gusta y me interesa, pero me re cuesta :/
Entiendo que es complejo, pero es por donde decidí arrancar, lo de Tablero, Juego y Banco ya está programado, está al final del TP en la parte Anexo.
La verdad ni idea quien lo redactó, puede ser Ger Leiva, no estoy seguro igual.

Dejame terminar de arreglar mis asuntos con el Pharo =P, yo ya tengo creadas las clases Provincia y Campo, también cree la colección campos ( campos := Set new. )
Pero ahora, como hago para q la clase Provincia tenga coleciones (campos) y que esos campos sean de clase Campo ?

Muchísimas gracias!
buenosAires:=Provincia new

tengo una instancia de la clase Provincia que es buenosAires
Ponele que cada provincia tenga su propia colección de campos.

#Provincia
>>inicialize
campos := Set new.

Ahí cada provincia tendría su colección a medida que uses XXX:=Provincia new.
Para que """""cada elemento"""" de la coleccion(no se si esta bien dicho, pero es para que entiendas) sea un objeto de la clase campo, lo que tenes que hacer es:

campito:=Campo new.
campos add:campito.

Listo, fiajte si eso te soluciona
Edit: -Intentando lo que posteó Caro-

Ahí va, entendí mejor, ahora estoy agregandole el dueño, para eso creé el método tuDuenioEs, pero antes sin querer cree el método tuDueñoEs, por las dudas cambié al otro, ahora como hago para borrar ese método dentro de los métodos de Campo?
botón derecho --> eliminar (o borrar, o suprimir, o algún sinónimo)
(17-09-2012 18:58)LeaTex escribió: [ -> ]botón derecho --> eliminar (o borrar, o suprimir, o algún sinónimo)

No te lo puedo creer, pensé que no estaba, ya lo encontré era Remove method, q bolu..

Edit:

para resolver el punto 1 tengo q extraer los dueños de cada campo de X provincia y después juntarlos (los tengo q devolver en forma de colección).
Para eso, primero quiero hacer que un campo me devuelva su dueño, cómo hago?
Workspace (WS):

zonaSur tuDuenioEs: jacobo.

y dentro del método tuDuenioEs puse: tuDuenioEs: jugador

Hace falta agregarle el ^ (sombrerito) ?
A ver como te dije que entendí antes, cada provincia supuestamente va a tener su coleccion. (mientras las vayas creando)

yo tenia

buenosAires:=Provincia new

#Provincia
>>inicialize
campos := Set new.
campito:=Campo new.
campos add:campito.

Ponele, que agregaste a campo: "campote,campin, camping...whatever! Siempre y cuando sean DISTINTOS. ¿Por que?el set no tiene repetidos... si tenes 100 iguales, cuando le preguntes el size te va a decir "1"... vos te vas a quedar como :T??? wtf

Del codigo que pusiste no lo se si esta bien o mal, por que no lei del todo el enunciado jajaja hay que analizarlo. Pero yo te digo...

vos decis "campo me devuelva su dueño". Para que te lo devuelva, la clase campo debería tener un atributo "dueño" y un getter "dueño" ¿Por que? por que cuando vos le mandes el mensaje "campito dueño" no va a entender que queres. Entonces, en tu diagrama de clases agrega a la clase Campo un atributo "dueño", los getter y setters preguntale a tu profe si los quiere o no.

Getter seria "dame" y sus sinonimos

duenio
^duenio.

^ para devolver y le puse el mismo nombre para que sepas que """"hace referencia""" al atributo. El nombre es lo de menos. Acordate que la "flechita" de coleccion en el diagrama de clases va de Provincia a Campo, es una relacion de 1 a muchos y cada campo AHORA sabe quien es el dueño(suponemos que se lo "asignaste" blabla).

Ahora vos queres saber los dueños de cada campo de la provincia de buenos aires, ahi "operas" en la coleccion. Tenes distintos mensajes que la coleccion entiende y hay uno en particular que vos tambien ya conoces.

Te acordas el map de funcional? Bueno aca hay uno igual ! solo que se llama de otra forma y lo enitenden las colecciones: "collect" segun tu guia de lenguajes "Devuelve una nueva colección con el resultado de evaluar iterativamente las sentencias para cada unElem de unaCol.
"

en el workspace: buenosAires decimeLosDueñosDeTusCampos.

ahora en #Provincia
>>decimeLosDueñosDeTusCampos
^(campos collect:[:duenio | campito duenio]).

Listo.
yo no termino de entender si el problema de santi es con el lenguaje, o con el TP en sí.

si lo hacés en papel, pensando en "abstracto" (más allá del lenguaje), ya está. después da lo mismo hacerlo en smalltalk que en C# o java.

el "sombrerito" o caret se usa para devolver un valor.
sería el equivalente a un return en otro lenguaje.
Muchisisimas gracias por la respuesta, la verdad q venia muy atrasado con el lenguaje :/

Al final el tp me lo postergaron unos días =D, pero se suma la parte 2, así que este finde largo seguro lo miro de nuevo y hago algunas consultas..

De nuevo, muchísimas gracias a los 2, posta!
URLs de referencia