Teaching - 2i013

Enseignants


2i013 - Groupe 5 : Course de voiture

Examen le 15/04 de 13h45 à 15h45 en 14-15 301 Chacun travaille sur sa session obligatoirement.

Soutenance le 13/05 de 14h à 17h

Code pour l'examen 2013

Le monde en 260, par David San

Evaluation

Détails sur le rapport et la soutenance

Compétition


Séance 1: Fichiers

Cours/TD 1: LI260_2015_Cours1.pdf

TME 1: intro à eclipse, lecture du fichier circuit: lien

Fichiers des circuits de base: LI260_2010_Tracks.zip


Séance 2: Architecture

Cours/TD 2: LI260_2015_Cours2.pdf

TME 2: construction de la voiture, du circuit et de la strategy :lien | Éléments de correction


Séance 3: Stratégie & Radar

Cours/TD 3: LI260_2015_Cours3.pdf

TME 3: Strategy, Radar, code pour la sauvegarde standard d'une liste de commande lien | Éléments de correction

Validation des courses jouées en utilisant le simulateur de référence: lien


Séance 4: Dijkstra

Cours/TD 4: LI260_2016_Cours4.pdf

Code dijkstra: lien


Séance 5: MVC

Cours/TD 5: LI260_2016_Cours5.pdf

Code MVC et SWING : lien


Séance 6:

Cours/TD: LI260_2016_Cours6.pdf


IHM avancées, astuces diverses: lien

Circuits supplémentaires pour s'entrainer : LI260_track2.zip


Séance 7: Stratégie composite

Cours/TD 7: LI260_2014_Cours7.pdf

Code pour les listes de points et les stratégies composites lien

Ressources sur les filtres: lien


Séance 8: Algorithmes génétiques

Cours/TD 8: LI260_2015_Cours8.pdf
Code pour les algorithmes génétiques: lien


Séance 9: 3D et intro à openGL

Cours/TD 9: LI260_2015_Cours9.pdf
Ressources pour la 3D: lien


Séance 10:

Cours/TD 10: LI260_2015_Cours10.pdf Δ
Partiel 2012: LI260_2012_Partiel.pdf


Annales

Partiel 2011: Partiel2011.pdf
Partiel 2012: LI260_2012_Partiel.pdf
Partiel 2013: LI260_2013_Partiel.pdf

Sur machine en fin de semestre:
LI260_Examen2011.pdf
LI260_Circuits_Examen2011.zip

Exemple de code de conversion pour l'exploitation des images:

        public static Terrain terrainFromColor(int c){
                Color color = new Color(c);
                int red = color.getRed();
                int green = color.getGreen();
                int blue = color.getBlue();

                if(green > blue+150 && green > red+150) // vert
                        return Terrain.Herbe;

                if(blue > green+20 && blue > red+100) // bleu
                        return Terrain.Eau;

                if(blue == green && blue == red && blue<200 && blue>50) // gris
                        return Terrain.Route;

                if(green < 20 && blue <20 && red<20){ // noir
                        if(departVu){
                                System.out.println("ATTENTION : double départ !!!!");
                                //System.exit(1);
                        }

                        departVu = true;
                        return Terrain.StartPoint;
                }

                if(blue == green && blue > red + 100){ // cyan
                        nbArr ++;
                        return Terrain.EndLine;
                }

                if(blue >220 && blue >220 && blue>220) // blanc
                        return Terrain.BandeBlanche;

                if(red > green+100 && red > blue+100) // rouege
                        return Terrain.BandeRouge;


                if(red > 2*green) // rouege
                        return Terrain.Boue;

                //System.err.println("Unknown color switched to green ! "+red+" "+green+" "+blue);
                //return Terrain.Route;
                return Terrain.Herbe;

        }