<commit_before>﻿using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Cpln.Enigmos.Enigmas.Components;

namespace Cpln.Enigmos.Enigmas
{

    class ZombieInvasionEnigmaPanel : EnigmaPanel
    {
        //déclaration des variables
        bool bViseurRouge = true;
        int iTimerCible = 0;//permet de compter les ticks du viseur
        int iNombresDeCoeurs = 0;//indique le nombre de coeur restant
        int iChronometre = 2000;//valeur du chronometre en haut a gauche

        //déclaration des pricipaux éléments de l'énigme
        PictureBox pbxBackground = new PictureBox();
        PictureBox pbxBatiment = new PictureBox();
        PictureBox pbxCible = new PictureBox();

        //déclaration des labels
        Label lblChronometre = new Label();

        //création d'un objet Random
        Random random = new Random();

        //permet de faire spawner les zombies à interval différent
        int iTickRandomGauche;
        int iTickRandomDroite;

        //création d'un timer
        private Timer timer = new Timer();

        //création d'une liste
        List<Zombie> zombies = new List<Zombie>();//Liste de zombies
        List<Zombie> zombiesMort = new List<Zombie>();//Liste des zombies morts
        List<Coeur> coeurs = new List<Coeur>();//Liste des coeurs

        public override void Load()
        {
            timer.Start();
        }

        public override void Unload()
        {
            timer.Stop();
        }

        public ZombieInvasionEnigmaPanel()
        {            
            //modification des parametres du panel de base
            Screen myScreen = Screen.PrimaryScreen;
            this.Width = (myScreen.WorkingArea.Width);
            this.Height = 400;

            //création et ajout des coeurs
            Coeur coeur1 = new Coeur(new Point(this.Right - 50, 0));
            Coeur coeur2 = new Coeur(new Point(this.Right - 100, 0));
            Coeur coeur3 = new Coeur(new Point(this.Right - 150, 0));
            coeurs.Add(coeur1);
            coeurs.Add(coeur2);
            coeurs.Add(coeur3);

            //création du batiment
            pbxBatiment.Size = Properties.Resources.Batiment.Size;
            pbxBatiment.Image = Properties.Resources.Batiment;
            pbxBatiment.Location = new Point(this.Width / 2 - pbxBatiment.Width / 2, this.Bottom - pbxBatiment.Height);

            //déclaration de deux nombres Randoms
            iTickRandomGauche = NextRandom();
            iTickRandomDroite = NextRandom();

            //placement du label
            lblChronometre.Text = "Timer : " + Convert.ToString(iChronometre);
            lblChronometre.Font = new Font("Arial", 24, FontStyle.Bold);
            lblChronometre.Size = new Size(120, 30);
            lblChronometre.Location = new Point(30, 0);

            //mise en place d'un timer
            timer.Interval = 2; // 10 miliseconde
            timer.Tick += new EventHandler(Timer_Tick);

            //changement du curseur
            this.Cursor = new Cursor(Properties.Resources.CibleRouge.GetHicon());//de base on met le curseur en rouge

            //création d'un evenement de click
            MouseClick += new MouseEventHandler(PanelClick);

            //ajout des images dans les controls
            Controls.Add(lblChronometre);
            Controls.Add(pbxCible);
            Controls.Add(pbxBatiment);
            Controls.Add(coeur1);
            Controls.Add(coeur2);
            Controls.Add(coeur3);
        }

        /// <summary>
        /// Detection d'un appuie sur le panel
        /// </summary>
        public void PanelClick(object sender, MouseEventArgs e)
        {
            this.Cursor = new Cursor(Properties.Resources.CibleNoir.GetHicon());//changement de l'image du curseur
            this.Cursor = null;
            bViseurRouge = false;//on inverse la variable une fois que l'utilisateur à cliqué
            iTimerCible = 0;//on remet la varaible à zero
        }<commit_msg>Réinitialisation au Load<commit_after>﻿using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Cpln.Enigmos.Enigmas.Components;

namespace Cpln.Enigmos.Enigmas
{

