<?xml version="1.0" encoding="utf-8"  ?>
<rss version="2.0">
	<channel>
<br />
<b>Warning</b>:  htmlspecialchars() expects parameter 2 to be long, string given in <b>/Volumes/HD3/www/segue-1.9.5/rss.inc.php</b> on line <b>74</b><br />
		<title> &gt; All Posts</title>
		<link>http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2</link>
		<description></description>
		<lastBuildDate>Thu, 23 Feb 2023 07:14:59 +0100</lastBuildDate>
		<generator>Segue RSS Generator</generator>
		<item>
			<title>Protezione ed ereditarietà</title>
			<link>http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=190&amp;page=693&amp;story=1641&amp;detail=1641#</link>
			<guid isPermaLink="true">http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=190&amp;page=693&amp;story=1641&amp;detail=1641#</guid>
			<pubDate>Mon, 21 May 2012 17:44:00 +0200</pubDate>
			<author>Marco Ronchetti marco.ronchetti@unitn.it</author>
<description>&lt;a href=&#039;http://latemar.science.unitn.it/segue/index.php?&amp;amp;action=site&amp;amp;site=2012Programmazione2&amp;section=190&amp;page=693&amp;story=1641&amp;detail=1641#&#039;&gt;Protezione ed ereditarietà &gt; Protezione ed ereditarietà&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Nella lezione del 21/5/12 la sezione finale (vero o falso) ero un po\&#039; di corsa perch&amp;egrave; stava finedo il tempo e ho detto delle scemenze.&lt;br /&gt;&lt;br /&gt;Chiarifico qui:&lt;br /&gt;&lt;br /&gt;Quando si fa overriding di un metodo NON SI PUO\&#039; imporre una visibilit&amp;agrave; pi&amp;ugrave; restrittiva di quella presente nella classe padre.&lt;br /&gt;SI PUO\&#039; scegliere una visibilit&amp;agrave; uguale o pi&amp;ugrave; ampia.&lt;br /&gt;&lt;br /&gt;Quindi se la classe padre ha un metodo int f() protected, nella classe figlia NON SI PUO\&#039; definire private int f(). Si pu&amp;ograve; invece imporre &lt;br /&gt;public int f(), protected int f() o semplicemente int f(). (Ricordo che in assenza di dichiarazione esplicita, si ha visibilit&amp;agrave; entro lo stesso package).&lt;br /&gt;&lt;br /&gt;Se la classe padre ha un metodo public int f(), l\&#039;unica possibilit&amp;agrave; di overriding nella classe figlia &amp;egrave; public int f(). Qualunque altra forma di visibilit&amp;agrave; dar&amp;agrave; errore a compile time.&lt;br /&gt;&lt;br /&gt;Ovviamente invece l\&#039;overloading NON &amp;egrave; vincolato dalle definizioni presenti nella classe padre.</description>
		</item>
		<item>
			<title>Consegna</title>
			<link>http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=190&amp;page=692&amp;story=1634&amp;detail=1634#</link>
			<guid isPermaLink="true">http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=190&amp;page=692&amp;story=1634&amp;detail=1634#</guid>
			<pubDate>Fri, 4 May 2012 8:36:00 +0200</pubDate>
			<author>Marco Ronchetti marco.ronchetti@unitn.it</author>
<description>&lt;a href=&#039;http://latemar.science.unitn.it/segue/index.php?&amp;amp;action=site&amp;amp;site=2012Programmazione2&amp;section=190&amp;page=692&amp;story=1634&amp;detail=1634#&#039;&gt;MiniTetris &gt; Consegna&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Costruire un MiniTetris:&lt;br /&gt;in un pannello vi sono dei mattoni colorati che scendono a velocit&amp;agrave; costante.&lt;br /&gt;Premendo un bottone uno dei mattono scelto a caso torna indietro di un poco risalendo verso l\&#039;alto. Gli spostamenti verso l\&#039;alto e verso il basso sono predefiniti e costanti.</description>
		</item>
		<item>
			<title>Soluzione</title>
			<link>http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=190&amp;page=692&amp;story=1633&amp;detail=1633#</link>
			<guid isPermaLink="true">http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=190&amp;page=692&amp;story=1633&amp;detail=1633#</guid>
			<pubDate>Fri, 4 May 2012 8:32:00 +0200</pubDate>
			<author>Marco Ronchetti marco.ronchetti@unitn.it</author>
