1 / 23

Esempio: Tombola!

Esempio: Tombola!. Random numbers. package java.util; Random(long seed) Creates a new random number generator using a single long seed public int nextInt(int n)

verna
Download Presentation

Esempio: Tombola!

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Esempio: Tombola!

  2. Random numbers • package java.util; • Random(long seed) • Creates a new random number generator using a single long seed • public int nextInt(int n) • Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive), drawn from this random number generator's sequence.

  3. Banco • package tombola; • import java.util.*; • public class Banco { • Random generatore; • Set numeriUsciti; • final int MAXNUM = 9; • public Banco() { • generatore = new Random(System.currentTimeMillis()/101); • numeriUsciti = new HashSet(); • }

  4. Banco • int getNextNumber() { • boolean isNew = false; • int num = 0; • do { • num = generatore.nextInt(MAXNUM) + 1; • isNew = numeriUsciti.add(new Integer(num)); • System.out.println(num + " " + isNew); • } • while (!isNew); • return num; • }

  5. Banco • private void test() { • while (numeriUsciti.size() < MAXNUM) { • this.getNextNumber(); • } • Iterator iter=numeriUsciti.iterator(); • while (iter.hasNext()) { • System.out.println(iter.next()); • } • } • public static void main(String[] args) { • Banco banco1 = new Banco(); • banco1.test(); • } • }

  6. Banco • 1 true • 2 true • 1 false • 7 true • 6 true • 8 true • 8 false • 7 false • 8 false • 4 true • 5 true • 3 true • 2 • 4 • 8 • 6 • 1 • 3 • 7 • 5

  7. Player • package tombola; • import java.util.*; • public class Player { • Collection cartella; • Collection cartellaOriginale; • final int MAXNUM=9; • final int NCELLS=3; • String nome=null; • Player(String nome){this.nome=nome;}

  8. Player • void creaNuovaCartella(){ • Random generatore = new Random(System.currentTimeMillis()/27); • cartella=new HashSet(); • for (int i=1; i<=NCELLS; i++) { • boolean creatoNuovoNumero=false; • do { • int x=generatore.nextInt(MAXNUM)+1; • creatoNuovoNumero=cartella.add(new Integer(x)); • } while (!creatoNuovoNumero); • } • cartellaOriginale=new HashSet(); • cartellaOriginale.addAll(cartella); • }

  9. Player • public boolean checkNumber(int x) { • boolean presente=cartella.remove(new Integer(x)); • if (presente) { • System.out.println(nome+" ha il numero "+x); • } • return presente; • } • public boolean isFinished() { • if (cartella.isEmpty()) { • System.out.println(nome+" ha finito!"); • System.out.println("Aveva la seguente cartella:"); • Iterator iter=cartellaOriginale.iterator(); • while (iter.hasNext()) { • System.out.println(iter.next()); • } • return true; • } else return false; • }

  10. Player • private void test() { • this.creaNuovaCartella(); • // elimina i numeri • for (int i=1; i<MAXNUM; i++) { • boolean res=checkNumber(i); • System.out.println(i+" "+res); • if (isFinished()) break; • } • } • public static void main(String[] args) { • Player player1 = new Player("GIOVANNI"); • player1.test(); • } • }

  11. Player • C:\bin\JBuilderX\jdk1.4\bin\javaw tombola.Player • GIOVANNI ha il numero 1 • 1 true • 2 false • GIOVANNI ha il numero 3 • 3 true • GIOVANNI ha il numero 4 • 4 true • GIOVANNI ha finito! • Aveva la seguente cartella: • 4 • 1 • 3

  12. Gioco • public class Gioco { • public Gioco() { • Banco b1=new Banco(); • Player p=new Player("Pippo"); • p.creaNuovaCartella(); • while (true) { • int x=b1.getNextNumber(); • System.out.println("Numero estratto :"+x); • p.checkNumber(x); • if (p.hasFinished()) break; • } • } • public static void main(String[] args) { • Gioco gioco1 = new Gioco(); • } • }

  13. Gioco • Numero estratto :2 • Pippo ha il numero 2 • 1 false • 2 false • 1 false • 7 false • 1 false • 3 false • 5 false • 4 true • Numero estratto :4 • Pippo ha il numero 4 • Pippo ha finito! • Aveva la seguente cartella: • 2 • 4 • 8 • C:\bin\JBuilderX\jdk1.4\bin\javaw tombola.Gioco • 3 true • Numero estratto :3 • 1 true • Numero estratto :1 • 3 false • 5 true • Numero estratto :5 • 7 true • Numero estratto :7 • 8 true • Numero estratto :8 • Pippo ha il numero 8 • 7 false • 2 true

  14. Gioco • Esercizio: • Modificare il codice aggiungendo altri giocatori

  15. Javadoc

  16. Input /** * Returns an Image object that can then be painted on the screen. * The url argument must specify an absolute {@link URL}. The name * argument is a specifier that is relative to the url argument. * <p> * This method always returns immediately, whether or not the * image exists. When this applet attempts to draw the image on * the screen, the data will be loaded. The graphics primitives * that draw the image will incrementally paint on the screen. * * @paramurl an absolute URL giving the base location of the image * @paramname the location of the image, relative to the url argument * @returnthe image at the specified URL * @seeImage */ public Image getImage(URL url, String name) { try { return getImage(new URL(url, name)); } catch (MalformedURLException e) { return null; } }

  17. Output • getImage • public ImagegetImage(URL url, String name) • Returns an Image object that can then be painted on the screen. The url argument must specify an absolute URL. The name argument is a specifier that is relative to the url argument. This method always returns immediately, whether or not the image exists. When this applet attempts to draw the image on the screen, the data will be loaded. The graphics primitives that draw the image will incrementally paint on the screen. • Parameters: • url - an absolute URL giving the base location of the image • name - the location of the image, relative to the url argument • Returns: • the image at the specified URL • See Also: • Image

  18. Tags Include tags in the following order: @author (classes and interfaces only, required) @version (classes and interfaces only, required.) @param (methods and constructors only) @return (methods only) @exception (@throws is a synonym added in Javadoc 1.2) @see (additional references) @since (since what version/ since when is it available?) @serial (or @serialField or @serialData) @deprecated (why is deprecated, since when, what to use)

  19. Documentation generation To generate the html documentation, run javadoc followed by the list of source files, which the documentation is to be generated for, in the command prompt (i.e. javadoc [files]). javadoc also provides additional options which can be entered as switches following the javadoc command (i.e. javadoc [options] [files]).

  20. javadoc options • Here are some basic javadoc options: • -author- generated documentation will include a author section • -classpath [path] - specifies path to search for referenced .class files. • -classpathlist [path];[path];...;[path] - specifies a list locations (separated by ";") to search for referenced .class files. • -d [path] - specifies where generated documentation will be saved. • -private - generated documentation will include private fields and methods (only public and protected ones are included by default). • -sourcepath [path] - specifies path to search for .java files to generate documentation form. • -sourcepathlist [path];[path];...;[path] - specifies a list locations (separated by ";") to search for .java files to generate documentation form. • -version- generated documentation will include a version section

  21. Examples • Basic example that generates and saves documentation to the current directory (c:\MyWork) from A.java and B.java in current directory and all .java files in c:\OtherWork\. • c:\MyWork> javadoc A.java B.java c:\OtherWork\*.java  • More complex example with the generated documentation showing version information and private members from all .java files in c:\MySource\ and c:\YourSource\ which references files in c:\MyLib and saves it to c:\MyDoc. • c:\> javadoc -version -private -d c:\MyDoc • -sourcepathlist c:\MySource;c:\YourSource\ • -classpath c:\MyLib

  22. More info http://java.sun.com/j2se/javadoc/writingdoccomments/index.html The javadoc tool does not directly document anonymous classes -- that is, their declarations and doc comments are ignored. If you want to document an anonymous class, the proper way to do so is in a doc comment of its outer class

  23. Gioco • Esercizio: • Aggiungere i commenti alla Tombola

More Related