import processing.core.*; 
import processing.data.*; 
import processing.event.*; 
import processing.opengl.*; 

import java.util.HashMap; 
import java.util.ArrayList; 
import java.io.File; 
import java.io.BufferedReader; 
import java.io.PrintWriter; 
import java.io.InputStream; 
import java.io.OutputStream; 
import java.io.IOException; 

public class projet_processing extends PApplet {

int ecran = 0;
float compteur = 600;
int clic = 0;
int vclic = 0;
float cps = 10;

//image
PImage background;
PImage Bouton1;
PImage Bouton2;
PImage Bouton3;
PImage Bouton4;



public void setup() {
  
  
  //config du fond
  background = loadImage("fond.jpg");
  background.resize(width+200, height);
  
  //config Bouton 1
  Bouton1 = loadImage("fondBouton.png");
  Bouton1.resize(150, 150);
  
  //config Bouton 2
  Bouton2 = loadImage("fondBouton.png");
  Bouton2.resize(150, 150);
  
  //config bouton 3
  Bouton3 = loadImage("fondBouton.png");
  Bouton3.resize(150, 150);
  
  //config bouton 4
  Bouton4 = loadImage("fondBouton.png");
  Bouton4.resize(150, 150);
}



public void draw() {
  //ecran d'acceuil
  if (ecran == 0) {
    image (background, -100, 0);
    textSize(100);
    textAlign(CENTER, CENTER);
    text("Vittest", (width/2), (height/2)-55);
  }
  
  else if (ecran == 1) {
    //Test de vitesse de click
    image (background, -100, 0);
    
    // bouton home
    image (Bouton1, width-175, height-200);
    textSize(30);
    fill(255);
    text("Home", width-100, height-125);
    
    // bouton restart
    image (Bouton2, width-400, height-200);
    textSize(30);
    text("Restart", width-325, height-125);
    
    // bouton difficulté
    image (Bouton3, 75, height-200);
    image (Bouton4, 300, height-200);
    textSize(30);
    text("Normal", 150, height-125);
    text("Hard", 375, height-125);
    
    //consigne
    fill(200);
    textSize(70);
    text("Testez votre rapidité à la souris", width/2, 100);
    
    //paramètre de "nombre de clic"
    fill(200);
    textSize(40);
    text("Nombre de clic :", (width/2)-400, (height/2)-250);
    
    //compteur une fois le jeu lancer
    if (clic >= 1) {
      if (compteur > 0) {
        compteur--;
      }
    }
    
    //paramètre du compteur et du nombre de clic
    text(compteur/60, (width/2)+350, (height/2)-250);
    textSize(60);
    text(vclic, (width/2), (height/2)+350);
    
    //Affichage du nombre de clic par seconde
    if (compteur == 0) {
      float m = 0;
      
      m = (vclic)/cps;
      text(m, (width/2)-100, (height/2)+250);
      text("Cps", (width/2)+125, (height/2)+250);
      
      //phrase en fonction du nombre de clic par senconde
      //Décevant.
      if (m < 3) {
        Phrase("Décevant.");
      }
      //Branche une souris peut être ?
      else if ((m < 5) && (m > 3)) {
        Phrase("Branche une souris peut être ?");
      }
      //Le problème est entre la souris et la chaise je pense !
      else if ((m < 8) && (m > 5)) {
        Phrase("Le problème est entre la souris et la chaise je pense !");
      }
      //Ouais, pas de quoi se vanter
      else if ((m < 10) && (m > 8)) {
        Phrase("Ouais, pas de quoi se vanter !");
      }
      //Attention, Parkinson te guette
      else if ((m < 12) && (m > 10)) {
        Phrase("Attention, Parkinson te guette !");
      }
      //À moins que tu ne sois un dieu, tu devrais désactiver ton auto cliqueur !
      else if (m > 12) {
        Phrase("À moins que tu ne sois un dieu, tu devrais désactiver ton auto cliqueur !");
      }
    }
  }
}



public void mousePressed() {
  
  //Bouton Home
  if (mouseButton == LEFT) {
    if ( EtreUnBouton(width-125, height-125, 75) == true) {
      ecran = 0;
    }
    
   //Bouton du Jeu
    else if ((ecran == 0) && (EtreUnBouton(width/2, (height/2)-45, 222.5f) == true)) {
      ecran = 1;
      compteur = 600;
      clic = 0;
      vclic = 0;
      cps = 10.0f;
    }
    
    //Bouton Restart
    else if (EtreUnBouton(width-325, height-125, 75) == true) {
      ecran = 1;
      compteur = 600;
      clic = 0;
      vclic = 0;
      cps = 5.0f;
    }
    
    //Bouton difficulté Normal
    else if ((EtreUnBouton(150, height-125, 75) == true) && ((compteur == 300) || (compteur == 600))) {
      compteur = 600;
    }
    
    //Bouton difficulté Hard
    else if ((EtreUnBouton(375, height-125, 75) == true) && ((compteur == 300) || (compteur == 600))) {
      compteur = 300;
    }
    
    //Bouton de clic
    else if (compteur > 0) {
      if (EtreUnBouton(width/2, (height/2)-45, 222.5f) == true) {
        clic++;
        vclic++;
      }  
    }
  }
}
//z = distance de detection
public boolean EtreUnBouton(int x, int y, float z)
{
  float r = 0;
  r = dist(mouseX, mouseY, x, y);
 
  if (r <= z) {
    return true;
  }
  else {
    return false;
  }
}

//Phrase de fin
public void Phrase(String x) {
  //config du rectangle pour le message
  fill(150);
  stroke(0);
  strokeWeight(4);
  rect((width/2)-525, (height/2)-75, 1050, 150, 25);
  //config de la phrase
  fill(255);
  textAlign(CENTER, CENTER);
  text(x, width/2, height/2);
}
  public void settings() {  size(1440, 900); }
  static public void main(String[] passedArgs) {
    String[] appletArgs = new String[] { "projet_processing" };
    if (passedArgs != null) {
      PApplet.main(concat(appletArgs, passedArgs));
    } else {
      PApplet.main(appletArgs);
    }
  }
}