    class ZombieInvasionEnigmaPanel : EnigmaPanel
    {
        //déclaration des variables
        bool bViseurRouge = true;
        int iTimerCible = 0;//permet de compter les ticks du viseur
        int iNombresDeCoeurs = 0;//indique le nombre de coeur restant
        int iChronometre = 2000;//valeur du chronometre en haut a gauche

        //déclaration des pricipaux éléments de l'énigme
        PictureBox pbxBackground = new PictureBox();
        PictureBox pbxBatiment = new PictureBox();
        PictureBox pbxCible = new PictureBox();

        //déclaration des labels
        Label lblChronometre = new Label();

        //création d'un objet Random
        Random random = new Random();

        //permet de faire spawner les zombies à interval différent
        int iTickRandomGauche;
        int iTickRandomDroite;

        //création d'un timer
        private Timer timer = new Timer();

        //création d'une liste
        List<Zombie> zombies = new List<Zombie>();//Liste de zombies
        List<Zombie> zombiesMort = new List<Zombie>();//Liste des zombies morts
        List<Coeur> coeurs = new List<Coeur>();//Liste des coeurs

        public override void Load()
        {
            timer.Start();
            Initialisation();
        }

        public override void Unload()
        {
            timer.Stop();
        }

        public ZombieInvasionEnigmaPanel()
        {            
            //modification des parametres du panel de base
            Screen myScreen = Screen.PrimaryScreen;
            this.Width = (myScreen.WorkingArea.Width);
            this.Height = 400;

            //création et ajout des coeurs
            Coeur coeur1 = new Coeur(new Point(this.Right - 50, 0));
            Coeur coeur2 = new Coeur(new Point(this.Right - 100, 0));
            Coeur coeur3 = new Coeur(new Point(this.Right - 150, 0));
            coeurs.Add(coeur1);
            coeurs.Add(coeur2);
            coeurs.Add(coeur3);

            //création du batiment
            pbxBatiment.Size = Properties.Resources.Batiment.Size;
            pbxBatiment.Image = Properties.Resources.Batiment;
            pbxBatiment.Location = new Point(this.Width / 2 - pbxBatiment.Width / 2, this.Bottom - pbxBatiment.Height);

            //déclaration de deux nombres Randoms
            iTickRandomGauche = NextRandom();
            iTickRandomDroite = NextRandom();

            //placement du label
            lblChronometre.Text = "Timer : " + Convert.ToString(iChronometre);
            lblChronometre.Font = new Font("Arial", 24, FontStyle.Bold);
            lblChronometre.Size = new Size(120, 30);
            lblChronometre.Location = new Point(30, 0);

            //mise en place d'un timer
            timer.Interval = 2; // 10 miliseconde
            timer.Tick += new EventHandler(Timer_Tick);

            //changement du curseur
            this.Cursor = new Cursor(Properties.Resources.CibleRouge.GetHicon());//de base on met le curseur en rouge

            //création d'un evenement de click
            MouseClick += new MouseEventHandler(PanelClick);

            //ajout des images dans les controls
            Controls.Add(lblChronometre);
            Controls.Add(pbxCible);
            Controls.Add(pbxBatiment);
            Controls.Add(coeur1);
            Controls.Add(coeur2);
            Controls.Add(coeur3);
        }

        /// <summary>
        /// Detection d'un appuie sur le panel
        /// </summary>
        public void PanelClick(object sender, MouseEventArgs e)
        {
            this.Cursor = new Cursor(Properties.Resources.CibleNoir.GetHicon());//changement de l'image du curseur
            //this.Cursor = null;
            bViseurRouge = false;//on inverse la variable une fois que l'utilisateur à cliqué
            iTimerCible = 0;//on remet la varaible à zero
        }
{'fraction_non_alphanumeric': 0.09086485828974578, 'fraction_numerical': 0.010947573287921177, 'mean_word_length': 2.007315288953914, 'pattern_counts': {'":': 0, '<': 19, '<?xml version=': 0, '>': 19, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1063676', 'n_tokens_mistral': 2504, 'n_tokens_neox': 2392, 'n_words': 629}