<description>&lt;a href=&#039;http://latemar.science.unitn.it/segue/index.php?&amp;amp;action=site&amp;amp;site=2012Programmazione2&amp;section=190&amp;page=692&amp;story=1633&amp;detail=1633#&#039;&gt;MiniTetris &gt; Soluzione&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=\&quot;leftmargin\&quot;&gt;&lt;strong&gt;MiniTetris&lt;/strong&gt;&lt;/div&gt;&lt;div class=\&quot;story\&quot;&gt;&lt;div class=\&quot;story\&quot;&gt;package minitetris;&lt;br /&gt;import javax.swing.*;&lt;br /&gt;import java.awt.*;&lt;br /&gt;public class MiniTetris extends JFrame{&lt;br /&gt;&lt;br /&gt;&amp;nbsp; public static void main(String[ ] a){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; new MiniTetris();&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; public MiniTetris() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.setSize(400,400);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.centerInScreen();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // fai in modo che la chiusura della finestra&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // termini l\&#039;applicazione&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.setLayout(new BorderLayout());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Brick b=new Brick();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MainPanel mp=new MainPanel(b);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.add(mp,BorderLayout.CENTER);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ControlPanel cp= new ControlPanel(b);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.add(cp,BorderLayout.SOUTH);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // rendi la finestra visibile&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.validate();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.setVisible(true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Animator a=new Animator(b,mp);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a.start();&lt;br /&gt;&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; private void centerInScreen() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // trova le dimensioni dello schermo e della finestra&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dimension screenSize =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Toolkit.getDefaultToolkit().getScreenSize();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dimension frameSize = this.getSize();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // assicurati che la finestra non sia pi&amp;ugrave; grande dello schermo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (frameSize.height &amp;gt; screenSize.height)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; frameSize.height = screenSize.height;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (frameSize.width &amp;gt; screenSize.width)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; frameSize.width = screenSize.width;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // centra la finestra nello schermo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.setLocation((screenSize.width - frameSize.width) / 2,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; (screenSize.height - frameSize.height) / 2);&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=\&quot;leftmargin\&quot;&gt;&lt;strong&gt;MainPanel&lt;/strong&gt;&lt;/div&gt;&lt;div class=\&quot;story\&quot;&gt;&lt;div class=\&quot;story\&quot;&gt;package minitetris;&lt;br /&gt;&lt;br /&gt;import java.awt.Color;&lt;br /&gt;import java.awt.Graphics;&lt;br /&gt;import javax.swing.JPanel;&lt;br /&gt;&lt;br /&gt;public class MainPanel extends JPanel{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Color bgColor=Color.GRAY;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Brick brick=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MainPanel(Brick b){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.brick=b;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void paintComponent(Graphics g){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.paintComponent(g);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.setBackground(bgColor);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; brick.draw(g);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=\&quot;leftmargin\&quot;&gt;&lt;strong&gt;ControlPanel&lt;/strong&gt;&lt;/div&gt;&lt;div class=\&quot;story\&quot;&gt;&lt;div class=\&quot;story\&quot;&gt;package minitetris;&lt;br /&gt;&lt;br /&gt;import java.awt.event.ActionEvent;&lt;br /&gt;import java.awt.event.ActionListener;&lt;br /&gt;import javax.swing.JButton;&lt;br /&gt;import javax.swing.JPanel;&lt;br /&gt;&lt;br /&gt;public class ControlPanel extends JPanel implements ActionListener{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Brick brick=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; final int UP_STEP=-20;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ControlPanel(Brick b){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; brick=b;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JButton jb=new JButton(&amp;quot;UP&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.add(jb);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jb.addActionListener(this);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.validate();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void actionPerformed(ActionEvent e) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; brick.verticalMove(UP_STEP);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=\&quot;leftmargin\&quot;&gt;&lt;strong&gt;Brick&lt;/strong&gt;&lt;/div&gt;&lt;div class=\&quot;story\&quot;&gt;&lt;div class=\&quot;story\&quot;&gt;&lt;br /&gt;package minitetris;&lt;br /&gt;import java.awt.Color;&lt;br /&gt;import java.awt.Dimension;&lt;br /&gt;import java.awt.Graphics;&lt;br /&gt;import java.awt.Point;&lt;br /&gt;&lt;br /&gt;public class Brick {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dimension size;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Point position;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Color color=Color.RED;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Graphics g=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Brick(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; size=new Dimension(50,80);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; position=new Point(100,100);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; void verticalMove(int dy){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; position.y =dy;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; void draw(Graphics g){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g.setColor(color);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g.fillRect(position.x, position.y, size.width, size.height);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=\&quot;leftmargin\&quot;&gt;&lt;strong&gt;Animator&lt;/strong&gt;&lt;/div&gt;&lt;div class=\&quot;story\&quot;&gt;&lt;div class=\&quot;story\&quot;&gt;package minitetris;&lt;br /&gt;&lt;br /&gt;import java.awt.Graphics;&lt;br /&gt;public class Animator extends Thread {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Brick brick=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; final int PAUSE=50;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; final int DY=1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Graphics g=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MainPanel p=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Animator(Brick brick,MainPanel p) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.brick=brick;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.p=p;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void run() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (true) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thread.sleep(PAUSE);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (InterruptedException ex) {}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; brick.verticalMove(DY);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p.repaint();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;</description>
		</item>
		<item>
			<title>Javadoc</title>
			<link>http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=187&amp;page=666&amp;story=1632&amp;detail=1632#</link>
			<guid isPermaLink="true">http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=187&amp;page=666&amp;story=1632&amp;detail=1632#</guid>
			<pubDate>Fri, 27 Apr 2012 23:14:00 +0200</pubDate>
			<author>Marco Ronchetti marco.ronchetti@unitn.it</author>
<description>&lt;a href=&#039;http://latemar.science.unitn.it/segue/index.php?&amp;amp;action=site&amp;amp;site=2012Programmazione2&amp;section=187&amp;page=666&amp;story=1632&amp;detail=1632#&#039;&gt;Documentazione &gt; Javadoc&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Come configurare il Javadoc in Netbeans:&lt;br /&gt;&lt;br /&gt;Nella pagina:&lt;br /&gt;&lt;br /&gt;&lt;a href=\&quot;http://www.oracle.com/technetwork/java/javase/downloads/index.html#docs\&quot;&gt;http://www.oracle.com/technetwork/java/javase/downloads/index.html#docs&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;cliccare su download per ottenere la documentazione della versione del JDK utilizzata (Java6 o Java7).&lt;br /&gt;&lt;br /&gt;Competato il download, lanciare Netbeans, scegliere il menu Tools -&amp;gt; Java Platforms,&amp;nbsp; scegliere il tab Javadoc e aggiungere lo zip file scaricato, eventualmente spostarlo al primo posto della lista se ci sono altri elementi. Riavviare Netbeans.</description>
		</item>
		<item>
			<title>Descrizione del gioco a c...</title>
			<link>http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=190&amp;page=691&amp;story=1631&amp;detail=1631#</link>
			<guid isPermaLink="true">http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=190&amp;page=691&amp;story=1631&amp;detail=1631#</guid>
			<pubDate>Wed, 18 Apr 2012 22:09:00 +0200</pubDate>
			<author>Marco Ronchetti marco.ronchetti@unitn.it</author>
<description>&lt;a href=&#039;http://latemar.science.unitn.it/segue/index.php?&amp;amp;action=site&amp;amp;site=2012Programmazione2&amp;section=190&amp;page=691&amp;story=1631&amp;detail=1631#&#039;&gt;Carte &gt; &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=\&quot;leftmargin\&quot;&gt;&lt;strong&gt;Descrizione del gioco a carte da implementare&lt;/strong&gt;&lt;/div&gt;&lt;div class=\&quot;story\&quot;&gt;&lt;div class=\&quot;story\&quot;&gt;Si gioca con 40 carte di 4 semi. Inizialmente  vegono messe quattro carte (scoperte) sul tavolo. Ad ogni gocatore  vengono distribuite tre carte. A turno i gocatori devono giocare una  carta: se il suo valore corrisponde a quello di una delle carte sul  tavolo, il giocatore prende entrambe le carte (quella giocata e quella  corrispondente) e le aggiunge ad un suo mazzo di carte vinte. Se la  carta giocata non ha una corrdispondente carta sul tavolo, essa viene  deposta sul tavolo assieme alle altre. Quando tutti i giocatori restano  senza carte in mano, si procede ad una nuova distribuzione di tre carte a  testa fino ad esaurire il mazzo (il numero di giocatori deve quindi  essere congruo, affinch&amp;egrave; sia possible completare correttamente la  distribuzione delle carte del mazzo).&lt;br /&gt;&lt;br /&gt;Al termine si procede al conteggio: ogni giocatore sconta i punti  accumulati, sommando il valore di tutte le carte vinte. Viene proclamato  vincitore il giocatore che ha accumulato pi&amp;ugrave; punti.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=\&quot;leftmargin\&quot;&gt;&lt;strong&gt;Carta.java&lt;/strong&gt;&lt;/div&gt;&lt;div class=\&quot;story\&quot;&gt;&lt;div class=\&quot;story\&quot;&gt;package carte;&lt;br /&gt;public class Carta {&lt;br /&gt;&amp;nbsp;&amp;nbsp; static final char CUORI=\&#039;C\&#039;;&lt;br /&gt;&amp;nbsp;&amp;nbsp; static final char QUADRI=\&#039;Q\&#039;;&lt;br /&gt;&amp;nbsp;&amp;nbsp; static final char FIORI=\&#039;F\&#039;;&lt;br /&gt;&amp;nbsp;&amp;nbsp; static final char PICCHE=\&#039;P\&#039;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int valore;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; char seme;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Carta (int v, char s) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; valore=v;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; seme=s;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; boolean hasEqualValue(Carta c) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return c.valore==valore;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String toString(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return &amp;quot;&amp;quot; seme valore;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=\&quot;leftmargin\&quot;&gt;&lt;strong&gt;InsiemeDiCarte.java&lt;/strong&gt;&lt;/div&gt;&lt;div class=\&quot;story\&quot;&gt;&lt;div class=\&quot;story\&quot;&gt;package carte;&lt;br /&gt;&lt;br /&gt;import java.util.*;&lt;br /&gt;&lt;br /&gt;public class InsiemeDiCarte extends LinkedList{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String toString(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String s=&amp;quot;&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Iterator i=this.iterator();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (i.hasNext()) s=s i.next().toString() &amp;quot; &amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return s;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=\&quot;leftmargin\&quot;&gt;&lt;strong&gt;&lt;a href=\&quot;../../../index.php?&amp;amp;action=site&amp;amp;site=2009Programmazione2&amp;amp;section=122&amp;amp;page=471&amp;amp;story=1040&amp;amp;detail=1040\&quot; name=\&quot;1040\&quot;&gt;Mazzo.java&lt;/a&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div class=\&quot;story\&quot;&gt;&lt;div class=\&quot;story\&quot;&gt;package carte;&lt;br /&gt;import java.util.*;&lt;br /&gt;&lt;br /&gt;public class Mazzo extends InsiemeDiCarte {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mazzo(int nCartePerSeme){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int val=1; val &amp;lt;=nCartePerSeme; val  ){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.add(new Carta(val, Carta.CUORI));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.add(new Carta(val, Carta.QUADRI));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.add(new Carta(val, Carta.FIORI));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.add(new Carta(val, Carta.PICCHE));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void mescola(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Random r=new Random();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int nCarte=this.size();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int k=0; k&amp;lt;nCarte; k  ) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int pos=r.nextInt(nCarte);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.addLast(remove(pos));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.addFirst(remove(pos));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Carta prossimaCarta(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert (size()&amp;gt;0):&amp;quot;Mazzo vuoto&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (Carta)this.removeFirst();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(String a[]){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mazzo m=new Mazzo(10);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m.mescola();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(m);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=\&quot;leftmargin\&quot;&gt;&lt;strong&gt;Tavolo.java&lt;/strong&gt;&lt;/div&gt;&lt;div class=\&quot;story\&quot;&gt;&lt;div class=\&quot;story\&quot;&gt;package carte;&lt;br /&gt;&lt;br /&gt;import java.util.*;&lt;br /&gt;&lt;br /&gt;public class Tavolo {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; InsiemeDiCarte carte=new InsiemeDiCarte();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void aggiungi(Carta c){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; carte.add(c);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public boolean rimuovi(Carta c){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return carte.remove(c);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Carta contieneCartaEquivalente(Carta c){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Iterator iter=carte.iterator();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (iter.hasNext()) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Carta c2=(Carta)iter.next();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (c2.hasEqualValue(c)) return c2;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=\&quot;leftmargin\&quot;&gt;&lt;strong&gt;Giocatore.java&lt;/strong&gt;&lt;/div&gt;&lt;div class=\&quot;story\&quot;&gt;&lt;div class=\&quot;story\&quot;&gt;package carte;&lt;br /&gt;&lt;br /&gt;import java.util.*;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class Giocatore {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; String nome=&amp;quot;Giocatore &amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tavolo tavolo=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; InsiemeDiCarte carteDiMano=new InsiemeDiCarte();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; InsiemeDiCarte carteVinte=new InsiemeDiCarte();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Giocatore(int k, Tavolo t){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nome=nome k;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tavolo=t;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void aggiungiCarta(Carta c){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; carteDiMano.add(c);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Carta scegliCartaDaGiocare(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert (carteDiMano.size()&amp;gt;0):&amp;quot;Il giocatore non ha carte in mano&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (Carta)carteDiMano.removeFirst();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void gioca(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Carta c=scegliCartaDaGiocare();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Carta c2=tavolo.contieneCartaEquivalente(c);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (c2==null) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tavolo.aggiungi(c);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(nome &amp;quot; gioca &amp;quot; c);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; carteVinte.add(c);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tavolo.rimuovi(c2);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; carteVinte.add(c2);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(nome &amp;quot; vince &amp;quot; c);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(nome &amp;quot; vince &amp;quot; c2);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.flush();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int contaPunti(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int punti=0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Iterator i=carteVinte.iterator();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (i.hasNext()) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Carta c=(Carta)i.next();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; punti=punti c.valore;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return punti;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=\&quot;leftmargin\&quot;&gt;&lt;strong&gt;Partita.java&lt;/strong&gt;&lt;/div&gt;&lt;div class=\&quot;story\&quot;&gt;&lt;div class=\&quot;story\&quot;&gt;package carte;&lt;br /&gt;&lt;br /&gt;import java.util.*;&lt;br /&gt;&lt;br /&gt;public class Partita {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Collection giocatori=new HashSet();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int ngiocatori;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mazzo mazzo;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tavolo tavolo=new Tavolo();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Partita(int nGiocatori){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert (36%nGiocatori==0):&amp;quot;numero di giocatori non valido&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i=0; i&amp;lt;nGiocatori; i  ) giocatori.add(new Giocatore(i,tavolo));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mazzo=new Mazzo(10);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mazzo.mescola();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; aggiungiCarteInTavola();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (! mazzo.isEmpty()) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; distribuisciCarte(3);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i=0;i&amp;lt;3;i  ) faiUnaMano();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proclamaVincitore();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void aggiungiCarteInTavola(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int k=0;k&amp;lt;4;k  ) tavolo.aggiungi((Carta)mazzo.prossimaCarta());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void distribuisciCarte(int n){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert (mazzo.size()&amp;gt;=n*giocatori.size()): &amp;quot;non ci sono abbastanza carte nel mazzo&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Iterator iter=giocatori.iterator();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (iter.hasNext()) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Giocatore g=(Giocatore)iter.next();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i=0;i&amp;lt;n;i  ) g.aggiungiCarta(mazzo.prossimaCarta());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void faiUnaMano(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Iterator iter=giocatori.iterator();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (iter.hasNext()) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Giocatore g=(Giocatore)iter.next();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g.gioca();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void proclamaVincitore(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int maxPunti=0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String vincitore=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Iterator iter=giocatori.iterator();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (iter.hasNext()) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Giocatore g=(Giocatore)iter.next();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int punti=g.contaPunti();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(g.nome &amp;quot; : &amp;quot; punti &amp;quot;n&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (punti&amp;gt;maxPunti) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; maxPunti=punti;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vincitore=g.nome;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&amp;quot;IL VINCITORE E\&#039; : &amp;quot; vincitore);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(String s[]){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Partita p=new Partita(2);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=\&quot;leftmargin\&quot;&gt;&lt;strong&gt;Note &lt;/strong&gt;&lt;/div&gt;&lt;div class=\&quot;story\&quot;&gt;&lt;div class=\&quot;story\&quot;&gt;Il codice va compilato con lo switch -ea per abilitare le asserzioni&lt;/div&gt;&lt;/div&gt;</description>
		</item>
		<item>
			<title>Questo esempio si basa su...</title>
			<link>http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=190&amp;page=690&amp;story=1630&amp;detail=1630#</link>
			<guid isPermaLink="true">http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=190&amp;page=690&amp;story=1630&amp;detail=1630#</guid>
			<pubDate>Wed, 18 Apr 2012 22:04:00 +0200</pubDate>
			<author>Marco Ronchetti marco.ronchetti@unitn.it</author>
<description>&lt;a href=&#039;http://latemar.science.unitn.it/segue/index.php?&amp;amp;action=site&amp;amp;site=2012Programmazione2&amp;section=190&amp;page=690&amp;story=1630&amp;detail=1630#&#039;&gt;Comparator &gt; &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Questo esempio si basa sul polimorfismo e sul concetto di comparator.&lt;br /&gt;&amp;nbsp;Si esamini il codice e si cerchi di comprendere dettagliatamente l\&#039;ordine dell\&#039;output.&lt;br /&gt;&lt;br /&gt;Main.java&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;package comparatorexample;&lt;br /&gt;&lt;br /&gt;import java.util.Collections;&lt;br /&gt;import java.util.Iterator;&lt;br /&gt;import java.util.LinkedList;&lt;br /&gt;import java.util.List;&lt;br /&gt;&lt;br /&gt;public class Main {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(String[] args) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Docente x=new Docente(&amp;quot;Mario&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Docente y=new Docente(&amp;quot;Sandra&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Studente z=new Studente(&amp;quot;Giovanna&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Studente w=new Studente(&amp;quot;Antonio&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;Persona&amp;gt; c=new LinkedList&amp;lt;Persona&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c.add(x);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c.add(y);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c.add(z);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c.add(w);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Collections.sort(c);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Iterator&amp;lt;Persona&amp;gt; i=c.iterator();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (i.hasNext()) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Persona p=i.next();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(p);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br /&gt;Sandra Docente&lt;br /&gt;Mario Docente&lt;br /&gt;Giovanna Studente&lt;br /&gt;Antonio Studente&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Persona.java&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;package comparatorexample;&lt;br /&gt;&lt;br /&gt;class Persona implements Comparable{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; String name=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int compareTo(Object t) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (t instanceof Docente) return 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if(t instanceof Studente) return -1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String toString(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return name &amp;quot; &amp;quot; this.getClass().getSimpleName();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Docente.java&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;package comparatorexample;&lt;br /&gt;&lt;br /&gt;class Docente extends Persona implements Comparable{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Docente(String s) {name=s;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int compareTo(Docente t) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return this.name.compareTo(t.name);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Studente.java&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;package comparatorexample;&lt;br /&gt;&lt;br /&gt;class Studente extends Persona implements Comparable{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Studente(String s) {name=s;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int compareTo(Studente t) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return this.name.compareTo(t.name);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}</description>
		</item>
		<item>
			<title>Bibliografia</title>
			<link>http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=187&amp;page=666&amp;story=1625&amp;detail=1625#</link>
			<guid isPermaLink="true">http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=187&amp;page=666&amp;story=1625&amp;detail=1625#</guid>
			<pubDate>Mon, 19 Mar 2012 18:51:00 +0100</pubDate>
			<author>Marco Ronchetti marco.ronchetti@unitn.it</author>
