Advertisement
Guest User

Sueños Estrella

a guest
Dec 5th, 2016
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.50 KB | None | 0 0
  1. class Persona{
  2.     var suenios = []
  3.     var felicidonios = 0
  4.    
  5.     var carrerasQueQuiereEstudiar = []
  6.     var carrerasQueYaSeRecibio = []
  7.     var plataMinimaQueQuiereGanar = 0
  8.     var tieneUnHijo = false
  9.    
  10.     method soniar(unSuenio){
  11.         suenios.add(unSuenio)
  12.     }
  13.    
  14.     method cumplirSuenio(unSuenio){
  15.         unSuenio.cumplirSuenio(self)
  16.     }
  17.    
  18.     method agregarFelicidonios(unosFelicidonios){
  19.         felicidonios += unosFelicidonios
  20.     }
  21.     method suenios() = suenios
  22.    
  23.     method sueniosCumplidos(){
  24.         return suenios.filter({unSuenio => suenios.estaCumplido()})
  25.     }
  26.     method sueniosPendientes(){
  27.         return suenios.filter({unSuenio => !suenios.estaCumplido()})
  28.     }
  29.    
  30.     method quiereEstudiar(unaCarrera){
  31.         return carrerasQueQuiereEstudiar.contains(unaCarrera)
  32.     }
  33.     method estaRecibidoDe(unaCarrera){
  34.         return carrerasQueQuiereEstudiar.contains(unaCarrera)
  35.     }
  36.    
  37.     method yaNoQuiereEstudiar(unaCarrera){
  38.         carrerasQueQuiereEstudiar.remove(unaCarrera)
  39.     }
  40.    
  41.     method seRecibioDe(unaCarrera){
  42.         carrerasQueYaSeRecibio.add(carrerasQueYaSeRecibio)
  43.     }
  44.    
  45.     method laGuitaLeSirve(unaCantidadDePlata){
  46.         return unaCantidadDePlata >= plataMinimaQueQuiereGanar
  47.     }
  48.     method tieneUnHijo() = tieneUnHijo
  49.     method tieneUnHijo(unBooleano){
  50.         tieneUnHijo = unBooleano
  51.     }
  52. }
  53. class Suenio{
  54.     var felicidonios
  55.     var autorDelSuenio
  56.     var estaCumplido = false
  57.  
  58.     constructor(unaPersonaQueSuenia, cantidadDeFelicidoniosQueSeObtienenCuandoSeCumpleElSueno){
  59.         autorDelSuenio = unaPersonaQueSuenia
  60.         felicidonios = cantidadDeFelicidoniosQueSeObtienenCuandoSeCumpleElSueno
  61.     }
  62.    
  63.     method estaCumplido(){
  64.         return estaCumplido
  65.     }
  66.    
  67.     method brindarFelicidonios(){
  68.         autorDelSuenio.agregarFelicidonios ()
  69.     }
  70.    
  71.     method puedeCumplirSuenio(unaPersona){
  72.         return self.esElSoniador(unaPersona)
  73.     }
  74.    
  75.     method esElSoniador(unaPersona){
  76.         return unaPersona == autorDelSuenio
  77.     }
  78.    
  79.     method cumplirSuenio(unaPersona){
  80.         if (self.puedeCumplirSuenio(unaPersona)){
  81.             estaCumplido = true
  82.             unaPersona.agregarFelicidonios(felicidonios)
  83.             }else{
  84.                 self.error("No puede cumplir el suenio")
  85.             }
  86.     }
  87. }
  88.  
  89. object nico inherits Persona{}
  90. object volar inherits Suenio(nico, 100){}
  91.  
  92.  
  93. class Recibirse inherits Suenio{
  94.     var carrera
  95.     constructor(unaPersonaQueSuenia, cantidadDeFelicidoniosQueSeObtienenCuandoSeCumpleElSueno, unaCarrera) = super(unaPersonaQueSuenia, cantidadDeFelicidoniosQueSeObtienenCuandoSeCumpleElSueno){
  96.         carrera = unaCarrera
  97.     }
  98.     override method puedeCumplirSuenio(unaPersona){
  99.         return super(unaPersona) && unaPersona.quiereEstudiar(unaCarrera) && !unaPersona.estaRecibidoDe(unaCarrera)
  100.     }
  101.    
  102.     override method cumplirSuenio(unaPersona){
  103.         if (self.puedeCumplirSuenio(unaPersona)){
  104.             estaCumplido = true
  105.             unaPersona.agregarFelicidonios(felicidonios)
  106.             unaPersona.yaNoQuiereEstudiar(unaCarrera)
  107.             unaPersona.seRecibioDe(unaCarrera)
  108.             }else{
  109.                 self.error("No puede cumplir el suenio")
  110.             }
  111.     }
  112. }
  113.  
  114. class ConseguirLaburo inherits Suenio{
  115.     var guita
  116.     constructor(unaPersonaQueSuenia, cantidadDeFelicidoniosQueSeObtienenCuandoSeCumpleElSueno, unaGuita) = super(unaPersonaQueSuenia, cantidadDeFelicidoniosQueSeObtienenCuandoSeCumpleElSueno){
  117.         guita = unaGuita
  118.     }
  119.    
  120.     override method puedeCumplirSuenio(unaPersona){
  121.         return super(unaPersona) && unaPersona.laGuitaLeSirve(guita)
  122.     }
  123. }
  124.  
  125. class TenerUnHijo inherits Suenio{
  126.     constructor(unaPersonaQueSuenia, cantidadDeFelicidoniosQueSeObtienenCuandoSeCumpleElSueno) = super(unaPersonaQueSuenia, cantidadDeFelicidoniosQueSeObtienenCuandoSeCumpleElSueno){}
  127.    
  128.     override method cumplirSuenio(unaPersona){
  129.         if (self.puedeCumplirSuenio(unaPersona)){
  130.             estaCumplido = true
  131.             unaPersona.tieneUnHijo(true)
  132.             }else{
  133.                 self.error("No puede cumplir el suenio")
  134.             }
  135.     }
  136.    
  137. }
  138.  
  139. class Viajar inherits Suenio{
  140.     var lugar
  141.     constructor(unaPersonaQueSuenia, cantidadDeFelicidoniosQueSeObtienenCuandoSeCumpleElSueno, unLugar) = super(unaPersonaQueSuenia, cantidadDeFelicidoniosQueSeObtienenCuandoSeCumpleElSueno){
  142.         lugar = unLugar
  143.     }
  144. }
  145.  
  146. class Adoptar inherits Suenio{
  147.     constructor(unaPersonaQueSuenia, cantidadDeFelicidoniosQueSeObtienenCuandoSeCumpleElSueno, unaCantidadDeHijos) = super(unaPersonaQueSuenia, cantidadDeFelicidoniosQueSeObtienenCuandoSeCumpleElSueno){}
  148.    
  149.     override method puedeCumplirSuenio(unaPersona){
  150.         return super(unaPersona) && !unaPersona.tieneUnHijo()
  151.     }
  152.     override method cumplirSuenio(unaPersona){
  153.         if (self.puedeCumplirSuenio(unaPersona)){
  154.             estaCumplido = true
  155.             unaPersona.tieneUnHijo(true)
  156.             }else{
  157.                 self.error("No puede cumplir el suenio, la persona ya tiene un hijo")
  158.             }
  159.     }
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement