<?xml version="1.0" encoding="utf-8"  ?>
<rss version="2.0">
	<channel>
		<title>Programmazione 2 -a.a. 2011-12 &gt; Esempi &gt; MiniTetris</title>
		<link>http://latemar.science.unitn.it/segue/index.php?&amp;action=site&amp;site=2012Programmazione2&amp;section=190&amp;page=692</link>
		<description></description>
		<lastBuildDate>Fri, 24 Feb 2023 03:29:17 +0100</lastBuildDate>
		<generator>Segue RSS Generator</generator>
		<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;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>
	</channel>
</rss>