--- /dev/null
+import java.util.*;
+
+public class Cantadores implements Observer
+{
+ String nombre;
+ public Cantadores (String s)
+ {
+ nombre = s;
+ }
+
+ public void update(Observable obs, Object obj)
+ {
+ if (obs instanceof Sorteo) {
+ Sorteo s = (Sorteo)obs;
+ if ((s.getN()>=40) && (s.getN()<=49))
+ System.out.println ("Canto "+nombre+" "+s.getN());
+ } else {
+ System.out.println ("E");
+ }
+ }
+}
+
--- /dev/null
+
+import java.util.*;
+
+public class Sorteo extends Observable
+{
+ Random r = new Random ();
+ int n;
+
+ public Sorteo ()
+ {
+ }
+
+ public int getN()
+ {
+ return n;
+ }
+
+ public void Go ()
+ {
+ while (true) {
+ /* Uso rango de 0 a 100 para que salga alguna vez :P */
+ n = r.nextInt () % 100;
+ setChanged ();
+ notifyObservers ();
+ }
+ }
+}
+
--- /dev/null
+
+public class Sorteo1
+{
+ static public void main (String [] args)
+ {
+ Sorteo s = new Sorteo ();
+ Cantadores c = new Cantadores ("Pablo");
+ s.addObserver (c);
+
+ s.Go ();
+ }
+}
+
--- /dev/null
+
+public class Sorteo2
+{
+ static public void main (String [] args)
+ {
+ Sorteo s = new Sorteo ();
+ Cantadores c1 = new Cantadores ("Pablo");
+ Cantadores c2 = new Cantadores ("Mariela");
+ Cantadores c3 = new Cantadores ("Angela");
+ s.addObserver (c1);
+ s.addObserver (c2);
+ s.addObserver (c3);
+
+ s.Go ();
+ }
+}
+