Welcome to Dylan's Programming Homework Website! Pokemon code in chart below!


Programs Assigments Program links
Final!! Final
Assignment 4 Program 4
Assignment 5 Program 5
Assignment 6 Program 6
Assignment 7 Program 7
Assignment 8 Program 8
Assignment 9 Program 9
Assignment 10 Program 10
Assignment 11 Program 11
Assignment 12 Program 12
Assignment 13 Program 13
Assignment 14 Program 14
Assignment 15 Program 15
Assignment 16 Program 16
Assignment 17 Program 17
Assignment 18 Program 18
Assignment 19 Program 19
Assignment 20 Program 20
Assignment 21 Program 21
Assignment 22 Program 22
Assignment 23 Program 23
Assignment 24 Program 23
Assignment 25 Program 25
Assignment 26 Program 26
Assignment 27 Program 27
Assignment 28 Program 28
Assignment 29 Program 29
Assignment 30 Program 30
Assignment 31 Program 31
Assignment 32 Program 32
Assignment 33 Program 33
Assignment 34 Program 34
Assignment 35 Program 35
Assignment 36 Program 36
Assignment 37 Program 37
Assignment 38 Program 38
Assignment 39 Program 39
Assignment 40 Program 40
Assignment 41 Program 41
Assignment 42 Program 42
Assignment 43 Program 43
Assignment 44 Program 44
Assignment 45 Program 45
Assignment 46 Program 46
Assignment 47 Program 47
Assignment 48 Program 48
Assignment 49 Program 49
Assignment 50 Program 50
Assignment 51 Program 51
Assignment 52 Program 52
Assignment 53 Program 53
Assignment 54 Program 54
Assignment 55 Program 55
Assignment 56 Program 56
Assignment 57 Program 57
Assignment 58 Program 58
Assignment 59 Program 59
Assignment 60 Program 60
Assignment 61 Program 61
Assignment 62 Program 62
Assignment 63 Program 63
Assignment 64 Program 64
Assignment 65 Program 65
Assignment 66 Program 66
Assignment 67 Program 67
Assignment 68 Program 68
Assignment 69 Program 69
Assignment 70 Program 70
Assignment 71 Program 71
Assignment 72 Program 72
Assignment 73 Program 73
Assignment 74 Program 74
Assignment 75 Program 75
Assignment 76 Program 76
Assignment 77 Program 77
Assignment 78 Program 78
Assignment 79 Program 79
Assignment 80 Program 80
Assignment 81 Program 81
Assignment 82 Program 82
Assignment 83 Program 83
Assignment 84 Program 84
Assignment 85 Program 85
Assignment 86 Program 86
Assignment 88 Program 88
Assignment 89 Program 89
Assignment 90 Program 90
Assignment 91 Program 91
Assignment 92 Program 92
Assignment 93 Program 93
Assignment 94 Program 94
Assignment 95 Program 95
Assignment 96 Program 96
Assignment 97 Program 97
Assignment 98 Program 98
Assignment 99 Program 99
Assignment 100 Program 100
Assignment 101 Program 101
Assignment 102 Program 102
Assignment 103 Program 103
Assignment 104 Program 104
Assignment 105 Program 105
Assignment 106 Program 106
Assignment 107 Program 107
Assignment 108 Program 108
Assignment 109 Program 109
Assignment 110 Program 110
Assignment 111 Program 111
Assignment 112 Program 112
Assignment 113 Program 113
Assignment 114 Program 114
Assignment 115 Program 115
Assignment 116 Program 116
Assignment 117 Program 117
Assignment 118 Program 118
Assignment 119 Program 119
Assignment 120 Program 120
Assignment 121 Program 121
Assignment 122 Program 122
Assignment 123 Program 123
Assignment 124 Program 124
Assignment 125 Program 125
Assignment 126 Program 126
Assignment 127 Program 127
Assignment 128 Program 128
Assignment 129 Program 129
Side Projects Neural Network
Side Projects Neural Network Base
Side Projects Recurrent Neural Network
Side Projects Pokemon
 import java.util.Scanner;
import java.util.Random;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Timer;
import java.util.TimerTask;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.Color;

public class SideScroller extends JPanel {
    
    Player p;
    Shape ground;
    int timeInterval = 10;
    int timePerSec = Math.round(1000 / timeInterval);
    
    public static void main(String[] args){
        
        SideScroller side = new SideScroller();
        side.setLayout(new BorderLayout());
        side.setBackground(Color.BLUE);
        
        JFrame window = new JFrame("Window");
        window.setContentPane(side);
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.setSize(640, 480);
        window.setVisible(true);
        
        side.setFocusable(true);
        side.requestFocusInWindow();
        
        if(side.hasFocus() == true){
            System.out.println("Has focus");
        }
        else{
            System.out.println("Didn't get focus");
        }
    
    }
    
    public SideScroller(){
        
        p = new Player(100, 300);
        ground = new Rect(0, 400, 640, 10, Color.RED);
        
        addKeyListener(new keyListener());
        addMouseListener(new mouseListener());
        
        Timer timer = new Timer();
        timer.schedule(new Update(), 0, timeInterval);
    
    }
    
    public void paintComponent(Graphics g){
        
        super.paintComponent(g);
        g.fillRect(p.getX(), p.getY(), 10, 20);
        g.fillRect(((Rect)ground).getX(), ((Rect)ground).getY(), ((Rect)ground).getWidth(), ((Rect)ground).getHeight());
        
    }
    
    class Update extends TimerTask{
        
        int time;
        
        public void run(){
            
            if(p.isJumping() == true){
                time++;
                p.calculateNewPosY(time, 7.0, timePerSec);
                repaint();
            }
            else{
                time = 0;
            }
            
            p.getIsTouching(ground);
        }
        
    }
    