<description>&lt;a href=&#039;http://latemar.science.unitn.it/segue/index.php?&amp;amp;action=site&amp;amp;site=2012Programmazione2&amp;section=187&amp;page=666&amp;story=1625&amp;detail=1625#&#039;&gt;Documentazione &gt; Bibliografia&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Testo consigliato&lt;/h3&gt;&lt;table cellspacing=\&quot;1\&quot; cellpadding=\&quot;1\&quot; border=\&quot;0\&quot;&gt;    &lt;tbody&gt;        &lt;tr&gt;            &lt;td&gt;&lt;img height=\&quot;100\&quot; alt=\&quot;\&quot; src=\&quot;\[\[linkpath\]\]_userFiles/2011Pogrammazione2/TiJ.jpg\&quot; /&gt;&lt;/td&gt;            &lt;td&gt;            &lt;p&gt;Il testo raccomandato &amp;egrave; &lt;strong&gt;&amp;quot;Thinking in Java&amp;quot; &lt;/strong&gt;di Bruce Eckel (in inglese), Editore Prentice Hall PTR, 4 Edizione (Febbraio 2006), ISBN &lt;span class=\&quot;product_text\&quot;&gt;88-7192-303-0, 53 Euro. &lt;br /&gt;            &lt;br /&gt;            Esiste una traduzione italiana, per la quale l\&#039;editore ha sciaguratamente diviso il testo intero in tre volumi: la parte fondamentale del corso &amp;egrave; nel primo volume (&lt;/span&gt;&lt;strong&gt;&amp;quot;Thinking in Java - Volume 1 - I fondamenti&amp;quot;&lt;/strong&gt;, Euro 35)&lt;span class=\&quot;product_text\&quot;&gt;, che per&amp;ograve; non copre interamente il corso: alcuni argomenti sono trattati anche in alcuni capitoli del secondo ed il terzo volume (ognuno del costo di 35 Euro). &lt;/span&gt;&lt;/p&gt;            &lt;p&gt;E\&#039; comunque disponibile gratuitamente la &lt;a rel=\&quot;nofollow\&quot; title=\&quot;http://latemar.science.unitn.it/marco/Didattica/aa_2004_2005/Programmazione2/files/49591/TIJ-3rd-edition4.0.zip\&quot; class=\&quot;external text\&quot; href=\&quot;http://www.mindview.net/Books/TIJ/\&quot;&gt;versione elettronica &lt;/a&gt; della (precedente) 3a edizione (intera), in inglese.&lt;/p&gt;            &lt;/td&gt;        &lt;/tr&gt;    &lt;/tbody&gt;&lt;/table&gt;&lt;div class=\&quot;hr\&quot;&gt;&lt;hr /&gt;&lt;/div&gt;&lt;h3&gt;The Java Tutorial&lt;/h3&gt;Sul sito della Sun &amp;egrave; disponibile la collezione dei &lt;a href=\&quot;http://java.sun.com/docs/books/tutorial/\&quot;&gt;Java Tutorials&lt;/a&gt;,  che vengono costantemente aggiornati e sono un eccellente punto di  partenza per approfondire i vari aspetti della programmazione in Java.&lt;br /&gt;I due trails &amp;quot;Basics&amp;quot; e &amp;quot;GUI&amp;quot; sono rilevanti per il corso. Gli altri  trails introducono a tematiche non trattate nel corso stesso.&lt;div class=\&quot;hr\&quot;&gt;&lt;hr /&gt;&lt;/div&gt;&lt;div style=\&quot;margin-bottom: 10px;\&quot;&gt;&lt;div class=\&quot;leftmargin\&quot;&gt;&lt;strong&gt;&lt;h3&gt;The Swing Book&lt;/h3&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div class=\&quot;desc\&quot;&gt;Un &lt;a href=\&quot;../MARCO/DIDATTICA/AA_2004_2005/PROGRAMMAZIONE2/FILES/49591/SWINGDOC.ZIP\&quot;&gt;libro elettronico&lt;/a&gt;  di approfondimento della libreria grafica Swing. Contiene materiale  avanzato, che va oltre quanto richiesto per il corso. Non &amp;egrave; nuovissimo  ma va ancora bene.&lt;br /&gt;E\&#039; disponibile anche il &lt;a href=\&quot;../MARCO/DIDATTICA/AA_2004_2005/PROGRAMMAZIONE2/FILES/49591/SWING.ZIP\&quot;&gt;codice sorgente&lt;/a&gt; degli esempi contenuti nel libro. (L\&#039; originale &amp;egrave; su &lt;a href=\&quot;http://www.javafaq.nu/java/free-swing-book/\&quot;&gt;javafaq.nu&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;</description>
		</item>
		<item>
			<title>Slides delle esercitazioni</title>
			<link>http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=187&amp;page=666&amp;story=1624&amp;detail=1624#</link>
			<guid isPermaLink="true">http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=187&amp;page=666&amp;story=1624&amp;detail=1624#</guid>
			<pubDate>Mon, 19 Mar 2012 18:50:00 +0100</pubDate>
			<author>Marco Ronchetti marco.ronchetti@unitn.it</author>
