Progress Report NAVEEN

Embed Size (px)

Citation preview

  • 8/7/2019 Progress Report NAVEEN

    1/13

    MINOR PROJECT PROGRESS REPORT

    ON

    PUYO_PUYO GAME

    SUBMITTED IN PARTIAL FULFILLMENT OF THE

    REQUIREMENT FOR THE PROGRESS REPORT

    GROUP NUMBER: CO 43

    UNDER GUIDENCE OF: - SUBMITTED

    Miss.MEENAKSHI ANTIL NAVEEN( 1506010)GAURAV (1506053)

    PROJECT INCHARGE:-Mr. SANDEEP JAGLAN

    DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING

    N.C COLLEGE OF ENGINEERING

    ISRANA (PANIPAT)

  • 8/7/2019 Progress Report NAVEEN

    2/13

    ACKNOWLEDGEMENT

    On every step there is need of proper guidance, support & motivatio

    encouragement enables the person to give his best performance & thus to achieve his

    goal.

    We express our deep sense of regard to Mr. Sukhvir Singh (H.O.D., C.S.E. Department)

    for extending us the opportunity for project development and providing all the necessary

    resources and expertise for this purpose.

    We honorably thankMiss. MEENAKSHI ANTIL for her valuable support & for

    providing various facilities & kind guidance necessary for the project. We would also like

    to take this opportunity to thankMr. Sandeep Jaglan for his valuable suggestion during

    the Progess period of project. We would like to thank all those who helped us directly or

    indirectly.

    Last but not the least, We would like to acknowledge the ongoing support of our teachers,

    family and friends, whose patience and encouragement during these long days and night

    have been paramount in making this project a reality

    Gaurav Dhankhar( 1506053)

    Naveen Kumar(1506010)

  • 8/7/2019 Progress Report NAVEEN

    3/13

    DESIGNING PHASE

  • 8/7/2019 Progress Report NAVEEN

    4/13

  • 8/7/2019 Progress Report NAVEEN

    5/13

  • 8/7/2019 Progress Report NAVEEN

    6/13

  • 8/7/2019 Progress Report NAVEEN

    7/13

    CODING OF THE DESIGN

    import java.awt.*;//Dimension,Image,Toolkit,Graphics,Container,Color,Graphics2D

    //RenderingHints,GradientPaint,Font,Recta

    ngle,AlphaCompositeimport java.awt.event.*;//ActionEvent,ActionListener,KeyAdapter,KeyEvent

    import java.applet.*; //Applet,AudioClip

    import java.net.*; //URL,MalformedURLException

    public class Puyo_Puyo extends JFrame

    {GamePane gp; //GamePane is subclass of JComponent on which the puyos are moved

    int width,height;

    int rows,cols;int puyo_len; //holds the length of the each puyo(because it is a square piece)

    Dimension screenSize; //holds the dimension of the screen interms of resolution

    public Puyo_Puyo(){

    super("Puyo_Puyo");

    cols=6; // Can be set to any value, game rows*cols depends on this value

    rows=cols*2;screenSize= Toolkit.getDefaultToolkit().getScreenSize();

    width=screenSize.width;

    height=screenSize.height;//Width and Height holds the screen resolution.

    //Different computers may have set with different resolutions.

    //If the Window size is static then it is differ to see from one computer to another.//To place the window at the middle of the screen at any resolution and

    //to adjust the window size and puyo size some calculations are taken here.

    //Normally resolution(for pc) is windth*height format with 8:6 ratio.

    //For puyo game(rows=12,colums=6) window take 1:2(wd*ht) ratio in screen resolution.//So in 8 parts of width(of screen) 2 parts is assigned to window widht and

    //and in 6 parts of height(of screen) 4 parts is assigned to window height to place

    //window at the middle of the screen.//for puyo(cell size) width and height are same

    //puyo size for 12 rows 6 colums puyo game

    puyo_len=(width/8)*2/cols; //or (height/6)*4/12gp=new GamePane(puyo_len,rows,cols);

    Container c=getContentPane();

  • 8/7/2019 Progress Report NAVEEN

    8/13

    c.add(gp);setResizable(false);

    //placing window(added score board size) at the middle of the screen

    //3 puyos width is added to the window for score board display

    setBounds ((width/8)*3-puyo_len*3/2,(height/6)*1-puyo_len,

    (width/8)*2+puyo_len*3+6,(height/6)*4+25+puyo_len);setVisible(true);

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}

    public static void main(String args[]) {

    System.out.println("Starting Puyo_Puyo...");JFrame.setDefaultLookAndFeelDecorated(true);

    //to set the look and feel for frame as defined int Java

    new Puyo_Puyo();

    }}

    class GamePane extends JComponent implements ActionListener

    {

    static int rows,cols;static int scr[][];//scr or(screen) array holds the information about puyos to display

    Node tetris; //Formation of Tetris is checked using this object

    Timer timer,timer1,timer2,anim_timer;//different timers used for animation of puyos

    Image img[]=new Image[4]; //holds 4 puyo images

    Image fpipe,bpipe;

    //holds the front and back part of pipe image

    //2 images of pipe used to get the experience of puyos coming out from pipe

    Stringfiles[]={"intro.mid","enter.wav","sound735.wav","blip.wav","sound65.wav","sound136.

    wav","tada.wav","sound713.wav"};

    AudioClip clips[]=new AudioClip[8];//Array of audio clips to load the soundfiles

    Toolkit tk; //used to load the images

    Random rand; //this object used to generate puyos randomly in color.

    int rot; //used for the rotation of the puyosint len; //length of the puyo ie. width and height

    boolean reached; //generated puyo reached the bottom or in movement

    int count; //count of puyos when formed tetris to deleteboolean started; //Game is started or not

    boolean gameOver,paused;

    int a,b; //The two puyos generate to be next are stored in a and bint level,score,pieces,removed_puyos;

    //pieces is number of joint puyos(single piece) generated

  • 8/7/2019 Progress Report NAVEEN

    9/13

    //number of removed puyos by forming tetrisint minscore;

    int anim;

    //to build the pixel by pixel animation (movement of generated puyos)

    float alpha,alpha1;

    boolean levelflag;public GamePane(int l,int r,int c)

    {len=l;

    //length of puyos is set by the Puyo_Puyo class where it is calculated and sent here

    rows=r+1;//number of rows is taken 12+1 for the easyness of generating puyos from pipe.

    //extra one row is occupied by pipe at the top. Only 12 rows are used for puyos.

    cols=c; //6 columnsinit(); //initializing game data

    //puyo images are selected depending on the length of puyos//length of puyo is calculated depending on the resolution of screen//In this game i used two types of puyos for

    //(i)800*600 and below resolutions

    //(ii)1024*768 and above resolutions//So images are loaded ofter length of puyos is calculated

    loadImages();

    loadSounds();generatePuyos(); //to start the generating

    puyos

    clips[0].loop();

    addKeyListener(new KeyAdapter()}

    }

    public void init()//all variables declared above are initialized here

    {scr=new int[rows][cols];

    rot=1;

    reached=true;

    count=0;started=false;

    gameOver=false;

    paused=false;a=0;

    b=0;

    level=0;score=0;

    pieces=-1;

  • 8/7/2019 Progress Report NAVEEN

    10/13

    removed_puyos=0;minscore=50;

    anim=0;

    alpha=0.0f;

    alpha1=0.0f;

    levelflag=true;tk= Toolkit.getDefaultToolkit();

    rand=new Random();timer=new Timer(1000,this);

    //generates action event for each 1075 milli seconds when timer is started

    timer.setInitialDelay(0);//generates first event ofter 0 ms when timer starts

    timer1=new Timer(1000,this);

    timer2=new Timer(500,this);

    anim_timer=new Timer(50,this);anim_timer.start(); //starting the timer

    }public void loadImages()//loading images into the image array and pipe objects{

    String s="";

    if(len>=42)s="_";

    for(int i=0;i

  • 8/7/2019 Progress Report NAVEEN

    11/13

    }if(level==20)

    {

    delay+=25;

    delay1+=1;

    }timer.setDelay(1075-delay);

    anim_timer.setDelay(52-delay1);anim_timer.restart();

    }

    public void generatePuyos()//To generate Puyos at the top of the game window{

    //Checking Top of the game window is occupied by any puyos

    //if occupied then game is overint p;

    if(cols%2==0)p=cols/2-1;else

    p=cols/2;

    if(scr[0][p]==0 && scr[1][p]==0){

    clips[4].play();

    scr[0][p]=a; //a and b are randomly generated Puyosscr[1][p]=b;

    }

    else

    {clips[2].play();

    timer.stop();

    gameOver=true; //game is overreturn;

    }

    int r;//Generating puyos randomly for the next fall which are viewed at the right side of

    window

    //Odd numbers 1,3,5,7(for 4 colors) are used for generating puyos which are in//movement

    //Even numbers 2,4,6,6 are used for fallen puyos on bottom of the window

    while((r=rand.nextInt(8))%2==0);a=r;

    while((r=rand.nextInt(8))%2==0);

    b=r;pieces++;

    rot=1;

  • 8/7/2019 Progress Report NAVEEN

    12/13

    }

    class Node

    {

    //linked list is bulilt for the tetris of puyos to store their positions

    int x,y;Node nextnode;

    Node prevnode;public Node(int x,int y)

    {

    this.x=x;this.y=y;

    nextnode=null;

    prevnode=null;

    }public Node(Node p)

    { x=p.x;y=p.y;

    nextnode=null;

    prevnode=null;

    }

    public void setNext(Node lnode){

    nextnode=lnode;

    }

    public Node getNext(){

    return nextnode;

    }public void setPrev(Node lnode)

    {

    prevnode=lnode;}

    public Node getPrev()

    {

    return prevnode;}

    public int getX()

    {return x;

    }

    public int getY(){

    return y;

  • 8/7/2019 Progress Report NAVEEN

    13/13

    }}