    class keyListener implements KeyListener{
        
        public void keyPressed(KeyEvent e){
            System.out.println("Key Pressed");
            int key = e.getKeyCode();
            
            if(key == KeyEvent.VK_SPACE){
                if(p.isJumping() == false){
                    p.jump();
                    System.out.println("Jumped");
                }
            }
            
        }
        public void keyReleased(KeyEvent e){
            
        }
        public void keyTyped(KeyEvent e){
            
        }
    }
    
    class mouseListener implements MouseListener{
        
        public void mouseClicked(MouseEvent e){
            
        }
        public void mouseEntered(MouseEvent e){
        }
        public void mouseExited(MouseEvent e){
        }
        public void mousePressed(MouseEvent e){
        }
        public void mouseReleased(MouseEvent e){
        }
        
    }

}

class Player extends Object{
    
    double velocity;
    boolean isJumping;
    Shape shape;
    int orgX;
    int orgY;
    double scale = 30;
    
    public Player(int x, int y){
        this.x = x;
        this.y = y;
        
        orgX = x;
        orgY = y;
        
        isJumping = false;
        shape = (Rect) new Rect(x, y, 10, 20, Color.RED);
    }
    
    public void calculateNewPosY(double time, double initialVelocity, double tPS){
        
        double g = -4.9 * scale;
        double t = time / tPS;
        double vI = initialVelocity * scale;
        
        double newY = g * (t*t) + vI * (t);
        if(t == 0){
            orgY = this.y;
        }
        /*
        int y1 = y;
        int y2 = y - (int)Math.round(newY);
        
        if(y2 - y1 > 100){
            if(g * t + vI < 0){
                y += 100;
            }
            else{
                y -= 100;
            }
        }
        else{
            this.y = (int)(orgY - Math.round(newY));
        }
        */
        this.y = (int)(orgY - Math.floor(newY));
        System.out.println(y + " " + t);
        
    }
    
    public void calculateNewPosX(double time, double initialVelocity, double tPS){
        
    }
    
    public void jump(){
        setIsJumping(true);
    }
    
    public boolean isJumping(){
        return isJumping;
    }
    
    public int getX(){
        return x;
    }
    
    public int getY(){
        return y;
    }
    
    public double getVelocity(){
        return velocity;
    }
    
    public Shape getShape(){
        return shape;
    }
    
    public double getIsTouching(Shape s){
        if(s.getType().equals("Rect")){
            for(int i = 0; i < 4; i++){
                
                double oSlope;
                double pSlope;
                
                Rect o = (Rect)s;
                Rect p = (Rect)getShape();
                if(o.getPointX(i + 1) - o.getPointX(i) != 0){
                    oSlope = (o.getPointY(i + 1) - o.getPointY(i)) / (o.getPointX(i + 1) - o.getPointX(i));
                }
                else{
                    oSlope = .000000000000000000001;
                }
                
                if(p.getPointX(i + 1) - p.getPointX(i) != 0){
                    pSlope = (p.getPointY(i + 1) - p.getPointY(i)) / (p.getPointX(i + 1) - p.getPointX(i));
                }
                else{
                    pSlope = .000000000000000000001;
                }
                   
                if(oSlope != pSlope){
                    int oY = o.getPointY(i);
	                int oX = o.getPointX(i);
		     
		            int oB = (int)Math.round(oY / (oX * oSlope));
                    int pB = (int)Math.round(y / (x * pSlope));
                    int connectPoint = (int)Math.round((oB - pB) / (pSlope - oSlope));
                    System.out.println(connectPoint);
                    if(connectPoint > this.getX() && connectPoint < this.getX() + p.getWidth()){
                       
                    }
                }
            }
        }
        return 1;
    }
    
    public void setX(int x){
        this.x = x;
    }
     
    public void setY(int y){
        this.y = y;
    }
    
    public void setVelocity(double velocity){
        this.velocity = velocity;
    }
    
    public void setIsJumping(boolean isJumping){
        this.isJumping = isJumping;
    }

}

class Shape{
    
    String type;
    int x;
    int y;
    Color color;
    
    public Shape(){
    
    }
    
    public int getX(){
        return x;
    }
    public int getY(){
        return y;
    }
    public Color getColor(){
        return color;
    }
    public String getType(){
        return type;
    }
    
    public void setX(int x){
        this.x = x;
    }
    public void setY(int y){
        this.y = y;
    }
    public void setColor(Color color){
        this.color = color;
    }
    
}

class Rect extends Shape{
    
    int width;
    int height;
    int[] pointX;
    int[] pointY;
    
    public Rect(int x, int y, int width, int height, Color color){
        this.x = x;
        this.y = y;
        this.color = color;
        
        this.type = "Rect";
        this.width = width;
        this.height = height;
        
        pointX = new int[4];
        pointY = new int[4];
        
        for(int i = 0; i < 2; i++){
            pointX[i] = i * this.width + x;
            pointY[i] = y;
        }
        for(int i = 0; i < 2; i++){
            pointX[i] = Math.abs(i - 1) * this.width + x;
            pointY[i] = this.height + y;
        }
        
    }
    
    public int getWidth(){
        return width;
    }
    public int getHeight(){
        return height;
    }
    
    public int getPointX(int pointNum){
        if(pointNum == 4){
            return pointX[0];
        }
        else{
            return pointX[pointNum];
        }
    }
    public int getPointY(int pointNum){
        if(pointNum == 4){
            return pointY[0];
        }
        else{
            return pointY[pointNum];
        }
    }
    
}

class Cirlce extends Shape{
    
    int radius;
    
    public Cirlce(int x, int y, int radius, Color color){
        this.x = x;
        this.y = y;
        this.color = color;
        
        this.type = "Circle";
    }

}