<description>&lt;a href=&#039;http://latemar.science.unitn.it/segue/index.php?&amp;amp;action=site&amp;amp;site=2012Programmazione2&amp;section=187&amp;page=666&amp;story=1624&amp;detail=1624#&#039;&gt;Documentazione &gt; Slides delle esercitazioni&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Sono scaricabili da &lt;a href=\&quot;\[\[linkpath\]\]_userFiles/2011Pogrammazione2/slides.zip\&quot;&gt;qui&lt;/a&gt;.</description>
		</item>
		<item>
			<title>Date di esame</title>
			<link>http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=188&amp;page=688&amp;story=1623&amp;detail=1623#</link>
			<guid isPermaLink="true">http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=188&amp;page=688&amp;story=1623&amp;detail=1623#</guid>
			<pubDate>Mon, 19 Mar 2012 18:48:00 +0100</pubDate>
			<author>Marco Ronchetti marco.ronchetti@unitn.it</author>
<description>&lt;a href=&#039;http://latemar.science.unitn.it/segue/index.php?&amp;amp;action=site&amp;amp;site=2012Programmazione2&amp;section=188&amp;page=688&amp;story=1623&amp;detail=1623#&#039;&gt;Esame &gt; Date di esame&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Si raccomanda di fare riferimento ad Esse3 per il controllo delle date.&lt;br /&gt;Sono previsti appelli&amp;nbsp; il 12 giugno,&amp;nbsp; 18 luglio, 13 settembre, 10 gennaio 2013 e 14 febbraio 2013.</description>
		</item>
		<item>
			<title>Esempi di esame</title>
			<link>http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=188&amp;page=688&amp;story=1622&amp;detail=1622#</link>
			<guid isPermaLink="true">http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=188&amp;page=688&amp;story=1622&amp;detail=1622#</guid>
			<pubDate>Mon, 19 Mar 2012 18:47:00 +0100</pubDate>
			<author>Marco Ronchetti marco.ronchetti@unitn.it</author>
<description>&lt;a href=&#039;http://latemar.science.unitn.it/segue/index.php?&amp;amp;action=site&amp;amp;site=2012Programmazione2&amp;section=188&amp;page=688&amp;story=1622&amp;detail=1622#&#039;&gt;Esame &gt; Esempi di esame&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;    &lt;li&gt;&lt;a href=\&quot;\[\[linkpath\]\]_userFiles/2009Programmazione2/Esame1aParte-Esempio.pdf\&quot;&gt;Parte prima&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href=\&quot;\[\[linkpath\]\]_userFiles/2009Programmazione2/Esame2aParte-Esempio.pdf\&quot;&gt;Parte seconda&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</description>
		</item>
		<item>
			<title>Verbalizzazione</title>
			<link>http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=188&amp;page=688&amp;story=1621&amp;detail=1621#</link>
			<guid isPermaLink="true">http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=188&amp;page=688&amp;story=1621&amp;detail=1621#</guid>
			<pubDate>Mon, 19 Mar 2012 18:46:00 +0100</pubDate>
			<author>Marco Ronchetti marco.ronchetti@unitn.it</author>
<description>&lt;a href=&#039;http://latemar.science.unitn.it/segue/index.php?&amp;amp;action=site&amp;amp;site=2012Programmazione2&amp;section=188&amp;page=688&amp;story=1621&amp;detail=1621#&#039;&gt;Esame &gt; Verbalizzazione&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La verbalizzazione dell\&#039;esame &amp;egrave; elettronica.&lt;br /&gt;Lo studente ricever&amp;agrave; una e-mail da Esse3 quando gli esiti dell\&#039;esame   saranno pubblicati. Dovr&amp;agrave; accedere ad Esse3 e ACCETTARE o RIFIUTARE il   voto.&lt;br /&gt;Dopo due settimane dalla pubblicazione il docente potr&amp;agrave; stampare le   verbalizzazione, e la segreteria provveder&amp;agrave; a inserire in carriera il   voto. In genere l\&#039;intero processo richiede dai 30 ai 45 giorni.&amp;nbsp;&lt;br /&gt;NOTE: &lt;br /&gt;&lt;ul&gt;    &lt;li&gt;gli esami non esplicitamente accettati perderanno validit&amp;agrave;!&lt;/li&gt;    &lt;li&gt;La firma sul libretto NON &amp;eacute; necessaria! Studenti che desiderino   avere il libretto firmato possono comunque contattare il docente per &lt;a href=\&quot;mailto:marco.ronchetti@unitn.it?subject=Richiesta di firma sul libretto\&quot;&gt;e-mail&lt;/a&gt; per richiedere un appuntamento.&lt;/li&gt;&lt;/ul&gt;</description>
		</item>
		<item>
			<title>Accesso all\&#039;esame</title>
			<link>http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=188&amp;page=688&amp;story=1620&amp;detail=1620#</link>
			<guid isPermaLink="true">http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=188&amp;page=688&amp;story=1620&amp;detail=1620#</guid>
			<pubDate>Mon, 19 Mar 2012 18:46:00 +0100</pubDate>
			<author>Marco Ronchetti marco.ronchetti@unitn.it</author>
