<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Jambas's Weblog</title>
	<atom:link href="http://jambas.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://jambas.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Mon, 08 Sep 2008 09:07:33 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='jambas.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Jambas's Weblog</title>
		<link>http://jambas.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://jambas.wordpress.com/osd.xml" title="Jambas&#039;s Weblog" />
	<atom:link rel='hub' href='http://jambas.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Ejercicio 4!</title>
		<link>http://jambas.wordpress.com/2008/09/08/ejercicio-4/</link>
		<comments>http://jambas.wordpress.com/2008/09/08/ejercicio-4/#comments</comments>
		<pubDate>Mon, 08 Sep 2008 09:07:33 +0000</pubDate>
		<dc:creator>jambas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jambas.wordpress.com/?p=28</guid>
		<description><![CDATA[El ejercicio 4 ha acabado con mi paciencia, no se cual es el fallo pero no consigo que funcione.  Voy a escribir mi solución comentada para que se vea la idea que yo tenía a la hora de resolver este ejercicio. Y si alguien encuentra el fallo y me puede ayudar se lo agradecería mucho [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jambas.wordpress.com&amp;blog=3015721&amp;post=28&amp;subd=jambas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>El ejercicio 4 ha acabado con mi paciencia, no se cual es el fallo pero no consigo que funcione.  Voy a escribir mi solución comentada para que se vea la idea que yo tenía a la hora de resolver este ejercicio. Y si alguien encuentra el fallo y me puede ayudar se lo agradecería mucho <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Aqui os lo dejo:</p>
<p>import java.awt.*;<br />
import java.awt.event.*;<br />
import javax.swing.*;<br />
import java.lang.String;<br />
import java.net.URL;<br />
import java.net.MalformedURLException;<br />
import java.io.IOException;<br />
import javax.media.*;<br />
<span style="color:#ff9900;">//Clase reproductor</span><br />
public class Reproductor extends JFrame implements ActionListener, ControllerListener{<br />
String archivo;<br />
Player player=null;<br />
URL url=null;<br />
Component componenteVisual=null;<br />
Component componenteControl=null;<br />
Component barraProgreso=null;<br />
int contador;<br />
Timer timer;<br />
int num=0;<br />
static boolean parado;<br />
static int duracion;<br />
static int []array;<br />
int a=0;</p>
<p>public Reproductor(String archivo){<br />
parado=false;<br />
contador=0;<br />
this.archivo=archivo;<br />
array=new int[2];<span style="color:#ff9900;">//No se hacerlo con un array de longitud indeterminada, le tengo que dar un valor</span><br />
timer=new Timer(1000, this);<br />
getContentPane().setLayout(new BorderLayout());</p>
<p>try{</p>
<p>if((url=new URL(archivo))==null){<br />
System.err.println(<span style="color:#00ff00;">&#8220;No se puede crear Url para el archivo&#8221;</span>);<br />
}<br />
else{<br />
player=Manager.createPlayer(url);<br />
player.addControllerListener(this);<br />
}<br />
}<br />
catch(MalformedURLException e){<br />
System.out.println(<span style="color:#00ff00;">&#8220;Url no valida&#8221;</span>);<br />
}<br />
catch(IOException e){<br />
System.out.println(<span style="color:#00ff00;">&#8220;Excepción de lectura/escritura&#8221;</span>);<br />
}<br />
catch(NoPlayerException e){<br />
System.out.println(<span style="color:#00ff00;">&#8220;No existe reproductor&#8221;</span>);<br />
}</p>
<p>player.start();<br />
timer.start();<br />
addWindowListener(new EscuchadorVentana());<br />
}</p>
<p>public void actionPerformed(ActionEvent e){<br />
<span style="color:#ff9900;">//Va contando los segundos de cada video</span><br />
contador++;<br />
}</p>
<p>public Player damePlayer(){<br />
return player;<br />
}</p>
<p>public synchronized void controllerUpdate(ControllerEvent e){</p>
<p>if(player==null){<br />
return ;<br />
}<br />
if(e instanceof RealizeCompleteEvent){<br />
if((componenteVisual=player.getVisualComponent())!=null){<br />
this.getContentPane().add(<span style="color:#00ff00;">&#8220;Center&#8221;</span>, componenteVisual);<br />
}</p>
<p>if((componenteControl=player.getControlPanelComponent())!=null){</p>
<p>this.getContentPane().add(<span style="color:#00ff00;">&#8220;South&#8221;</span>, componenteControl);<br />
}<br />
validate();<br />
}</p>
<p>else if(e instanceof EndOfMediaEvent){<br />
player.setMediaTime(new Time(0));</p>
<p><span style="color:#ff9900;">//Supuestamenete este evento captura cuando la reproducción termina, por eso paro el timer.</span><br />
timer.stop();<br />
<span style="color:#ff9900;">/*Mi idea es almacenar los tiempos en un array, el que primero termine se almacenará en la posición 0 y así sucesivamente. Entonces luego solo tendré que reproducir es que se encuentre en la primera posición(el de menor duración).*/</span><br />
array[a]=dameTiempo();</p>
<p><span style="color:#ff9900;">//El siguiente que termine se almacenará en la posición 1</span><br />
a++;</p>
<p><span style="color:#ff9900;">//La variable parado nos indica cuando ha terminado una reproducción </span><br />
parado=true;<br />
}</p>
<p>else if(e instanceof ControllerErrorEvent){<br />
player=null;<br />
System.err.println(((ControllerErrorEvent)e).getMessage());<br />
}<br />
}</p>
<p>public int dameTiempo(){<br />
return contador;<br />
}</p>
<p>public class EscuchadorVentana extends WindowAdapter{<br />
public void windowClosing(WindowEvent e){<br />
if (player != null){<br />
player.stop();<br />
player.deallocate();<br />
player.close();<br />
}<br />
System.exit(0);<br />
}<br />
}</p>
<p>public void temp(){<br />
if((componenteVisual=player.getVisualComponent())!=null){<br />
System.out.println(<span style="color:#00ff00;">&#8220;Este archivo contiene video&#8221;</span>);<br />
}<br />
else {<br />
System.out.println(<span style="color:#00ff00;">&#8220;Este archivo solo contiene audio&#8221;</span>);<br />
}<br />
}</p>
<p><span style="color:#ff9900;">//Main</span><br />
public static void main (String[]args){<br />
Reproductor r;</p>
<p><span style="color:#ff9900;">//Lo que intento hacer es crear varios objetos a la vez para que se vayan reproduciendo simultaneamente</span><br />
for (int i=0;i&lt;args.length;i++){<br />
r=new Reproductor(args[i]);</p>
<p><span style="color:#ff9900;">/* No podremos entrar en este if, hasta que la variable parado no esté a true, es decir, hasta que el<br />
video haya terminado de reproducirse.*/</span><br />
if(parado==true){<br />
int durMin=r.dameTiempo();<br />
System.out.println(<span style="color:#00ff00;">&#8220;Título: &#8220;</span>+args[i]+<span style="color:#00ff00;">&#8221; Duracion: &#8220;</span>+durMin);<br />
r.temp();<br />
}<br />
parado=false;<span style="color:#ff9900;">//Para que el siguiente video no entre en el if antes de tiempo</span></p>
<p><span style="color:#ff9900;">/*Comprobamos que el tiempo de este reproductor coincide con el de la primera posición y lo reproducimos<br />
aunque los de mayor duración sigan reproduciendose sin visualización, cuando hayan terminado se mostrara su titulo, tipo de archivo etc&#8230;*/</span><br />
if(r.dameTiempo()==array[0]){<br />
r.setSize(500,500);<br />
r.setVisible(true);<br />
r.damePlayer().start();<br />
}</p>
<p>}<br />
}<br />
}<span style="color:#ff9900;">//fin clase</span></p>
<p>Por si no ha quedado muy claro, mi idea era que al introducir los titulos de las pistas, todas se empezaran a reproducir a la vez sin visualizar y sin sonido (el sonido he sido incapaz de quitarlo, asi que sonaban todas a la vez&#8230;), y en cuanto la más corta terminara volver a reproducirla visualizándola. Cuando fueran terminando las demás se daría su título, duración y resto de requisitos que nos pedían en el enunciado.</p>
<p>El caso es que si que se reproducen todas a la vez pero no llega a dar las características del video, cuando van terminando las reproducciones el programa se queda parado y no hace nada.</p>
<p>Espero que alguno de vosotros pueda ayudarme, que llevo muuuuchos días quebrándome la cabeza!!</p>
<p>Un saludo!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jambas.wordpress.com/28/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jambas.wordpress.com/28/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jambas.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jambas.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jambas.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jambas.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jambas.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jambas.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jambas.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jambas.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jambas.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jambas.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jambas.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jambas.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jambas.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jambas.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jambas.wordpress.com&amp;blog=3015721&amp;post=28&amp;subd=jambas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jambas.wordpress.com/2008/09/08/ejercicio-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c9ed9543b306735e8c717aa4385a3e8e?s=96&#38;d=identicon" medium="image">
			<media:title type="html">jambas</media:title>
		</media:content>
	</item>
		<item>
		<title>Ejercicio 3!</title>
		<link>http://jambas.wordpress.com/2008/08/24/ejercicio-3/</link>
		<comments>http://jambas.wordpress.com/2008/08/24/ejercicio-3/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 17:57:15 +0000</pubDate>
		<dc:creator>jambas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jambas.wordpress.com/?p=25</guid>
		<description><![CDATA[Vamos con el ejercicio 3&#8230;dichoso juego del Arkanoid cutre&#8230; Lo que nos proponen en este ejercicio es crear una especie de arkanoid pero bastante más sencillo, esto es: Hay una zona de juego formada por cuatro paredes y una barra encima de la pared inferior.  Entre estas cuatro paredes hay una pelota que va rebotando [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jambas.wordpress.com&amp;blog=3015721&amp;post=25&amp;subd=jambas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Vamos con el ejercicio 3&#8230;dichoso juego del Arkanoid cutre&#8230;</p>
<p>Lo que nos proponen en este ejercicio es crear una especie de arkanoid pero bastante más sencillo, esto es:</p>
<p>Hay una zona de juego formada por cuatro paredes y una barra encima de la pared inferior.  Entre estas cuatro paredes hay una pelota que va rebotando entre pared y pared. El juego consiste en evitar que la pelota que va moviendose por la zona de juego no toque la pared inferior, para conseguir esto tendremos que mover la barra de derecha a izquierda con el teclado.</p>
<p>Al iniciar el juego la pelota empieza a moverse, cada vez que rebote contra nuestra barra acumulamos un punto. Debe haber un marcador fuera de la zona de juego que nos vaya indicando cuantos puntos llevamos acumulados.</p>
<p>El enunciado del ejercicio está claro, lo único que no especifica, y por lo tanto podemos elegir, es la dirección que tiene que llevar la pelota (si tiene que ir siempre en la misma, si tiene que cambiar&#8230;) que por mi parte ha sido lo que más me ha dificultado terminar el juego.</p>
<p>La implementación es la siguiente:</p>
<p><em><strong>CLASE ARKANOID<br />
</strong></em></p>
<p>import java.awt.*;<br />
import java.awt.event.*;<br />
import javax.swing.*;</p>
<p><span style="color:#ff6600;"> //Clase Arkanoid</span><br />
public class Arkanoid extends JFrame implements KeyListener, ActionListener{</p>
<p>JPanel panel1, panel2, panel3, panel4, panel5;<br />
JLabel zonajuego[][];<br />
JLabel marcador;<br />
Container contenedor;<br />
int contador=0;<br />
int X=30;<br />
int Y=20;<br />
Timer timer;<br />
int pos1,pos2,pos3;<br />
int a,b;<br />
int movanterior=1;</p>
<p>public Arkanoid(){<br />
super(<span style="color:#00ff00;">&#8220;Arkanoid cutre&#8221;</span>);</p>
<p><span style="color:#ff6600;">//Creamos<span style="color:#ff9900;"> <span style="color:#ff6600;">el pa</span></span>nel del marcador</span><br />
panel1=new JPanel();<br />
panel5=new JPanel();<br />
panel3=new JPanel();<br />
panel4=new JPanel();<br />
marcador=new JLabel(<span style="color:#00ff00;">&#8220;Tienes &#8220;</span>+Integer.toString(contador)+<span style="color:#00ff00;">&#8221; puntos&#8221;</span>);<br />
panel1.add(marcador);</p>
<p><span style="color:#ff6600;">//Creamos el panel de juego</span><br />
panel2=new JPanel();<br />
panel2.setLayout(new GridLayout(X,Y));<br />
zonajuego= new JLabel[X][Y];</p>
<p>for (int i=0;i&lt;zonajuego.length;i++){<br />
for (int j=0;j&lt;zonajuego[i].length;j++){<br />
zonajuego[i][j]=new JLabel();<br />
zonajuego[i][j].setOpaque(true);<br />
zonajuego[i][j].setBackground(Color.BLUE);<br />
panel2.add(    zonajuego[i][j]);<br />
}<br />
}</p>
<p><span style="color:#ff9900;"> <span style="color:#ff6600;"> //Añadimos al panel de contenido</span></span><br />
contenedor=getContentPane();<br />
contenedor.setLayout(new BorderLayout());<br />
contenedor.add(panel1, BorderLayout.NORTH);<br />
contenedor.add(panel2, BorderLayout.CENTER);<br />
contenedor.add(panel3, BorderLayout.EAST);<br />
contenedor.add(panel4, BorderLayout.WEST);<br />
contenedor.add(panel5, BorderLayout.SOUTH);</p>
<p><span style="color:#ff9900;"> <span style="color:#ff6600;">//Barra que se mueve</span></span><br />
pos1=Y/2;<br />
pos2=(Y/2)+1;<br />
pos3=(Y/2)-1;<br />
zonajuego[X-2][pos1].setBackground(Color.BLACK);<br />
zonajuego[X-2][pos2].setBackground(Color.BLACK);<br />
zonajuego[X-2][pos3].setBackground(Color.BLACK);</p>
<p><span style="color:#ff6600;">//Pelota </span><br />
a=2;<br />
b=Y/3;<br />
zonajuego[a][b].setBackground(Color.YELLOW);</p>
<p><span style="color:#ff6600;"> </span><span style="color:#ff6600;">//Añadimos evento</span><br />
this.addKeyListener(this);</p>
<p><span style="color:#ff9900;"> <span style="color:#ff6600;">//Timer</span></span><br />
timer = new Timer(100, this);<br />
timer.start();<br />
}</p>
<p><span style="color:#ff6600;">//Metodo que nos devuelve true si la pelota choca con la barra</span><br />
public boolean barra(){<br />
if(zonajuego[a][b]==zonajuego[X-3][pos1]||zonajuego[a][b]==zonajuego[X-3][pos2]||zonajuego[a][b]==zonajuego[X-3][pos3]){<br />
return true;<br />
}<br />
else{<br />
return false;<br />
}<br />
}</p>
<p><span style="color:#ff6600;">//Implementamos actionPerformed de la interfaz ActionListener</span><br />
public void actionPerformed(ActionEvent e){<br />
if(a==0){<br />
zonajuego[a][b].setBackground(Color.BLUE);<br />
if(b==(Y-1)){<br />
movanterior=5;<br />
}<br />
else{<br />
a+=1;<br />
int aleatorio=(int)((Math.random()*10)%2)+1;<br />
switch(aleatorio){<br />
case 1:b++; movanterior=1;<br />
break;<br />
case 2:b=b-1;movanterior=5;<br />
break;}<br />
zonajuego[a][b].setBackground(Color.YELLOW);<br />
}<br />
}</p>
<p>if(b==0){<br />
zonajuego[a][b].setBackground(Color.BLUE);<br />
if(a==0){<br />
movanterior=1;<br />
}<br />
else{<br />
b=b+1;<br />
if((movanterior==3)||(movanterior==8)){<br />
a=a-1;movanterior=4;<br />
}<br />
else if((movanterior==5)||(movanterior==2)){<br />
a+=1;<br />
movanterior=6;<br />
}<br />
zonajuego[a][b].setBackground(Color.YELLOW);<br />
}<br />
}</p>
<p>if(b==(Y-1)){<br />
zonajuego[a][b].setBackground(Color.BLUE);<br />
b=b-1;<br />
if((movanterior==1)||(movanterior==6)){<br />
a+=1;<br />
movanterior=2;<br />
}<br />
else if((movanterior==7)||(movanterior==4)){<br />
a=a-1;<br />
movanterior=8;<br />
}<br />
zonajuego[a][b].setBackground(Color.YELLOW);<br />
}</p>
<p>if(barra()){<br />
contador++;<br />
zonajuego[a][b].setBackground(Color.BLUE);<br />
a=a-1;<br />
int aleatorio=(int)((Math.random()*10)%2)+1;<br />
switch(aleatorio){<br />
case 1:b++;movanterior=7;<br />
break;<br />
case 2:b=b-1;movanterior=3;<br />
break;}<br />
zonajuego[a][b].setBackground(Color.YELLOW);<br />
marcador.setText(<span style="color:#00ff00;">&#8220;PUNTOS: &#8220;</span>+Integer.toString(contador));<br />
}</p>
<p>if((movanterior==6)&amp;&amp;(!barra())){<br />
zonajuego[a][b].setBackground(Color.BLUE);<br />
a+=1;<br />
b+=1;<br />
zonajuego[a][b].setBackground(Color.YELLOW);<br />
}</p>
<p>if((movanterior==5)&amp;&amp;(b&gt;0)){<br />
zonajuego[a][b].setBackground(Color.BLUE);<br />
a+=1;<br />
b=b-1;<br />
zonajuego[a][b].setBackground(Color.YELLOW);<br />
}</p>
<p>if((movanterior==1)&amp;&amp;(b&lt;Y)){<br />
zonajuego[a][b].setBackground(Color.BLUE);<br />
a+=1;<br />
b+=1;<br />
zonajuego[a][b].setBackground(Color.YELLOW);<br />
}</p>
<p>if((movanterior==7)&amp;&amp;(b&lt;Y)){<br />
zonajuego[a][b].setBackground(Color.BLUE);<br />
a=a-1;<br />
b+=1;<br />
zonajuego[a][b].setBackground(Color.YELLOW);<br />
}</p>
<p>if((movanterior==2)&amp;&amp;(!barra())){<br />
zonajuego[a][b].setBackground(Color.BLUE);<br />
a+=1;<br />
b=b-1;<br />
zonajuego[a][b].setBackground(Color.YELLOW);<br />
}</p>
<p>if((movanterior==8)&amp;&amp;(a&gt;0)){<br />
zonajuego[a][b].setBackground(Color.BLUE);<br />
a=a-1;<br />
b=b-1;<br />
zonajuego[a][b].setBackground(Color.YELLOW);<br />
}</p>
<p>if((movanterior==3)&amp;&amp;(b&gt;0)){<br />
zonajuego[a][b].setBackground(Color.BLUE);<br />
a=a-1;<br />
b=b-1;<br />
zonajuego[a][b].setBackground(Color.YELLOW);<br />
}</p>
<p>if((movanterior==4)&amp;&amp;(a&gt;0)){<br />
zonajuego[a][b].setBackground(Color.BLUE);<br />
a=a-1;<br />
b+=1;<br />
zonajuego[a][b].setBackground(Color.YELLOW);<br />
}</p>
<p>if(a==X-1){<br />
marcador.setText(<span style="color:#00ff00;">&#8220;FIN DEL JUEGO&#8221;</span>); <span style="color:#ff6600;">//System.exit(0);</span></p>
<p>}<br />
}<br />
<span style="color:#ff6600;">//Implementamos los siguientes métodos de la interfaz KeyListener</span></p>
<p>public void keyPressed(KeyEvent e){<br />
switch(e.getKeyCode()){<br />
case KeyEvent.VK_LEFT:<br />
if(pos3!=0){<br />
zonajuego[X-2][pos2].setBackground(Color.BLUE);<br />
zonajuego[X-2][pos3-1].setBackground(Color.BLACK);<br />
pos1=pos1-1;<br />
pos2=pos2-1;<br />
pos3=pos3-1;<br />
break;<br />
}<br />
else{<br />
break;<br />
}</p>
<p>case KeyEvent.VK_RIGHT:<br />
if(pos2!=Y-1){<br />
zonajuego[X-2][pos2+1].setBackground(Color.BLACK);<br />
zonajuego[X-2][pos3].setBackground(Color.BLUE);<br />
pos1=pos1+1;<br />
pos2=pos2+1;<br />
pos3=pos3+1;<br />
break;<br />
}<br />
else{<br />
break;<br />
}<br />
}<br />
}</p>
<p>public void keyTyped(KeyEvent e){<br />
e.consume();<br />
}</p>
<p>public void keyReleased(KeyEvent e){<br />
e.consume();<br />
}</p>
<p><span style="color:#ff6600;">//Main</span><br />
public static void main(String[]args){<br />
Arkanoid a=new Arkanoid();<br />
a.setSize(350,450);<br />
a.setVisible(true);<br />
a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);<br />
}</p>
<p>}<span style="color:#ff6600;">//Fin Clase</span></p>
<p><span style="text-decoration:underline;"><em><strong>CONCEPTOS FUNDAMENTALES</strong></em></span></p>
<p>Con este ejercicio hemos repasado conceptos de Swing y eventos. A diferencia de los anteriores, este ejercicio no especifica tanto cómo tenemos que hacerlo dándonos algo mas de libertad a la hora de plantearlo y buscar la forma de resolverlo.</p>
<p>Aún así, creo que el juego estaba enfocado a aclararnos conceptos de Swing( manejar ventanas, paneles, etiquetas&#8230;), y entender bien los eventos; con la creación del Timer vemos el uso de la interfaz ActionListener y la implementación del método actionPerformed, que es el que nos ha permitido que la pelota se mueva y rebote como nosotros le indiquemos. Para el movimiento de la barra utilizamos la interfaz KeyListener. Mediante los métodos keyPressed, keyTyped y keyReleased (los que hay que implementar obligatoriamente) hemos conseguido que la barra se mueva de izquierda a derecha, dandole la orden mediante el teclado.</p>
<p>En cuanto a los algoritmos que hay que plantear para resolver este ejercicio, creo que la dificultad ha sido mayor. Quizás los movimientos de la pelota era lo que más podía dificultar el juego.</p>
<p>Un saludoooo!!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jambas.wordpress.com/25/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jambas.wordpress.com/25/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jambas.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jambas.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jambas.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jambas.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jambas.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jambas.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jambas.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jambas.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jambas.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jambas.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jambas.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jambas.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jambas.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jambas.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jambas.wordpress.com&amp;blog=3015721&amp;post=25&amp;subd=jambas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jambas.wordpress.com/2008/08/24/ejercicio-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c9ed9543b306735e8c717aa4385a3e8e?s=96&#38;d=identicon" medium="image">
			<media:title type="html">jambas</media:title>
		</media:content>
	</item>
		<item>
		<title>Ejercicio 2!</title>
		<link>http://jambas.wordpress.com/2008/08/19/ejercicio-2/</link>
		<comments>http://jambas.wordpress.com/2008/08/19/ejercicio-2/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 10:51:31 +0000</pubDate>
		<dc:creator>jambas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Add new tag]]></category>

		<guid isPermaLink="false">http://jambas.wordpress.com/?p=18</guid>
		<description><![CDATA[Este ejercicio trata de crear una estructura de datos compleja. En lo referente al enunciado, me parece que está bien explicado. No hay ningún punto en el que haya dudado de lo que me preguntaban. Igualmente haré un resumen de lo que me piden a modo de introducción. Tenemos que crear una cola (con su [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jambas.wordpress.com&amp;blog=3015721&amp;post=18&amp;subd=jambas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Este ejercicio trata de crear una estructura de datos compleja. En lo referente al enunciado, me parece que está bien explicado. No hay ningún punto en el que haya dudado de lo que me preguntaban. Igualmente haré un resumen de lo que me piden a modo de introducción.</p>
<p>Tenemos que crear una cola (con su política de inserción/obtención FIFO), implementada mediante una lista enlazada (lista con memoria dinámica). Esta cola debe almacenar pilas (LIFO), en este caso implementadas mediante un array. En cada posición de este array debe haber un vector(memoria dinámica) que almacene enteros.</p>
<p style="text-align:center;"><a href="http://jambas.files.wordpress.com/2008/08/imagen.jpg"><img class="aligncenter size-medium wp-image-22" src="http://jambas.files.wordpress.com/2008/08/imagen.jpg?w=300&#038;h=141" alt="" width="300" height="141" /></a></p>
<p>Nos piden implementar los siguientes métodos en la clase pila: introducir un vector, extraer un vector, indicar si está vacía, indicar si está llena e imprimir; y los siguientes métodos en la clase cola: encolar una pila, desencolar una pila, indicar si está vacía e imprimir.</p>
<p>Lo que hay que conseguir es que llamando al método imprimir de la clase cola, éste imprima todas las pilas que contiene, los vectores que contiene cada pila y los enteros que contiene cada vector.</p>
<p>La implementación es la siguiente:</p>
<p><em><strong>CLASE VECTOR DE ENTEROS</strong></em></p>
<p>import java.util.Vector;<br />
import java.util.Enumeration;</p>
<p>public class VectorEnteros {<br />
<span style="color:#ff6600;"> //vector que va a guardar los enteros</span><br />
private Vector vectorenteros;<br />
<span style="color:#ff6600;">/*Por simplicidad creamos un array que contenga inicialmente los enteros que queremos guardar.<br />
Si queremos modificar el vector, solo hay que modificar el array correspondiente en la clase Prueba*/</span><br />
private int numeros[];</p>
<p>public VectorEnteros(){<br />
<span style="color:#ff6600;"> //Creo el vector</span><br />
vectorenteros=new Vector();<br />
}</p>
<p>public void añadir(int n[]){<br />
numeros=n;<br />
for (int i=0;i&lt; numeros.length; i++){<br />
Integer num=new Integer(numeros[i]);<br />
vectorenteros.addElement(num);<br />
}<br />
}</p>
<p>public void imprimir(){<br />
Enumeration e=vectorenteros.elements();<br />
while(e.hasMoreElements()){<br />
<span style="color:#ff6600;">//Hay que hacer cambio de tipo</span><br />
Integer entero=(Integer)e.nextElement();<br />
System.out.print(entero+&#8221; &#8220;);<br />
}<br />
System.out.println(&#8220;&#8221;);</p>
<p>}<br />
}<span style="color:#ff6600;">//Fin clase</span></p>
<p><em><strong>CLASE PILA</strong></em></p>
<p><span style="color:#ff6600;">//Clase Pila implementada como array en la que se almacenan vectores de enteros. Observar que se cumple LIFO<br />
</span><br />
public class Pila{<br />
private int numElementos;<br />
private VectorEnteros elementos[];<br />
private int indice;</p>
<p>public Pila(int numElementos){<br />
this.numElementos=numElementos;<br />
indice=-1;<br />
elementos= new VectorEnteros[numElementos];<br />
for(int i=0; i&lt;numElementos;i++){<br />
elementos[i]=new VectorEnteros();<br />
}<br />
}</p>
<p>public int vacia(){<br />
return(indice =-1);<br />
}<br />
public int llena(){<br />
return (indice=numElementos-1);<br />
}</p>
<p>public void push(VectorEnteros v){<br />
indice++;<br />
elementos[indice]=v;<br />
}</p>
<p>public VectorEnteros pop(){<br />
VectorEnteros v= elementos[indice];<br />
indice&#8211;;<br />
return v;<br />
}</p>
<p>public void imprimir(){<br />
int j=0;<br />
for (int i=elementos.length-1;i&gt;=0;i&#8211;){<br />
System.out.print(&#8220;Vector &#8220;+(j+1)+&#8221;\t&#8221;);<br />
elementos[i].imprimir();<br />
j++;<br />
}<br />
System.out.println(&#8220;&#8221;);</p>
<p>}<br />
}<span style="color:#ff6600;">//Fin clase</span></p>
<p><em><strong>CLASE NODO</strong></em></p>
<p><span style="color:#ff6600;">//Clase nodo para implementar posteriormente la cola dinámica</span></p>
<p>public class Nodo{<br />
public Nodo siguiente;<br />
public Pila pila;</p>
<p>public Nodo(){<br />
pila=null;<br />
siguiente=null;<br />
}</p>
<p>public Nodo(Pila p, Nodo sig){<br />
pila=p;<br />
siguiente=sig;<br />
}</p>
<p>public Nodo siguiente(){<br />
return siguiente;<br />
}<br />
public Pila elemento(){<br />
return pila;<br />
}<br />
public void actualizarPila(Pila p){<br />
pila=p;<br />
}<br />
public void actualizarSiguiente(Nodo sig){<br />
siguiente=sig;<br />
}<br />
}<span style="color:#ff6600;">//Fin clase</span></p>
<p><em><strong>CLASE COLA</strong></em></p>
<p><span style="color:#ff6600;">//Clase Cola implementada como lista dinámica en la que se almacenan pilas. Observar que se cumple FIFO</span></p>
<p>public class Cola{<br />
private Nodo primero;<br />
private Nodo ultimo;</p>
<p>public Cola(){<br />
primero = null;<br />
ultimo = null;<br />
}</p>
<p>public boolean vacia(){<br />
return (primero == null);<br />
}</p>
<p>public void encolar(Pila p){<br />
Nodo nuevo = new Nodo(p,null);</p>
<p>if(vacia())<br />
primero = nuevo;<br />
else<br />
ultimo.siguiente = nuevo;<br />
ultimo = nuevo;<br />
}</p>
<p>public Pila desencolar(){<br />
if(vacia()){<br />
System.err.println(&#8220;No hay elementos en la cola\n&#8221;);<br />
return null;<br />
}<br />
else{<br />
Pila p = primero.pila;<br />
primero = primero.siguiente;<br />
if(vacia()){<br />
ultimo = null;<br />
}<br />
return p;<br />
}<br />
}</p>
<p>public void imprimir(){<br />
int j=1;</p>
<p>if(!vacia()){<br />
System.out.println(&#8220;CONTENIDO DE LA COLA\n&#8221;);</p>
<p>while(!vacia()){<br />
System.out.println(&#8220;Pila &#8220;+j+&#8221;: \n&#8221;);</p>
<p>Pila p = primero.pila;<br />
primero = primero.siguiente;</p>
<p>ultimo = null;<br />
p.imprimir();<br />
j++;<br />
}<br />
System.out.println(&#8220;\n&#8221;);<br />
}<br />
else{<br />
System.out.println(&#8220;ESTA COLA ESTÁ VACÍA&#8221;);<br />
System.out.println(&#8220;\n\n&#8221;);<br />
}<br />
}<br />
}<span style="color:#ff6600;">//Fin clase</span></p>
<p><em><strong>CLASE DE PRUEBA</strong></em></p>
<p><em><strong></strong></em><br />
public class Prueba{<br />
public static void main(String[]args){</p>
<p><span style="color:#ff6600;">//creamos nuestros arrays de enteros</span><br />
int array1[]= {1,2,3,4,5,6,7};<br />
int array2[]= {1,2,3,4};<br />
int array3[]= {1,2};<br />
int array4[]= {1,2,3,4,5,6,7,8,9,10};<br />
int array5[]= {1};<br />
int array6[]= {1,2,3,4,5};<br />
int array7[]= {1,2,3,4,5,6};</p>
<p><span style="color:#ff6600;"> //rellenamos los vectores</span><br />
VectorEnteros v1=new VectorEnteros();v1.añadir(array1);<br />
VectorEnteros v2=new VectorEnteros();v2.añadir(array2);<br />
VectorEnteros v3=new VectorEnteros();v3.añadir(array3);<br />
VectorEnteros v4=new VectorEnteros();v4.añadir(array4);<br />
VectorEnteros v5=new VectorEnteros();v5.añadir(array5);<br />
VectorEnteros v6=new VectorEnteros();v6.añadir(array6);<br />
VectorEnteros v7=new VectorEnteros();v7.añadir(array7);</p>
<p><span style="color:#ff6600;">//creamos una pila con los 7 vectores de enteros </span><br />
Pila p1=new Pila(7);<br />
p1.push(v1);<br />
p1.push(v2);<br />
p1.push(v3);<br />
p1.push(v4);<br />
p1.push(v5);<br />
p1.push(v6);<br />
p1.push(v7);</p>
<p><span style="color:#ff6600;">//creamos varias pilas para almacenar en la cola y hacer pruebas con ellas </span><br />
Pila p2=new Pila(7); p2=p1;<br />
Pila p3=new Pila(7); p3=p1;<br />
Pila p4=new Pila(7); p4=p1;<br />
Pila p5=new Pila(7); p5=p1;<br />
Pila p6=new Pila(7); p6=p1;<br />
Pila p7=new Pila(4); //cambiamos el orden y el tamaño<br />
p7.push(v4);<br />
p7.push(v2);<br />
p7.push(v3);<br />
p7.push(v1);</p>
<p>Cola c1=new Cola();<br />
c1.encolar(p1);c1.encolar(p7);c1.encolar(p3);c1.encolar(p7);</p>
<p>Cola c2=new Cola();<br />
c2.encolar(p7);c2.encolar(p6);c2.encolar(p5);</p>
<p>Cola c3=new Cola();<br />
Cola c4=new Cola();</p>
<p>c4.encolar(p7);<br />
c1.desencolar();</p>
<p>c1.imprimir();<br />
c2.imprimir();<br />
c3.imprimir();<br />
c4.imprimir();<br />
}<br />
}<span style="color:#ff6600;">//Fin clase</span></p>
<p><span style="text-decoration:underline;"> <em><strong>CONCEPTOS FUNDAMENTALES</strong></em></span></p>
<p>En este ejercicio repasamos estructuras de datos tocando un poco todo lo que hemos dado durante el curso.</p>
<p>En el orden en que yo he ido haciendo el ejercicio, lo primero que he repasado es como crear una clase <span style="color:#000080;">vector de enteros</span>(con memoria dinámica); no es muy difícil si importamos la clase Vector que ya tenemos implementada (<span style="color:#ff0000;">import java.util.Vector</span>). El mayor problema que veo es a la hora de hacer los cambios de tipo, creo que es donde más metemos la pata&#8230; Hay que tener en cuenta que la clase Vector almacena una lista de elementos de tipo Object, o derivadas de ésta; en cualquier caso, estos elementos tienen que ser objetos. En nuestro caso, no podemos almacenar enteros como int(ya que es un tipo primitivo), tenemos que hacer un cambio de tipo a su clase envoltorio Integer para que funcione correctamente.</p>
<p>En la clase<span style="color:#000080;"> Pila </span>repasamos el comportamiento de inserción y obtención de objetos LIFO. Básicamente trabajamos con arrays, con las NullPointerException y esas cosas que nos hacen la vida un poco más difícil&#8230;Esta parte desde mi punto de vista es la más sencilla ya que trabajamos con memoria estática, que es a lo que más acostumbrados estamos.</p>
<p>La clase <span style="color:#000080;">Cola </span>es la que más problemas me ha creado; no por no entender el comportamiento de una cola, sino por tener que implementarla como lista enlazada. He tenido que buscar más información sobre las listas enlazadas a parte de los apuntes para por fin lograr entenderlas. La clase<span style="color:#000080;"> Nodo</span> es siempre igual, yo creo que he incluido métodos que no eran necesarios para nada, pero bueno&#8230;por si acaso! y en la clase cola, el método desencolar todavía no me queda claro del todo&#8230;</p>
<p>Para terminar he creado una clase <span style="color:#000080;">Prueba</span> donde como su nombre indica compruebo los métodos en los que más dudas tengo, y que todo funcione correctamente. Imagino que en algo habré metido la pata pero este ejercicio creo que lo he entendido bastante bien <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jambas.wordpress.com/18/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jambas.wordpress.com/18/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jambas.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jambas.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jambas.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jambas.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jambas.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jambas.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jambas.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jambas.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jambas.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jambas.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jambas.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jambas.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jambas.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jambas.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jambas.wordpress.com&amp;blog=3015721&amp;post=18&amp;subd=jambas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jambas.wordpress.com/2008/08/19/ejercicio-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c9ed9543b306735e8c717aa4385a3e8e?s=96&#38;d=identicon" medium="image">
			<media:title type="html">jambas</media:title>
		</media:content>

		<media:content url="http://jambas.files.wordpress.com/2008/08/imagen.jpg?w=300" medium="image" />
	</item>
		<item>
		<title>Ejercicio 1!</title>
		<link>http://jambas.wordpress.com/2008/08/14/ejercicio-1/</link>
		<comments>http://jambas.wordpress.com/2008/08/14/ejercicio-1/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 12:24:23 +0000</pubDate>
		<dc:creator>jambas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jambas.wordpress.com/?p=14</guid>
		<description><![CDATA[Antes de empezar con el ejercicio, voy a poner las principales dudas que me surgieron al leer el enunciado y que yo modificaría o dejaría mejor explicadas. El ejercicio consiste en crear un juego de personajes de rol donde tenemos que crear 4 clases y una interfaz: ·    Personaje: Recoge las características generales comunes a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jambas.wordpress.com&amp;blog=3015721&amp;post=14&amp;subd=jambas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Antes de empezar con el ejercicio, voy a poner las principales dudas que me surgieron al leer el enunciado y que yo modificaría o dejaría mejor explicadas.</p>
<p>El ejercicio consiste en crear un juego de personajes de rol donde tenemos que crear 4 clases y una interfaz:</p>
<p>·    Personaje: Recoge las características generales comunes a cualquier tipo de personaje. Habrá de <strong>programarse de forma que no se puedan crear instancias de esta clase.</strong><span style="color:#000080;"> (Esta frase no deja claro lo que nos están pidiendo. Quizás poniendo que no se pueden crear objetos o directamente diciendo que se trata de una clase padre(asi ya indicamos que el ejercicio trata de herencia) abstracta, se entendería mejor.</span><span style="color:#333399;">)</span><br />
o    Información que deberá guardar como mínimo: vida del personaje, fuerza, inteligencia, astucia y vigor inicial: Esta característica tendrá en todo momento el mismo valor para todos los personajes, esto es, si alguno cambia su vigor, el nuevo valor cambiará para todos.<span style="color:#000080;">(Lo que quiere decir, el atributo vigor tiene que ser estático, aunque la forma de explicarlo del enunciado también se entiende bien).</span><br />
o    Métodos:<br />
- Constructores varios: Además de inicializar la información del personaje, <strong>deberán tomar nota del objeto que los llamó, a fin poder llamarlo más tarde.</strong><span style="color:#000080;">(No termino de entender ni este apartado ni el siguiente)</span><br />
- Métodos de acceso a la información: Estos métodos, además, <strong>deberán notificar al método “personajeCambiado(Personaje)” del objeto que creo el personaje cada cambio</strong> que se produzca en la información del personaje.<br />
-  Un método “imprimir()” sin implementar.<span style="color:#000080;">(Queda claro que tiene que ser abstracto)</span><br />
·    Guerrero: Guardará la misma información y tendrá los mismos métodos que Personaje<span style="color:#000080;">(es decir, guerrero hereda de la clase personaje)</span>, y además añadirá:<br />
o    Información: habilidad, puntería y una variable que lleve la cuenta de cuantos guerreros hay en cada momento<span style="color:#000080;">(un contador).</span><br />
o    Métodos:<br />
- Un método para imprimir por pantalla toda la información del personaje.<br />
·    Maga:    Guardará la misma información y tendrá los mismos métodos que Personaje<span style="color:#000080;">(también hereda de la clase Personaje)</span>, y además añadirá:<br />
o    Información: Magia, poder de la luz y una variable que lleve la cuenta de cuantas magas hay en cada momento<span style="color:#000080;">(otro contador)</span>.<br />
o    Métodos:<br />
-   Un método para imprimir por pantalla toda la información del personaje.<br />
-    Esta clase deberá además implementar la interfaz “Hechicero”<span style="color:#000080;">(tiene que implementar los métodos que contenga la interfaz hechicero )</span>.<br />
·    Interfaz Hechicero:<br />
o    Métodos:<br />
-    Doblar magia.<br />
-    Doblar poder de la luz.<br />
·    Clase de prueba: El método “main” de esta clase de prueba dará un valor inicial al vigor de los personajes, después procederá a crear una maga. Debe incluir también un método personajeCambiado(Personaje), que simplemente imprima por pantalla las características del personaje cambiado.</p>
<p><em><strong>CLASE PERSONAJE</strong></em></p>
<p><span style="color:#ff6600;">//clase base Personaje, abstracta para que no se pueda instanciar.</span></p>
<p>public abstract class Personaje{<br />
public int vida;<br />
public int fuerza;<br />
public int inteligencia;<br />
public int astucia;<br />
public static int vigor;<span style="color:#ff6600;">//común a todos los personajes, por eso es estático</span></p>
<p><span style="color:#ff6600;"> //Constructor</span><br />
public Personaje(int vida, int fuerza, int inteligencia, int astucia, int v){<br />
this.vida=vida;<br />
this.fuerza=fuerza;<br />
this.inteligencia=inteligencia;<br />
this.astucia=astucia;<br />
vigor=v;<br />
}</p>
<p><span style="color:#ff6600;">//Método abstracto imprimir para implementar en clases derivadas</span><br />
public abstract void imprimir();</p>
<p><span style="color:#ff6600;">//Métodos de acceso </span><br />
public int dameVida(){<br />
return vida;<br />
}<br />
public int dameFuerza(){<br />
return fuerza;<br />
}<br />
public int dameInteligencia(){<br />
return inteligencia;<br />
}<br />
public int dameAstucia(){<br />
return astucia;<br />
}<br />
public int dameVigor(){</p>
<p>return vigor;<br />
}</p>
<p>public void ponVida(int vida){<br />
this.vida=vida;<br />
}<br />
public void ponFuerza(int fuerza){<br />
this.fuerza=fuerza;<br />
}<br />
public void ponInteligencia(int inteligencia){<br />
this.inteligencia=inteligencia;<br />
}<br />
public void ponAstucia(int astucia){<br />
this.astucia=astucia;<br />
}</p>
<p><span style="color:#ff6600;">//Método estático para cambiar el vigor de todos los personajes</span><br />
public static void ponVigor(int v){<br />
vigor=v;<br />
}</p>
<p>public void personajeCambiado(Personaje personaje){<br />
ponVida(personaje.vida);<br />
ponFuerza(personaje.fuerza);<br />
ponInteligencia(personaje.inteligencia);<br />
ponAstucia(personaje.astucia);<br />
ponVigor(personaje.vigor);</p>
<p>}</p>
<p>}<span style="color:#ff6600;">//Fin clase</span></p>
<p><em><strong>CLASE GUERRERO</strong></em></p>
<p><span style="color:#ff6600;">//Clase guerro que hereda de Personaje</span><br />
public class Guerrero extends Personaje{<br />
private int habilidad;<br />
private int punteria;<br />
private static int contadorguerreros=0;</p>
<p><span style="color:#ff6600;">//Constructor solo con los atributos de la clase base</span><br />
public Guerrero(int vida, int fuerza, int inteligencia, int astucia,int vigor){<br />
super (vida, fuerza, inteligencia, astucia,vigor);</p>
<p>}<br />
<span style="color:#ff6600;"> //Constructor con todos los atributos</span><br />
public Guerrero(int vida, int fuerza, int inteligencia, int astucia,int vigor,int habilidad, int punteria){<br />
this(vida, fuerza, inteligencia, astucia,vigor);<br />
this.habilidad=habilidad;<br />
this.punteria=punteria;<br />
contadorguerreros++;<br />
}</p>
<p><span style="color:#ff6600;">//Metodo imprimir</span><br />
public void imprimir(){<br />
System.out.println(&#8220;Características del guerrero: \nVida:&#8221;+vida+&#8221;\nFuerza: &#8220;+fuerza+&#8221;\nInteligencia: &#8220;+inteligencia+&#8221;\nAstucia :&#8221; +astucia+&#8221;\nVigor :&#8221;+vigor+&#8221;\nHabilidad :&#8221;+habilidad+&#8221;\nPuntería :&#8221;+punteria+&#8221;\nNumero de Guerreros :&#8221;+contadorguerreros+&#8221;\n\n&#8221;);<br />
}<br />
}<span style="color:#ff6600;">//Fin clase</span></p>
<p><em><strong>CLASE MAGA</strong></em></p>
<p><span style="color:#ff6600;">//Clase maga hereda de personaje e implementa la interfaz hechicero</span></p>
<p>public class Maga extends Personaje implements Hechicero{</p>
<p>private int magia;<br />
private int poder;<br />
private static int contadormagas=0;</p>
<p><span style="color:#ff6600;"> //Constructor solo con los atributos de la clase base</span><br />
public Maga(int vida, int fuerza, int inteligencia, int astucia, int vigor){<br />
super (vida, fuerza, inteligencia, astucia, vigor);<br />
}</p>
<p><span style="color:#ff6600;">//Constructor con todos los atributos</span><br />
public Maga(int vida, int fuerza, int inteligencia, int astucia, int vigor, int magia, int poder){<br />
this(vida, fuerza, inteligencia, astucia, vigor);<br />
this.magia=magia;<br />
this.poder=poder;<br />
contadormagas++;<br />
}</p>
<p><span style="color:#ff6600;">//Método imprimir</span><br />
public void imprimir(){<br />
System.out.println(&#8220;Características de la maga: \nVida:&#8221;+vida+&#8221;\nFuerza: &#8220;+fuerza+&#8221;\nInteligencia: &#8220;+inteligencia+&#8221;\nAstucia :&#8221;+astucia+&#8221;\nVigor :&#8221;+vigor+&#8221;\nMagia :&#8221;+magia+&#8221;\nPoder :&#8221;+poder+&#8221;\nNumero de Magas :&#8221;+contadormagas+&#8221;\n\n&#8221;);<br />
}</p>
<p><span style="color:#ff6600;"> //Implemento los métodos de la interfaz hechicero</span><br />
public int doblarMagia(){<br />
magia+=magia;<br />
return magia;<br />
}</p>
<p>public int doblarPoder(){<br />
poder+=poder;<br />
return poder;<br />
}<br />
}<span style="color:#ff6600;">//Fin clase</span></p>
<p><em><strong>INTERFAZ HECHICERO</strong></em></p>
<p>public interface Hechicero {<br />
public int doblarMagia();<br />
public int doblarPoder();</p>
<p>}</p>
<p><em><strong>CLASE PRUEBA </strong></em></p>
<p><span style="color:#ff6600;">//Clase de prueba</span></p>
<p>public class Prueba{</p>
<p>public void personajeCambiado(Personaje personaje){<br />
<span style="color:#ff6600;">/*No hace falta<br />
if(personaje instanceof Guerrero){<br />
personaje.imprimir();<br />
}<br />
if(personaje instanceof Maga){</span><br />
<span style="color:#ff6600;"> personaje.imprimir();<br />
}*/</span><br />
personaje.imprimir();<br />
}</p>
<p><span style="color:#ff6600;">//main</span><br />
public static void main(String[]args){<br />
Prueba p1=new Prueba();</p>
<p><span style="color:#ff6600;"> //damos valor inicial al vigor de todos los personajes</span><br />
Personaje.vigor=10;</p>
<p><span style="color:#ff6600;">//creamos una maga y un guerrero</span><br />
Guerrero g1=new Guerrero(1,2,3,4,500,5,6);<br />
Maga m1=new Maga(4,5,6,7,900,8,9);</p>
<p><span style="color:#ff6600;">//imprimimos y vemos que el último vigor que se actualiza es el que se guarda para todos los personajes</span><br />
p1.personajeCambiado(m1);<br />
p1.personajeCambiado(g1);</p>
<p><span style="color:#ff6600;">//cambiamos el vigor</span><br />
m1.ponVigor(2);</p>
<p><span style="color:#ff6600;"> //vemos que el vigor cambia para ambos personajes</span><br />
p1.personajeCambiado(m1);<br />
p1.personajeCambiado(g1);<br />
}<br />
}</p>
<p><span style="text-decoration:underline;"><strong>CONCEPTOS FUNDAMENTALES</strong></span>:</p>
<p>Los conceptos que sobre todo se repasan en este ejercicio son orientación a objetos y herencia.</p>
<p>Recordamos como implementar interfaces(que creo que estaba un poco olvidado), el uso de clases y métodos abstractos, o que indica la palabra static y que efecto tiene tanto en atributos como en métodos.</p>
<p>Aunque ayuda mucho recordar conceptos como los dichos anteriormente, sigo pensando que nuestro principal problema es &#8220;descifrar&#8221; el enunciado, pero bueno imagino que con algo de práctica lo conseguiremos, no?</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jambas.wordpress.com/14/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jambas.wordpress.com/14/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jambas.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jambas.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jambas.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jambas.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jambas.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jambas.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jambas.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jambas.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jambas.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jambas.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jambas.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jambas.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jambas.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jambas.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jambas.wordpress.com&amp;blog=3015721&amp;post=14&amp;subd=jambas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jambas.wordpress.com/2008/08/14/ejercicio-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c9ed9543b306735e8c717aa4385a3e8e?s=96&#38;d=identicon" medium="image">
			<media:title type="html">jambas</media:title>
		</media:content>
	</item>
		<item>
		<title>Práctica 5</title>
		<link>http://jambas.wordpress.com/2008/05/03/practica-5/</link>
		<comments>http://jambas.wordpress.com/2008/05/03/practica-5/#comments</comments>
		<pubDate>Sat, 03 May 2008 16:54:03 +0000</pubDate>
		<dc:creator>jambas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jambas.wordpress.com/?p=13</guid>
		<description><![CDATA[Bien, en esta práctica se complica ya un poco más la cosa&#8230; la primera vez que la leímos no entendimos ni papa&#8230;pero releyendo&#8230;llegamos a la conclusión de que seguíamos sin tener ni papa&#8230;aunque con un poco de esfuerzo, intentamos comprenderla poquito a poco&#8230; La primera parte trata sobre el polimorfismo y la herencia, que no vamos [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jambas.wordpress.com&amp;blog=3015721&amp;post=13&amp;subd=jambas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Bien, en esta práctica se complica ya un poco más la cosa&#8230; la primera vez que la leímos no entendimos ni papa&#8230;pero releyendo&#8230;llegamos a la conclusión de que seguíamos sin tener ni papa&#8230;aunque con un poco de esfuerzo, intentamos comprenderla poquito a poco&#8230;</p>
<p>La primera parte trata sobre el polimorfismo y la herencia, que no vamos a explicarla aquí ya que en la práctica está bastante bien explicado.</p>
<p>El primer ejercicio trataba sobre llamar al método de la superclase toSting() con la referencia super&#8230; ni idea!! Pero con la ayuda de otros compañeros y leyendo sus blogs,hemos conseguido entenderlo. Esto es bastante útil ya que no hace falta escribir el mismo método en cada una de las clases. Que menudo rollo&#8230;</p>
<p>El segundo ejercicio es sencillo de entender, ya que explica la funcionalidad de una interfaz (Almacenable) en la clase Clase.</p>
<p>A partir del tercer ejercicio, nos hemos liado bastante más, ya que de golpe, en la práctica nos pide usar unos métodos que no habíamos visto nunca y que no especifican en la misma.</p>
<p>En la clase ComponenteGrafico nos piden implementar el constructor (en el cual hay que incializar las variables que le pasamos como parámetros), y los métodos pintaFondo(), pintaBorde() y paint(). En los métodos pintaFondo() y pintaBorde(), hemos tenido que usar lo métodos setColor(), fillRect() y drawRect(), cosa que no teniamos ni idea y hemos tenido que acudir a las solución de la práctica.</p>
<p>En las clases Boton y Menu, más de lo mismo&#8230; buscando y buscando en API y con la cantidad de métodos que hay&#8230;no encontrábamos nada.</p>
<p>En la clase GUIContenedor hemos tenido que usar if e ir recorriendo el array, por eso nos ha resultado un poco más sencillo.</p>
<p>Con el resto de clases&#8230;otra vez los mismos problemas</p>
<p>Aun así, esta práctica tenía muy poca información sobre GUI, asi que habrá que estudiar más para entenderla!! Es una de las prácticas que nos queda pendiente por volver a hacer varias veces para que nos quede todo más claro.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jambas.wordpress.com/13/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jambas.wordpress.com/13/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jambas.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jambas.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jambas.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jambas.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jambas.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jambas.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jambas.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jambas.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jambas.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jambas.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jambas.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jambas.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jambas.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jambas.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jambas.wordpress.com&amp;blog=3015721&amp;post=13&amp;subd=jambas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jambas.wordpress.com/2008/05/03/practica-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c9ed9543b306735e8c717aa4385a3e8e?s=96&#38;d=identicon" medium="image">
			<media:title type="html">jambas</media:title>
		</media:content>
	</item>
		<item>
		<title>Práctica 4</title>
		<link>http://jambas.wordpress.com/2008/04/01/practica-4/</link>
		<comments>http://jambas.wordpress.com/2008/04/01/practica-4/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 18:28:24 +0000</pubDate>
		<dc:creator>jambas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jambas.wordpress.com/?p=12</guid>
		<description><![CDATA[En esta práctica lo que se intenta explicar principalmente es el concepto de herencia. La introdución explicativa del principio ayudó bastante sobre todo a los que no tenemos mucha idea de este tema. La parte teórica sobre jerarquía de clases (clases bases, subclases&#8230;) resultó bastante sencilla de entender. En los ejercicios del 1 y 2, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jambas.wordpress.com&amp;blog=3015721&amp;post=12&amp;subd=jambas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>En esta práctica lo que se intenta explicar principalmente es el concepto de <b>herencia. </b></p>
<p>La introdución explicativa del principio ayudó bastante sobre todo a los que no tenemos mucha idea de este tema. La parte teórica sobre jerarquía de clases (clases bases, subclases&#8230;) resultó bastante sencilla de entender.</p>
<p>En los ejercicios del 1 y 2, las clases Miembro y Atributo plantean practicamente los mismos problemas:  implementar el constructor y el método toString, teniendo en cuenta que una de las clases es clase base y otra es subclase. La parte &#8220;menos fácil&#8221; del primer ejercicio es la llamada al método toString de la clase Modificador, pero no nos supuso mucho problema. En este ejercicio se nos plantea la diferencia entre los modificadores de acceso private y protected. Según lo que vimos en el cuatrimestre anterior(si no me equivoco), cuando encotramos modificadores de tipo private el acceso a esos métodos, atributos&#8230;solo se puede hacer desde la propia clase, sin embargo con protected también se permite el acceso desde las subclases. En el ejercicio 2 se nos pregunta por la palabra <b>super</b>, que hemos utilizado durante toda la práctica para hacer referencia a los atributos de la clase base desde el constructor de las subclases.</p>
<p>En las clases Metodo y Constructor (donde constructor deriva de método), la única novedad son los parámetros, un array de objetos de la clase Parámetro, pero con algo de manejo en arrays tampoco resulta complicado. Una parte que si nos llevó más tiempo fue entender bien qué hacía la clase Parámetro, la diferencia entre String y StringBuffer y lo que hacía el método append(), pero nada que no se pueda solucionar con un poco de API <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>El apartado más difícil fue el 5; la clase Clase, donde juntamos todas las clases anteriores. Trabajamos con arrays, recordamos lo que es una interfaz y nos introdujo el operador instanceof (para comprobar que teneníamos dentro de cada posición del array miembros). Este ejercicio también se dificulta si intentas entender el contenido del paquete java.lang.reflect&#8230; además quita mucho tiempo.</p>
<p>Uno de los problemas que he visto en la práctica es no poder ir ejecutando cada uno de los ejercicios para comprobar que obteníamos lo que buscábamos, algo que a programadores novatos como nosotros ayuda mucho.</p>
<p>En general la práctica ha estado un poco desequilibrada, unos apartados bastante sencillos y algunos muy  liosos(a parte, como siempre, de lo largas que son&#8230;), pero por lo menos creo que ha conseguido aclararnos el tema de herencia, que era uno de los objetivos.</p>
<p>Hasta la próxima! xaooo</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jambas.wordpress.com/12/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jambas.wordpress.com/12/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jambas.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jambas.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jambas.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jambas.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jambas.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jambas.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jambas.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jambas.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jambas.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jambas.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jambas.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jambas.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jambas.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jambas.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jambas.wordpress.com&amp;blog=3015721&amp;post=12&amp;subd=jambas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jambas.wordpress.com/2008/04/01/practica-4/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c9ed9543b306735e8c717aa4385a3e8e?s=96&#38;d=identicon" medium="image">
			<media:title type="html">jambas</media:title>
		</media:content>
	</item>
		<item>
		<title>Práctica 3</title>
		<link>http://jambas.wordpress.com/2008/03/18/practica-3/</link>
		<comments>http://jambas.wordpress.com/2008/03/18/practica-3/#comments</comments>
		<pubDate>Tue, 18 Mar 2008 17:07:43 +0000</pubDate>
		<dc:creator>jambas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jambas.wordpress.com/?p=11</guid>
		<description><![CDATA[Como bien dice el enunciado, esta práctica consiste en un ligero repaso sobre el manejo objetos. El ejercicio 0 es bastante simple y tampoco necesita mucho comentario, ya que es un ejercicio hecho en la primera práctica de RDA.  El objetivo de la práctica consiste en tener un poco de conocimiento sobre la abstracción y encapsulación [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jambas.wordpress.com&amp;blog=3015721&amp;post=11&amp;subd=jambas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Como bien dice el enunciado, esta práctica consiste en un ligero repaso sobre el manejo objetos.</p>
<p>El ejercicio 0 es bastante simple y tampoco necesita mucho comentario, ya que es un ejercicio hecho en la primera práctica de RDA.</p>
<p> El objetivo de la práctica consiste en tener un poco de conocimiento sobre la abstracción y encapsulación y saber obtener información sobre los &#8220;metadatos&#8221; en tiempo de ejecución.</p>
<p>No describiremos cada ejercicio ya que prácticamente todos se hacen de la misma forma. En las clases Metodo, Atributo y Constructor, debemos inicializar los valores de los atributos en su respectivo constructor, y en el método toString(), implementarlo de tal forma que nos devuelvan una cadena de caracteres con los datos de cada uno de ellos.</p>
<p> En la clase Clase, se han creado tres arrays para almacenar en ellos los objetos de las clases Atributos, Métodos y Constructores . En sus métodos get, hemos recorrido estos arrays e invocado al método toString() para que nos devuelva la información(parecido al ejercicio anterior).</p>
<p>En AnalizadorObjeto es más de lo mismo&#8230;así que tampoco vamos a alargarnos mucho. Lo hemos comprendido bastante bien.</p>
<p> Agur</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jambas.wordpress.com/11/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jambas.wordpress.com/11/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jambas.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jambas.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jambas.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jambas.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jambas.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jambas.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jambas.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jambas.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jambas.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jambas.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jambas.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jambas.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jambas.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jambas.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jambas.wordpress.com&amp;blog=3015721&amp;post=11&amp;subd=jambas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jambas.wordpress.com/2008/03/18/practica-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c9ed9543b306735e8c717aa4385a3e8e?s=96&#38;d=identicon" medium="image">
			<media:title type="html">jambas</media:title>
		</media:content>
	</item>
		<item>
		<title>Práctica 2!!!</title>
		<link>http://jambas.wordpress.com/2008/03/14/practica-2/</link>
		<comments>http://jambas.wordpress.com/2008/03/14/practica-2/#comments</comments>
		<pubDate>Fri, 14 Mar 2008 10:57:22 +0000</pubDate>
		<dc:creator>jambas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jambas.wordpress.com/?p=10</guid>
		<description><![CDATA[Vamos con la segunda práctica&#8230; En general me ha parecido bastante interesante porque te refresca la memoria en el tema de excepciones que ya lo teníamos un poco olvidado&#8230;pero quizás era demasiado larga para el tiempo que tenemos, a nosotras por lo menos no nos dio tiempo a terminarla En el ejercicio 1 nos pide [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jambas.wordpress.com&amp;blog=3015721&amp;post=10&amp;subd=jambas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Vamos con la segunda práctica&#8230;</p>
<p>En general me ha parecido bastante interesante porque te refresca la memoria en el tema de excepciones que ya lo teníamos un poco olvidado&#8230;pero quizás era demasiado larga para el tiempo que tenemos, a nosotras por lo menos no nos dio tiempo a terminarla <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>En el ejercicio 1 nos pide que trabajemos con el classpath. Este apartado no nos ha dado ningún problema, aunque en la práctica no explica muy bien su utilidad&#8230;si no nos equivocamos, debe especificar la ruta donde se tienen que buscar los archivos que tenemos que compilar y ejecutar.</p>
<p>En cuanto a las trazas de depuración y aserciones, creo que es algo que todos habíamos utilizado antes para saber donde están los errores pero que ninguno sabíamos como se llamaban. Es bastante útil para no perder mucho tiempo localizando fallos. Creo que la única duda de este ejercicio fue el tema de System.exit(1); no sabíamos muy bien porqué era un 1 pero consultando en otros blogs hemos encontrado la respuesta, así que asunto arreglado!</p>
<p>Sin duda el ejercicio 3 nos pareció el más complicado. Había que utilizar mucho el API. Las excepciones no era lo más difícil de entender, sino lo que hacían el InputStream, OutputStream, etc. Nos llevó bastante tiempo entender lo que nos pedían y tampoco no aclaró mucho de excepciones&#8230;.por lo menos recordamos el try/catch un poco!</p>
<p>En el 4 hemos visto muchos tipos de excepciones que suelen salir muy a menudo ( y conviene evitar&#8230;). Es el la parte de la práctica que más nos ha ayudado.Es más fácil que el apartado anterior y aclara mucho las ideas,además, también nos recuerda otras cosas como los métodos parseInt, valueOf&#8230;que no deberíamos olvidar nunca <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Un saludo!!!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jambas.wordpress.com/10/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jambas.wordpress.com/10/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jambas.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jambas.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jambas.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jambas.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jambas.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jambas.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jambas.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jambas.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jambas.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jambas.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jambas.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jambas.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jambas.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jambas.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jambas.wordpress.com&amp;blog=3015721&amp;post=10&amp;subd=jambas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jambas.wordpress.com/2008/03/14/practica-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c9ed9543b306735e8c717aa4385a3e8e?s=96&#38;d=identicon" medium="image">
			<media:title type="html">jambas</media:title>
		</media:content>
	</item>
		<item>
		<title>Práctica 1 OCA</title>
		<link>http://jambas.wordpress.com/2008/03/09/practica-1-oca/</link>
		<comments>http://jambas.wordpress.com/2008/03/09/practica-1-oca/#comments</comments>
		<pubDate>Sun, 09 Mar 2008 18:49:08 +0000</pubDate>
		<dc:creator>jambas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jambas.wordpress.com/?p=8</guid>
		<description><![CDATA[Bueno lo primero de todo, sentimos empezar a escribir tarde&#8230; pero hemos tenido problemillas a la hora de darnos de alta aquí y demás. Esta práctica consiste en un repaso de RDA, y bueno&#8230; repaso repaso no es, ya que no recordamos que esto se diese en RDA. En fín&#8230; nos dispusimos a empezar la [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jambas.wordpress.com&amp;blog=3015721&amp;post=8&amp;subd=jambas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Bueno lo primero de todo, sentimos empezar a escribir tarde&#8230; pero hemos tenido problemillas a la hora de darnos de alta aquí y demás.</p>
<p>Esta práctica consiste en un repaso de RDA, y bueno&#8230; repaso repaso no es, ya que no recordamos que esto se diese en RDA. En fín&#8230; nos dispusimos a empezar la práctica después de estar buscando un ordenador que funcionase, y con la ayuda del profesor, no nos pareció difícil.</p>
<p>También es verdad lo que dicen los profesores&#8230;hay que mirarse la práctica e intentar hacerla antes de ir a clase porque apenas da tiempo para hacer siquiera la mitad de ella. Asique lección aprendida :p</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jambas.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jambas.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jambas.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jambas.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jambas.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jambas.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jambas.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jambas.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jambas.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jambas.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jambas.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jambas.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jambas.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jambas.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jambas.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jambas.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jambas.wordpress.com&amp;blog=3015721&amp;post=8&amp;subd=jambas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jambas.wordpress.com/2008/03/09/practica-1-oca/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c9ed9543b306735e8c717aa4385a3e8e?s=96&#38;d=identicon" medium="image">
			<media:title type="html">jambas</media:title>
		</media:content>
	</item>
		<item>
		<title>Holaaaa!!!</title>
		<link>http://jambas.wordpress.com/2008/03/06/holaaaa/</link>
		<comments>http://jambas.wordpress.com/2008/03/06/holaaaa/#comments</comments>
		<pubDate>Thu, 06 Mar 2008 17:29:50 +0000</pubDate>
		<dc:creator>jambas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jambas.wordpress.com/2008/03/06/holaaaa/</guid>
		<description><![CDATA[Hola! Somos Merche y Elena, bienvenidos a nuestro blog!!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jambas.wordpress.com&amp;blog=3015721&amp;post=4&amp;subd=jambas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hola! Somos Merche y Elena, bienvenidos a nuestro blog!!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jambas.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jambas.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jambas.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jambas.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jambas.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jambas.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jambas.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jambas.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jambas.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jambas.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jambas.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jambas.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jambas.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jambas.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jambas.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jambas.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jambas.wordpress.com&amp;blog=3015721&amp;post=4&amp;subd=jambas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jambas.wordpress.com/2008/03/06/holaaaa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c9ed9543b306735e8c717aa4385a3e8e?s=96&#38;d=identicon" medium="image">
			<media:title type="html">jambas</media:title>
		</media:content>
	</item>
	</channel>
</rss>
