import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.*;

public class INF220TP1 extends Component {
    static JFrame f;

    public void paint(Graphics g) {
        Color noir,marron,rouge,bleuclair,bleuciel,blanc,gris,vert;
        int i;
        
        noir = couleurRGB(0,0,0); 
        blanc = couleurRGB(255,255,255); 
        bleuciel = couleurRGB(200,200,255);
        vert = couleurRGB(50,200,0);
        dessineRectanglePlein(g,0,0,2000,2000,bleuciel);       
        dessineRectanglePlein(g,0,270,2000,2000,vert);       
        dessineRectanglePlein(g,300,200,200,100,blanc);
        dessineRectangle(g,300,200,200,100,noir);
        marron = couleurRGB(150,100,40);        
        dessineRectanglePlein(g,330,230,45,70,marron);
        bleuclair = couleurRGB(100,150,255);
        dessineRectangle(g,400,230,70,40,bleuclair);
        dessineRectangle(g,402,232,32,36,bleuclair);
        dessineRectangle(g,436,232,32,36,bleuclair);
        
        //Dessin du toit :
        i=0;
        rouge=couleurRGB(200,0,0);
        gris=couleurRGB(100,100,100);
        while (i<51){
           dessineLigne(g,300+2*i,199-i,300+2*i,199,gris);
           dessineLigne(g,300+2*i+1,199-i,300+2*i+1,199,gris);
           dessineLigne(g,500-2*i,199-i,500-2*i,199,gris);
           dessineLigne(g,500-2*i+1,199-i,500-2*i+1,199,gris);
           i=i+1;
        }

    }




    public static void dessineRectangle(Graphics g, int abscisseCoin,int ordonneeCoin,int largeur, int hauteur, Color couleur) {
        g.setColor(couleur);
        g.drawRect(abscisseCoin,ordonneeCoin,largeur-1,hauteur-1);
    }    

    public static void dessineRectanglePlein(Graphics g, int abscisseCoin,int ordonneeCoin,int largeur, int hauteur, Color couleur) {
        g.setColor(couleur);
        g.fillRect(abscisseCoin,ordonneeCoin,largeur,hauteur);
    }    

    public static void dessineOvale(Graphics g, int abscisseCoin,int ordonneeCoin,int largeur, int hauteur, Color couleur) {
        g.setColor(couleur);
        g.drawOval(abscisseCoin,ordonneeCoin,largeur-1,hauteur-1);
    } 

    public static void dessineOvalePlein(Graphics g, int abscisseCoin,int ordonneeCoin,int largeur, int hauteur, Color couleur) {
        g.setColor(couleur);
        g.fillOval(abscisseCoin+1,ordonneeCoin+1,largeur-2,hauteur-2);
        g.fillOval(abscisseCoin,ordonneeCoin,largeur-2,hauteur-2);
        g.fillOval(abscisseCoin,ordonneeCoin,largeur-1,hauteur-1);
        g.drawOval(abscisseCoin,ordonneeCoin,largeur-1,hauteur-1);
    }    

    public static void dessineLigne(Graphics g, int abscisse1,int ordonnee1,int abscisse2, int ordonnee2, Color couleur) {
        g.setColor(couleur);
        g.drawLine(abscisse1,ordonnee1,abscisse2,ordonnee2);
    }    

    public static Color couleurRGB(int r,int g,int b){
        return new Color(r,g,b);
    }
    
    public static void dessine() {
        f=new JFrame("Dessin TP2");
            
        f.addWindowListener(new WindowAdapter(){
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
            });

        f.add(new INF220TP1());
        f.pack();
        f.setVisible(true);    
    }

    public Dimension getPreferredSize() {
        return new Dimension(800,600);
    }

    public static void main(String[] args) {
        dessine();
    }
    
   public static int NombreAleatoire(int lower,int higher){
      return (int)(Math.random() * (higher+1-lower)) + lower;
   }
   
   
}