<description>&lt;a href=&#039;http://latemar.science.unitn.it/segue/index.php?&amp;amp;action=site&amp;amp;site=2012Programmazione2&amp;section=188&amp;page=688&amp;story=1620&amp;detail=1620#&#039;&gt;Esame &gt; Accesso all\&#039;esame&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Per accedere all\&#039;esame &amp;egrave; necessario iscriversi allo stesso tramite &lt;a href=\&quot;http://www.esse3.unitn.it/Start.do\&quot;&gt;Esse3&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Lo scopo dell\&#039;iscrizione all\&#039;&lt;span class=\&quot;il\&quot;&gt;esame&lt;/span&gt; &amp;egrave; quello di   predisporre quanto necessario per la verbalizzazione elettronica, ma   anche e soprattutto di permettere una opportuna pianificazione   logistica.&lt;br /&gt;&lt;br /&gt;E\&#039; quindi importante che - nel caso si decida di non partecipare   all\&#039;appello - si provveda a CANCELLARE tempestivamente la propria   iscrizione. Nel caso non fosse possibile cancellare l\&#039;iscrizione perch&amp;egrave;   le liste risultano gi&amp;agrave; congelate, occorrer&amp;agrave; AVVISARE il docente per &lt;a href=\&quot;mailto:marco.ronchetti@unitn.it?subject=Avviso di assenza all\&#039;esame\&quot;&gt;e-mail&lt;/a&gt; dalla prevista&amp;nbsp; assenza.&lt;br /&gt;&lt;br /&gt;Chi, essendo iscritto all\&#039;appello, non si presenter&amp;agrave; allo stesso senza aver avvisato verr&amp;agrave; escluso dall\&#039;appello successivo. &lt;br /&gt;Ovviamente cause di forza maggiore dell\&#039;ultimo minuto potranno essere giustifcate.</description>
		</item>
		<item>
			<title>Metodologia</title>
			<link>http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=185&amp;page=687&amp;story=1619&amp;detail=1619#</link>
			<guid isPermaLink="true">http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=185&amp;page=687&amp;story=1619&amp;detail=1619#</guid>
			<pubDate>Mon, 19 Mar 2012 18:44:00 +0100</pubDate>
			<author>Marco Ronchetti marco.ronchetti@unitn.it</author>
<description>&lt;a href=&#039;http://latemar.science.unitn.it/segue/index.php?&amp;amp;action=site&amp;amp;site=2012Programmazione2&amp;section=185&amp;page=687&amp;story=1619&amp;detail=1619#&#039;&gt;Informazioni generali &gt; Metodologia&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Gli studenti dovranno guardare i video delle lezioni &lt;strong&gt;PRIMA&lt;/strong&gt; di venire in classe.&lt;br /&gt;Le lezioni in aula saranno centrate su una discussione del materiale     contenuto nei video e consisteranno di esercizi, domande/risposte,     discussioni, esempi, approfondimenti.&lt;br /&gt;E\&#039; quindi CRUCIALE che gli studenti arrivino a lezione &lt;strong&gt;PREPARATI&lt;/strong&gt;, avendo visto e capito le lezioni videoregistrate!</description>
		</item>
		<item>
			<title>Ricorda che...</title>
			<link>http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=185&amp;page=687&amp;story=1618&amp;detail=1618#</link>
			<guid isPermaLink="true">http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=185&amp;page=687&amp;story=1618&amp;detail=1618#</guid>
			<pubDate>Mon, 19 Mar 2012 18:43:00 +0100</pubDate>
			<author>Marco Ronchetti marco.ronchetti@unitn.it</author>
<description>&lt;a href=&#039;http://latemar.science.unitn.it/segue/index.php?&amp;amp;action=site&amp;amp;site=2012Programmazione2&amp;section=185&amp;page=687&amp;story=1618&amp;detail=1618#&#039;&gt;Informazioni generali &gt; Ricorda che...&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;    &lt;li&gt;Simplicity is prerequisite for reliability.&lt;/li&gt;    &lt;li&gt;The competent programmer is fully aware of the limited size of    his own skull. He therefore approaches his task with full humility, and    avoids clever tricks like the plague.&lt;/li&gt;    &lt;li&gt;Besides a mathematical inclination, an exceptionally good    mastery of one\&#039;s native tongue is the most vital asset of a competent    programmer.&lt;/li&gt;    &lt;li&gt;If in physics there\&#039;s something you don\&#039;t understand, you can    always hide behind the uncharted depths of nature. You can always blame    God. You didn\&#039;t make it so complex yourself. But if your program   doesn\&#039;t  work, there is no one to hide behind. You cannot hide behind an    obstinate nature. If it doesn\&#039;t work, you\&#039;ve messed up.&lt;/li&gt;&lt;/ol&gt;</description>
		</item>
		<item>
			<title>Il docente pu&amp;ograve; ess...</title>
			<link>http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=185&amp;page=687&amp;story=1617&amp;detail=1617#</link>
			<guid isPermaLink="true">http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=185&amp;page=687&amp;story=1617&amp;detail=1617#</guid>
			<pubDate>Mon, 19 Mar 2012 18:42:00 +0100</pubDate>
			<author>Marco Ronchetti marco.ronchetti@unitn.it</author>
