All pastes #957617 Raw Edit

Unnamed

public text v1 · immutable
#957617 ·published 2008-03-26 02:14 UTC
rendered paste body
// Space ScreenSaver
//This screensaver begins with an earth scenario of a space-ship taking off into
//space, it then proceeds to different scenes of the space ship flying across
//the skies of different plants
import java.awt.*;
import hsa.Console;
import java.util.*;

public class KhaderScreenSaver
{
    static Console c;           // The output console

    public static void main (String[] args)
    {
        c = new Console ();

        //BEGIN VARIABLE SECTION

        //Color Variables
        Color darkGreen = new Color (0, 204, 0); //Light Green For Grass Bushes

        //Variable for maxx and maxy co-ordinates
        int maxx = c.getWidth ();
        int maxy = c.getHeight ();

        //Variable for random  Y-Co-ordinates and X-Co-ordinates
        //These variables are used anytime a random co-ordinate is needed for a loop
        int randYCord, randXCord;

        //Create an X and Y co-ordinate variable for animating
        int takeOffX = (maxx / 2);
        int takeOffY = (maxy / 2);

        //BEGIN ROCKETS CO-ORDINATE SECTION FOR EARTH TAKE OFF SCENE

        //Assign the Co-ordinates for the right space shuttle rocket top for the
        //Earth Take-off scene
        int[] xRRocketPoints, yRRocketPoints;
        //Assign the x co-ordinates
        xRRocketPoints = new int [4]; //Make the polygon 3-cordinates long
        xRRocketPoints [0] = (takeOffX + 71); //Top Left
        xRRocketPoints [1] = (takeOffX + 80); //Top Right
        xRRocketPoints [2] = (takeOffX + 90); //Bottom Right
        xRRocketPoints [3] = (takeOffX + 61); //Botom Left

        //Assign the Y co-ordinates
        yRRocketPoints = new int [4]; //Make the polygon 3-cordinates long
        yRRocketPoints [0] = (takeOffY - 184); //Top Left
        yRRocketPoints [1] = (takeOffY - 184); //Top Right
        yRRocketPoints [2] = (takeOffY - 151); //Bottom Right
        yRRocketPoints [3] = (takeOffY - 151); //Botom Left

        //Assign the Co-ordinates for the right space shuttle rocket burner for the
        //Earth Take-off scene
        int[] xRBurnerPoints, yRBurnerPoints;
        //Assign the x co-ordinates
        xRBurnerPoints = new int [4]; //Make the polygon 3-cordinates long
        xRBurnerPoints [0] = (takeOffX + 61); //Top Left
        xRBurnerPoints [1] = (takeOffX + 91); //Top Right
        xRBurnerPoints [2] = (takeOffX + 99); //Bottom Right
        xRBurnerPoints [3] = (takeOffX + 53); //Botom Left

        //Assign the Y co-ordinates
        yRBurnerPoints = new int [4]; //Make the polygon 3-cordinates long
        yRBurnerPoints [0] = (takeOffY + 130); //Top Left Co-ordinate
        yRBurnerPoints [1] = (takeOffY + 130); //Top Right Co-ordinate
        yRBurnerPoints [2] = (takeOffY + 154); //Bottom Right Co-ordinate
        yRBurnerPoints [3] = (takeOffY + 154); //Botom Left Co-ordinate

        //Assign the Co-ordinates for the Left space shuttle rocket top for the
        //Earth Take-off scene
        int[] xLRocketPoints; //Declare array for X points
        //Assign the x co-ordinates
        xLRocketPoints = new int [4]; //Make the polygon 4-cordinates long
        xLRocketPoints [0] = (takeOffX - 41); //Top Left Co-ordinate
        xLRocketPoints [1] = (takeOffX - 50); //Top Right Co-ordinate
        xLRocketPoints [2] = (takeOffX - 60); //Bottom Right Co-ordinate
        xLRocketPoints [3] = (takeOffX - 31); //Botom Left Co-ordinate

        //Assign the Co-ordinates for the left space shuttle rocket burner for the
        //Earth Take-off scene
        int[] xLBurnerPoints; //Declare array for X points
        //Assign the x co-ordinates
        xLBurnerPoints = new int [4]; //Make the polygon 4-cordinates long
        xLBurnerPoints [0] = (takeOffX - 31); //Top Left Co-ordinate
        xLBurnerPoints [1] = (takeOffX - 61); //Top Right Co-ordinate
        xLBurnerPoints [2] = (takeOffX - 69); //Bottom Right Co-ordinate
        xLBurnerPoints [3] = (takeOffX - 23); //Botom Left Co-ordinate

        //Assign the Co-Ordinates for the center space shuttle rocket burner for the
        //Earth take-off scene
        int[] xCBurnerPoints; //Declare array for X points
        //Assign the X co-rdinates
        xCBurnerPoints = new int [4]; //make array able to store 4 co-ordinates
        //Assign the coordinates
        xCBurnerPoints [0] = (takeOffX - 10); //Top Left Co-ordinate
        xCBurnerPoints [1] = (takeOffX + 50); //Top Right Co-ordinate
        xCBurnerPoints [2] = (takeOffX + 68); //Top Right Co-ordinate
        xCBurnerPoints [3] = (takeOffX - 28); //Top Right Co-ordinate

        int[] yCBurnerPoints; //Declare array for X points
        //Assign the Y co-rdinates
        yCBurnerPoints = new int [4]; //make array able to store 4 co-ordinates
        //Assign the coordinates
        yCBurnerPoints [0] = (takeOffY + 150); //Top Left Co-ordinate
        yCBurnerPoints [1] = (takeOffY + 150); //Top Right Co-ordinate
        yCBurnerPoints [2] = (takeOffY + 175); //Top Right Co-ordinate
        yCBurnerPoints [3] = (takeOffY + 175); //Top Right Co-ordinate

        //END ROCKETS CO-ORDINATE SECTION FOR EARTH TAKE OFF SCENE



        //BEGIN SPACE SHUTTLE CO-ORDINATE SECTION FOR EARTH TAKE OFF SCENE

        //Declare an Array for the top nose of the shuttle to be drawn in the shape of a triangle
        //for the earth take-off scene
        int[] xNC1ShuttleEarth; // X co-ordinates for nose
        //Assign x Coordinates
        xNC1ShuttleEarth = new int [3]; //Make array 3 ints long
        xNC1ShuttleEarth [0] = (takeOffX + 20); //Top co-ordinate
        xNC1ShuttleEarth [1] = (takeOffX + 30); //Bottom right co-ordinate
        xNC1ShuttleEarth [2] = (takeOffX + 10);  //Bottom left co-ordinate

        int[] yNC1ShuttleEarth; // Y co-ordinates for nose
        //Assign x Coordinates
        yNC1ShuttleEarth = new int [3]; //Make array 3 ints long
        yNC1ShuttleEarth [0] = (takeOffY - 125); //Top co-ordinate
        yNC1ShuttleEarth [1] = (takeOffY - 110); //Bottom right co-ordinate
        yNC1ShuttleEarth [2] = (takeOffY - 110); //Bottom left co-ordinate

        //Declare an array for co-ordinates for the second half of the cockpit
        int[] xNC2ShuttleEarth; //X co-ordinates for main cock-pit area
        //Assign X co-ordinates
        xNC2ShuttleEarth = new int [4]; //Make array 4 ints long
        xNC2ShuttleEarth [0] = (takeOffX + 10); //Top left co-ordinate
        xNC2ShuttleEarth [1] = (takeOffX + 30); //Top right co-ordinate
        xNC2ShuttleEarth [2] = (takeOffX + 36); //Bottom right co-ordinate
        xNC2ShuttleEarth [3] = (takeOffX + 4); //Bottom Left co-ordinate

        int[] yNC2ShuttleEarth; //X co-ordinates for main cock-pit area
        //Assign Y co-ordinates
        yNC2ShuttleEarth = new int [4]; //Make array 4 ints long
        yNC2ShuttleEarth [0] = (takeOffY - 110); //Top left co-ordinate
        yNC2ShuttleEarth [1] = (takeOffY - 110); //Top right co-ordinate
        yNC2ShuttleEarth [2] = (takeOffY - 87); //bottom right co-ordinate
        yNC2ShuttleEarth [3] = (takeOffY - 87); //bottom left co-ordinate

        //Declare an array for co-ordinates for the first part of the wings
        int[] xNW1ShuttleEarth;  //x cords
        //Assign X Co-ordinates
        xNW1ShuttleEarth = new int [4]; //Make array 4 ints long
        xNW1ShuttleEarth [0] = (takeOffX + 5);
        xNW1ShuttleEarth [1] = (takeOffX + 36);
        xNW1ShuttleEarth [2] = (takeOffX + 56);
        xNW1ShuttleEarth [3] = (takeOffX - 13);

        int[] yNW1ShuttleEarth;  //y cords
        //Assign y Co-ordinates
        yNW1ShuttleEarth = new int [4]; //Make array 4 ints long
        yNW1ShuttleEarth [0] = (takeOffY - 86);
        yNW1ShuttleEarth [1] = (takeOffY - 86);
        yNW1ShuttleEarth [2] = (takeOffY - 10);
        yNW1ShuttleEarth [3] = (takeOffY - 10);
        
                //Declare an array for co-ordinates for the first part of the wings
        int[] xNW2ShuttleEarth;  //x cords
        //Assign X Co-ordinates
        xNW2ShuttleEarth = new int [4]; //Make array 4 ints long
        xNW2ShuttleEarth [0] = (takeOffX - 13);
        xNW2ShuttleEarth [1] = (takeOffX + 36);
        xNW2ShuttleEarth [2] = (takeOffX + 56);
        xNW2ShuttleEarth [3] = (takeOffX - 13);

        int[] yNW2ShuttleEarth;  //y cords
        //Assign y Co-ordinates
        yNW2ShuttleEarth = new int [4]; //Make array 4 ints long
        yNW2ShuttleEarth [0] = (takeOffY - 10);
        yNW2ShuttleEarth [1] = (takeOffY - 10);
        yNW2ShuttleEarth [2] = (takeOffY - 10);
        yNW2ShuttleEarth [3] = (takeOffY - 10);
        

        //END SPACE SHUTTLE CO-ORDINATE SECTION FOR EARTH TAKE OFF SCENE

        //Create a random number generator for generating random numbers for co-ordinates
        Random generator = new Random ();

        //END VARIABLE SECTION

        //BEGIN EARTH TAKE-OFF SCENE

        //Draw the background
        //Draw a black background for night's sky
        c.fillRect (0, 0, maxx, maxy);
        //Set Color to white for white stars
        c.setColor (Color.white);
        //Loop to draw stars are random positions in the sky
        for (int i = 0 ; i < maxx ; i += 10)
        {
            randYCord = generator.nextInt (maxy); //assign a random value to the star y cordinate
            randXCord = generator.nextInt (maxx); //assign a random value to the star x cordinate
            c.fillStar (randXCord, randYCord, 10, 10); //Draw the star in a random position
        } //End loop to draw stars in random position

        //Draw the grass as a green rectangle
        //Set color to green for color of grass
        c.setColor (Color.green);
        //Draw a rectangle for the background of the grass
        c.fillRect (0, 375, maxx, maxy);

        //Draw grass bushes in the grass using a for loop
        //Set Color to dark Green for grass bushes
        c.setColor (darkGreen);
        for (int i = 0 ; i < maxx ; i += 10)
        {
            randYCord = generator.nextInt (maxy) + 385; //assign a random value for the grass y cordinate (above the grass line)
            randXCord = generator.nextInt (maxx); //assign a random value for the grass x cordinate
            c.drawLine (randXCord, randYCord, randXCord, (randYCord - 10)); //Draw the main center line of the bush
            c.drawLine (randXCord, randYCord, (randXCord - 7), (randYCord - 10)); //Draw the left line of bush
            c.drawLine (randXCord, randYCord, (randXCord + 7), (randYCord - 10)); //Draw the right line of bush
        } //End Loop to draw the grass bushes at random spots

        //Begin Drawing the space-ship --

        //Draw the main center rocket | Orange
        //Draw the top orange curve
        //Set color to orange
        c.setColor (Color.orange);
        c.fillOval ((takeOffX - 10), (takeOffY - 200), 60, 100);
        //Draw the main hull of the center rocket, also orange
        c.fillRect ((takeOffX - 10), (takeOffY - 150), 60, 300);
        //Draw the burner of the center rocket, grey
        c.setColor (Color.gray);
        //Draw the outline of the burner in triangular shape
        c.drawLine ((takeOffX - 10), (takeOffY + 150), (takeOffX + 50), (takeOffY + 150)); //Top horizontal line
        c.drawLine ((takeOffX + 50), (takeOffY + 150), (takeOffX + 68), (takeOffY + 175)); //Right vertical line
        c.drawLine ((takeOffX + 68), (takeOffY + 175), (takeOffX - 28), (takeOffY + 175)); //Bottom Horizontal Line
        //Draw the burner as a filled polygon in grey color.
        c.fillPolygon (xCBurnerPoints, yCBurnerPoints, 4);


        //Draw the right white rocket

        //Set the color to grey for the outline of the right rocket
        c.setColor (Color.gray);
        //Draw the outline of the top of the right rocket in a triangular shape
        c.drawLine ((takeOffX + 70), (takeOffY - 185), (takeOffX + 80), (takeOffY - 185));
        c.drawLine ((takeOffX + 80), (takeOffY - 185), (takeOffX + 90), (takeOffY - 150));
        c.drawLine ((takeOffX + 90), (takeOffY - 150), (takeOffX + 60), (takeOffY - 150));
        //Set Color to white to fill the triangle
        c.setColor (Color.white);
        c.fillPolygon (xRRocketPoints, yRRocketPoints, 4);

        //Draw Orange stripe on the top of the Right Rocket (DETAIL)
        //set color to orange for orange stripe
        c.setColor (Color.orange);
        c.fillRect ((takeOffX + 64), (takeOffY - 160), 24, 3);

        //Draw black dots on right rocket (DETAIL)
        //Set color to black for black dots
        c.setColor (Color.black);
        c.fillOval ((takeOffX + 70), (takeOffY - 174), 5, 5); //Top Left dot
        c.fillOval ((takeOffX + 67), (takeOffY - 168), 5, 5); //Bottom Left dot
        c.fillOval ((takeOffX + 75), (takeOffY - 174), 5, 5); //Top Right Dot
        c.fillOval ((takeOffX + 72), (takeOffY - 168), 5, 5); //Bottom Right Dot

        //Draw the hull of the right rocket
        //Set Color to white to fill the hull
        c.setColor (Color.white);
        c.fillRect ((takeOffX + 61), (takeOffY - 150), 30, 280);
        //Draw Connector Between right rocket and main rocketc
        //Set color to grey for connector
        c.setColor (Color.gray);
        c.fillRect ((takeOffX + 50), takeOffY, 11, 50);

        //Draw the burner of the right rocket
        //Set the color to grey for the outline of the right rocket burner
        c.setColor (Color.gray);
        c.drawLine ((takeOffX + 61), (takeOffY + 130), (takeOffX + 91), (takeOffY + 130));
        c.drawLine ((takeOffX + 91), (takeOffY + 130), (takeOffX + 99), (takeOffY + 154));
        c.drawLine ((takeOffX + 99), (takeOffY + 154), (takeOffX + 53), (takeOffY + 154));
        c.fillPolygon (xRBurnerPoints, yRBurnerPoints, 4);

        //Draw the left white rocket
        //Set the color to grey for the outline of the right rocket
        c.setColor (Color.gray);
        //Draw the outline of the top of the rocket in a triangular shape
        c.drawLine ((takeOffX - 40), (takeOffY - 185), (takeOffX - 50), (takeOffY - 185));
        c.drawLine ((takeOffX - 50), (takeOffY - 185), (takeOffX - 60), (takeOffY - 150));
        c.drawLine ((takeOffX - 60), (takeOffY - 150), (takeOffX - 30), (takeOffY - 150));
        //Set Color to white to fill the triangle
        c.setColor (Color.white);
        c.fillPolygon (xLRocketPoints, yRRocketPoints, 4);

        //Draw Orange stripe on the top of the Left Rocket (DETAIL)
        //set color to orange for orange stripe
        c.setColor (Color.orange);
        c.fillRect ((takeOffX - 57), (takeOffY - 160), 24, 3);

        //Draw black dots on right rocket (DETAIL)
        //Set color to black for black dots
        c.setColor (Color.black);
        c.fillOval ((takeOffX - 43), (takeOffY - 174), 5, 5); //Top Right dot
        c.fillOval ((takeOffX - 41), (takeOffY - 168), 5, 5); //Bottom Right dot
        c.fillOval ((takeOffX - 48), (takeOffY - 174), 5, 5); //Top Left Dot
        c.fillOval ((takeOffX - 46), (takeOffY - 168), 5, 5); //Bottom Left Dot

        //Draw the hull of the left rocket
        //Set Color to white to fill the hull
        c.setColor (Color.white);
        c.fillRect ((takeOffX - 60), (takeOffY - 150), 30, 280);
        //Draw Connector Between left rocket and main rocket
        //Set color to grey for connector
        c.setColor (Color.gray);
        c.fillRect ((takeOffX - 30), takeOffY, 20, 50);

        //Draw left rocket burner
        c.fillPolygon (xLBurnerPoints, yRBurnerPoints, 4);

        //Begin Drawing the main shuttle

        //Draw the front of the shuttle

        //Draw the nose of the cockpit in black as a polygon
        //Draw the outline of the nose first
        //Set Color to black for the nose
        c.setColor (Color.black);
        //Draw the outline of the nose
        c.drawLine ((takeOffX + 20), (takeOffY - 125), (takeOffX + 30), (takeOffY - 110)); //Vertical line
        c.drawLine ((takeOffX + 30), (takeOffY - 110), (takeOffX + 10), (takeOffY - 110)); //horizontal line
        //draw the polygon as a triangle to fill color
        c.fillPolygon (xNC1ShuttleEarth, yNC1ShuttleEarth, 3);

        //Draw white polygon for the second half of the cock-pit
        //Set color to white for cock-pit
        c.setColor (Color.white);
        c.fillPolygon (xNC2ShuttleEarth, yNC2ShuttleEarth, 4);


        //Set Color to black for the wing outline
        c.setColor (Color.black);
        //Draw the outline of the first layer of wings for the shuttle
        c.drawLine ((takeOffX + 3), (takeOffY - 87), (takeOffX + 37), (takeOffY - 87)); //Top horizontall line
        c.drawLine ((takeOffX + 37), (takeOffY - 87), (takeOffX + 57), (takeOffY - 10)); //Right vertical line
        c.drawLine ((takeOffX - 14), (takeOffY - 10), (takeOffX + 3), (takeOffY - 87)); //Left vertical line
        //Set the wing color to white
        c.setColor(Color.white);
        //Draw the polygon for the first partition of the wings
        c.fillPolygon(xNW1ShuttleEarth, yNW1ShuttleEarth, 4);
        
        //Set Color to black for the wing outline
        c.setColor (Color.black);
        //Draw the outline of the second layer of the wings
        c.drawLine ((takeOffX - 13), (takeOffY - 10), (takeOffX + 56), (takeOffY - 10));
        
        







        //END EARTH TAKE-OFF SCENE


    } // main method
} // Example class