UTNianos

Versión completa: [Paradigmas] Objetos - duda con Set
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Páginas: 1 2
Gente necesito una mano porque estoy medio perdido.

Es así, tengo que hacer un TP que consta de modelar un TEG, el mundo los jugadores y mil cosas más. Al final del post está el tp.


El punto 1 me pide "saber qué jugador tiene más países". Yo pensé en una clase llamada Mundo que conoce a todos los países, los cuales son un Set, y cada país tiene una variable llamada "dueño" que apunta a su dueño (jugador1, jugador2...).

Entonces mi idea era preguntarle al mundo

> mundo quienTieneMasPaises

entonces le pregunta a cada país "quienEsTuDueño" y ahí devolvería (de alguna manera mágica) el jugador que más países tiene.


El punto es que no hacer esa última parte....tampoco sé si está bien planteada mi estrategia, por eso pido una mano =D


mil gracias!



Este es el TP

https://docs.google.com/document/d/1jNXh...edit?hl=es
tenes la clase Jugador? que tiene una coleccion de paises?
y veo qe tnes la clase Mundo, tiene como atributo "jugadores" qe tiene coleccion de jugadores?
Creo qe podias ordenarlos de mayor a menor (con asSorted collection creo) y sacar el 1er elemento de la coleccion, que va a ser el jugador con mas paises, que para cada jugador averiguas cuantos tiene haciendo un size
hay que ver como lo tenes organizado, si son los paises los que tienen dueño, y no los jugadores que tienen paises, no conviene plantearlo como dice gusti.
tendrias que recorrer los paises e ir guardando en algun lado las cantidades segun jugador. ordenar eso. y sacar el primero.
Tendria qe repasar un toqe paradigmas, pero porqe no esto:

#Mundo

>>jugadorConMasPaises

^(jugadores asSorted collection: [:jug1 :jug2 | jug1 cantidadDePaises > jug2 cantidadDePaises]) first.

#Jugador
>>cantidadDePaises
paises size

A mi me parece que eso va bien..
gracias gusti, me viene excelente. La parte de

>jug1 cantidadDePaises


la saqué recién, era un poco más jodida que "paises size" porque cada jugador no conoce sus paises...los paises conocen sus dueños, pero ya lo saqué.

ahora hago eso que mandaste vos y debería funcionar.

gracias!
Buenisimo! cualquier cosa decime, mientras te pueda ayudar..

Saludos!
no funciona GRR


me anda lo de jugadores cantidadDePaises, pero no me anda lo de mundo quienTieneMasPaises.

me tira este error

Error: attempt to index non-existing element in an ordered collection

alguna pista? según interpreto da error porqeu trata de ordenar un elemento inexistente, pero no sé a qué se refiere...
LISTOOOOOO me funciona, me había olvidado de hacer que el mundo conozca a los jugadores.


mundo quienTieneMasPaises. a Jugador


cómo hago para hacer que me devuelva "jugador1" en lugar de "a Jugador"??


edit: lo resolví poniendole una variable "nombre" y pidiendo que devuelva eso, pero tengo un problema...si le pongo de nombre "vallo" me lo sigue tomando como nil, si le opngo de nombre un número (3333) me lo toma...qué tengo que cambiar?
Off:¿Vallo vos cursas los sábados a la tarde?

On:podés pasar tu código de ese último punto? No recuerdo si siempre bien bajo que casos te devuelve anObject o te tira el objeto que probaste del workspace.
nop, lunes y vierens a la mañana con Spigariol (bah, con los ayudantes de él).

#Jugador
nombre
^ nombre

nombre: anObject
nombre := anObject

#Mundo
quienTieneMasPaises

^(jugadores asSortedCollection: [:jug1 :jug2 | jug1 cuantosPaisesTenes > jug2 cuantosPaisesTenes ]) first nombre.



si el nombre es un número funciona, pero si le pongo de nombre vallo, me lo sigue dejando en nil....raro
le agregaste objetos a la coleccion jugadores que tenes en Mundo? Salvo eso, el resto del método esta bien.
(10-10-2011 23:15)Vallo escribió: [ -> ]nop, lunes y vierens a la mañana con Spigariol (bah, con los ayudantes de él).

#Jugador
nombre
^ nombre

nombre: anObject
nombre := anObject

#Mundo
quienTieneMasPaises

^(jugadores asSortedCollection: [:jug1 :jug2 | jug1 cuantosPaisesTenes > jug2 cuantosPaisesTenes ]) first nombre.



si el nombre es un número funciona, pero si le pongo de nombre vallo, me lo sigue dejando en nil....raro

Fijate en el paréntesis.Igual con número siempre te responde bien.
Fijate de ver si asocia mal el paréntesis y tenés que hacer:



^((jugadores asSortedCollection: [:jug1 :jug2 | jug1 cuantosPaisesTenes > jug2 cuantosPaisesTenes ]) first nombre).



sisisi gente, en mi último mensaje dije que el método funciona a la perfección. Lo único que no entiendo por qué no me anda es lo siguiente:


tengo una variable "nombre" en la clase Jugador a la cual si creo un jugador "jugador1:= Jugador new" y le asigno "nombre: vallo" me lo sigue dejando en nil el campo nombre (haciendole inspect) pero si le hago "nombre: 222" la variable nombre toma el valor '222'.


cómo hago para que dicha variable tome un string y no un número?
Intentaste hacer nombre: "vallo". o nombre: 'vallo'. ?
sin comillas



edit: ajá, va con comillas simples, duda resuelta =D



muchas gracias gente! =D
Páginas: 1 2
URLs de referencia