<description>&lt;a href=&#039;http://latemar.science.unitn.it/segue/index.php?&amp;amp;action=site&amp;amp;site=2012Programmazione2&amp;section=185&amp;page=687&amp;story=1617&amp;detail=1617#&#039;&gt;Informazioni generali &gt; &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Il docente pu&amp;ograve; essere contattato via e-mail all\&#039;indirizzo &lt;a href=\&quot;mailto:marco.ronchetti@unitn.it\&quot;&gt;marco.ronchetti@unitn.it&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Il corso inizia il 24 febbraio alle ore 8:30.&lt;br /&gt;&lt;br /&gt;Le lezioni si tengono il Luned&amp;igrave; (8:30-10:30) e il Venerd&amp;igrave; (8:30-10:30) in aula 103, nuova sede (Edificio &lt;a href=\&quot;http://it.wikipedia.org/wiki/Fabio_Ferrari_(fisico)\&quot;&gt;Fabio Ferrari&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;In &lt;strong&gt;alcune&lt;/strong&gt; settimane (che verranno comunicate a lezione, si veda   anche la sezione Calendario in questp sito) si terranno esercitazioni di   laboratorio (aula A201) nel pomeriggio alle 16:30. Gli studenti  saranno  divisi in due gruppi, a seconda della iniziale del cognome: A-L  il  marted&amp;igrave;, M-Z il mercoled&amp;igrave;. Chi avesse necessit&amp;agrave; documentabili di   cambiare il proprio turno pu&amp;ograve; &lt;a href=\&quot;mailto:marco.ronchetti@unitn.it?subject=RIchiesta cambio turno esercitazioni Programmazione 2\&quot;&gt;contattare il docente&lt;/a&gt;.</description>
		</item>
		<item>
			<title>
    Ven 24 Febbraio - I...</title>
			<link>http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=189&amp;page=686&amp;story=1616&amp;detail=1616#</link>
			<guid isPermaLink="true">http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=189&amp;page=686&amp;story=1616&amp;detail=1616#</guid>
			<pubDate>Mon, 19 Mar 2012 18:36:00 +0100</pubDate>
			<author>Marco Ronchetti marco.ronchetti@unitn.it</author>
<description>&lt;a href=&#039;http://latemar.science.unitn.it/segue/index.php?&amp;amp;action=site&amp;amp;site=2012Programmazione2&amp;section=189&amp;page=686&amp;story=1616&amp;detail=1616#&#039;&gt;Calendario lezioni &gt; &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;    &lt;li&gt;Ven 24 Febbraio - Introduzione&lt;/li&gt;    &lt;li&gt;Lun 27 Febbraio&amp;nbsp; - Video 2 - Richiami di C  &lt;/li&gt;    &lt;li&gt;Ven 2 Marzo - Video 3 - Richiami di C  &lt;/li&gt;    &lt;li&gt;Lun 5 Marzo - Video 4 -&lt;/li&gt;    &lt;li&gt;Ven 9 Marzo&lt;/li&gt;    &lt;li&gt;Lun 12 Marzo    &lt;ul&gt;        &lt;li&gt;Mar 13 Marzo - Esercitazione 1 - A-L&lt;/li&gt;        &lt;li&gt;Mer 14 Marzo - Esercitazione 1 - M-Z&lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;    &lt;li&gt;Ven 16 Marzo&lt;/li&gt;    &lt;li&gt;Lun 19 Marzo - Video 10&lt;/li&gt;    &lt;li&gt;Ven 23 Marzo - Video 11&lt;/li&gt;    &lt;li&gt;Lun 26 Marzo - Video 12&lt;/li&gt;    &lt;li&gt;Ven 30 Marzo - Video 12B    &lt;ul&gt;        &lt;li&gt;Mar 3 Aprile - Esercitazione 2 - A-L&lt;/li&gt;        &lt;li&gt;Mer 4 Aprile - Esercitazione 2 - M-Z&lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;    &lt;li&gt;Ven 13 Aprile - Video 13&lt;/li&gt;    &lt;li&gt;Lun 16 Aprile - Video 14     &lt;!--&lt;ul&gt;        &lt;li&gt;Mar 24 Aprile - Esercitazione 3 - A-L&lt;/li&gt;        &lt;li&gt;Mer 18 Aprile - Esercitazione 3 - M-Z&lt;/li&gt;    &lt;/ul&gt;--&gt;&lt;/li&gt;    &lt;li&gt;Lun 23 Aprile - Video 15 16    &lt;ul&gt;        &lt;li&gt;Mar 24 Aprile - Esercitazione 3 - A-L&lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;    &lt;li&gt;Ven 27 Aprile - Video 17    &lt;ul&gt;        &lt;li&gt;Mer 2 Maggo - Esercitazione 3 - M-Z&lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;    &lt;li&gt;Ven 4 Maggio - Video 18    &lt;ul&gt;        &lt;li&gt;Mar 8 Maggio - Esercitazione 4 - A-L&lt;/li&gt;        &lt;li&gt;Mer 9 Maggio - Esercitazione 4 - M-Z&lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;    &lt;li&gt;Ven 11 Maggio - Video 19&lt;/li&gt;    &lt;li&gt;Lun 14 Maggio - Video 20    &lt;ul&gt;        &lt;li&gt;Mar 15 Maggio - Esercitazione 5 - A-L&lt;/li&gt;        &lt;li&gt;Mer 16 Maggio - Esercitazione 5 - M-Z&lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;    &lt;li&gt;Ven 18 Maggio - Video 21&lt;/li&gt;    &lt;li&gt;Lun 21 Maggio - Video 22    &lt;ul&gt;        &lt;li&gt;mar 22 Maggio - Esercitazione 6 - A-L&lt;/li&gt;        &lt;li&gt;mer 23 Maggio - Esercitazione 6 - M-Z&lt;/li&gt;    &lt;/ul&gt;    &lt;/li&gt;&lt;/ol&gt;</description>
		</item>
	</channel>
</rss>