跟大家分享一下自己写的源码。该如何处理

跟大家分享一下自己写的源码。
学习了半个学期的JAVA实训总要做点什么,就写了个小游戏,在这里跟大家分享一下。希望大家多多指点一下小弟。
在这里也感谢****的朋友们的帮忙。
Java code

package dandan;
import java.util.*;
import  javax.swing.JOptionPane;
public class dandanModel extends Observable implements Runnable
{     
    private int i=0;    private int i2=100;    private Node nodeArray;
//i是用来计数炸弹共落下去了多少次,然后用它来判断是否要落下炸弹。i2是用来控制sleep()了多少
//秒的,通过它可以改变关数。nodeArray是QQ头像的标记体。
    private Node nodeFood;    private Node nodeFood1;    private Node nodeFood2;
    private Node nodeplane1;    private Node nodeplane2;    private Node nodeplane3;
   //nodeFood是用来表示炸弹nodeplane1是用来表示飞机         
    private boolean running=true;    
   //标记是在运行当中     
    public dandanModel()
    {    reset();     }//构造函数
    public void reset()//定义了炸弹,飞机和QQ头像的初始位置 
    {    nodeArray=new Node(300,200);    nodeFood=new Node(15,300);
nodeFood1=new Node(300,15);    nodeFood2=new Node(440,15);
        nodeplane1=new Node(10,300);    nodeplane2=new Node(300,10);
        nodeplane3=new Node(440,10);    }     
    public void changeDirection(int maX,int maY)
    {    nodeArray=new Node(maX,maY);    }//创建新的QQ头像位置
    public Node getCreat()//通过这个函数来让外部调用炸弹
    {    return nodeFood;    }
    public Node getCreat1()
    {    return nodeFood1;}
    public Node getCreat2()
    {    return nodeFood2;}
    public Node getplane1()
    {    return nodeplane1;    }
    public Node getplane2()
    {    return nodeplane2; }
    public Node getplane3()
    {    return nodeplane3; }
    public boolean moveOn()//这个函数是用来判断是否QQ被炸,进入下一关
    {    moveFood();
//通过判断坐标范围来判断QQ头像是否被子炸
        boolean 
b1=((nodeArray.x<=nodeFood.x&&nodeFood.x<=nodeArray.x+20)||(nodeArray.x<=nodeFood.x+10&&nodeFood.x+10<=nodeArray.x+20));
        boolean b2=((nodeArray.y<=nodeFood.y&&nodeFood.y<=nodeArray.y+20)||(nodeArray.y<=nodeFood.y+10&&nodeFood.y+10<=nodeArray.y+20));
        boolean b3=((nodeArray.x<=nodeFood1.x&&nodeFood1.x<=nodeArray.x+20)||(nodeArray.x<=nodeFood1.x+10&&nodeFood1.x+10<=nodeArray.x+20));
        boolean b4=((nodeArray.y<=nodeFood1.y&&nodeFood1.y<=nodeArray.y+20)||(nodeArray.y<=nodeFood1.y+10&&nodeFood1.y+10<=nodeArray.y+20));
        boolean b5=((nodeArray.x<=nodeFood2.x&&nodeFood2.x<=nodeArray.x+20)||(nodeArray.x<=nodeFood2.x+10&&nodeFood2.x+10<=nodeArray.x+20));
        boolean b6=((nodeArray.y<=nodeFood2.y&&nodeFood2.y<=nodeArray.y+20)||(nodeArray.y<=nodeFood2.y+10&&nodeFood2.y+10<=nodeArray.y+20));
        if(b1==true&&b2==true)
        {    new zhadanMusic();
            JOptionPane.showMessageDialog(null,"continue the game?","Game over",JOptionPane.INFORMATION_MESSAGE);    
            return false;}
        if(b3==true&&b4==true)
        {    new zhadanMusic();
            JOptionPane.showMessageDialog(null,"continue the game?","Game over",JOptionPane.INFORMATION_MESSAGE);    
            return false;} 
        if(b5==true&&b6==true)
        {   new zhadanMusic();
           JOptionPane.showMessageDialog(null,"continue thegame?","Gameover",JOptionPane.INFORMATION_MESSAGE);    
return false; } 
        return true;
    }
//这个函数是用来改变飞机,炸弹的坐标位置
    private void moveFood( )
    {
        if(i2==0)
        {JOptionPane.showMessageDialog(null,"已经通关","恭喜",JOptionPane.INFORMATION_MESSAGE);
            i2=100;    }
        if(i%150==0&&i>1)
        {JOptionPane.showMessageDialog(null,"进入下一关?","恭喜",JOptionPane.INFORMATION_MESSAGE);
            i2-=20;    }        
        try    {Thread.sleep(i2);}catch(Exception e)    {}    
        if(i%30==0)   nodeFood1.x+=40;         
        if(nodeFood1.x>=440)      nodeFood1.x=15;     
        nodeplane2.x=nodeFood1.x;    
        nodeFood1.y+=20;
        if(nodeFood1.y>=430)        nodeFood1.y=15;         
        if(nodeFood2.x<=10)        nodeFood2.x=440;         
          nodeFood2.x-=20; nodeplane3.x=nodeFood2.x;    nodeFood2.y+=20;
        if(nodeFood2.y>=440)      nodeFood2.y=15;         
        if(i%30==0)        nodeFood2.y+=40;         
        if(i%20==0)
        { nodeFood1.y+=40;    nodeplane1.y+=20;  nodeFood.y+=20;}
        if(nodeFood.y>=430)        nodeFood.y=10;          
       nodeFood.x+=10; nodeplane1.y=nodeFood.y; 
 if(nodeFood.x>=430) nodeFood.x=15; 
++i;        
    }
//函数来实现与view的通信,以便即时更新数据     
    public void run()
    {  while(running)
        { try{  Thread.sleep(100);}catch(Exception e){    break;}             
          if(moveOn()){ setChanged();  notifyObservers(); }             
        }
    }    
    public Node getNodeArray()
    { return this.nodeArray;     }    
}
//返回Node类型物体的坐标位置
class Node
{    int x;int y;
    Node(int x,int y)
    {    this.x=x;    this.y=y;    }
}