Files
DecouverteDev/readme.md
Grizouille 480e7928d8 wip
2025-12-15 17:22:39 +01:00

163 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Découverte du Developpement
1. Explication d un mini jeu "pierre, feuille, ciseaux"
2. Modification du mini jeu pour découvirir des concepts de développement, ça s'appelle le "refactoring"
* Ajout de tests (on va trouvé des bugs !)
* Ajout de classe, interface
* Pourquoi utiliser les injections de dépendance.
* Pourquoi utiliser le polymorphisme.
3. Ajout d un mini jeu "le pendu" (si il nous reste du temps)
# Prérequis
`Fonctionne sur Win, unix, Mac`
* [VsCode](https://code.visualstudio.com/download)
* [Sdk .net](https://dotnet.microsoft.com/fr-fr/download/dotnet/10.0)
* Les Extensions C#
* [.NET Install Tool](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.vscode-dotnet-runtime)
* [C#](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp)
# Introduction aux Concepts Fondamentaux
## 📝 Les Variables : Les Boîtes de votre Programme
csharp
``` csharp
// Les variables sont comme des boîtes étiquetées
// Boîte "age" contient le nombre 25
int age = 25;
// Boîte "nom" contient du texte
string nom = "Alice";
// Boîte "prix" contient un nombre décimal
double prix = 19.99;
// Boîte "estActif" contient VRAI ou FAUX
bool estActif = true;
// Boîte "lettre" contient un seul caractère
char lettre = 'A';
Console.WriteLine($"Bonjour {nom}, tu as {age} ans.");
// Affiche : Bonjour Alice, tu as 25 ans.
```
Pense à : Une variable = une étiquette + une valeur dans une boîte en mémoire.
___
## 🔀 Les Conditions : Les Carrefours de votre Programme
``` csharp
// IF/ELSE : Prendre des décisions comme dans la vie
int temperature = 22;
if (temperature > 30)
{
Console.WriteLine("🌡️ Il fait très chaud !");
}
else if (temperature > 20)
{
Console.WriteLine("😊 Il fait bon !"); // Celle-ci s'exécutera
}
else
{
Console.WriteLine("🧥 Il fait frais, prends un manteau");
}
// SWITCH : Pour plusieurs chemins précis
string jour = "Lundi";
switch (jour)
{
case "Lundi":
Console.WriteLine("📅 Début de semaine !");
break;
case "Vendredi":
Console.WriteLine("🎉 Bientôt le week-end !");
break;
default:
Console.WriteLine("📆 Un jour quelconque...");
break;
}
```
Pense à : if = "Si... alors..." comme dans un livre dont vous êtes le héros.
___
## 🔁 Les Boucles : Les Répétitions Intelligentes
### WHILE : "Tant que..."
``` csharp
// Comme un gardien qui dit "Tant que la condition est vraie, continue !"
int compteur = 0;
// Tant que compteur est inférieur à 5
while (compteur < 5)
{
Console.WriteLine($"Tour numéro {compteur + 1}");
compteur++; // On augmente le compteur à chaque tour
}
// Résultat : Affiche "Tour numéro 1" à "Tour numéro 5"
```
### FOR : Le Compteur Automatique
``` csharp
// Parfait quand on sait combien de fois on veut répéter
// for(initialisation; condition; incrémentation)
for (int i = 0; i < 3; i++) // i part de 0, continue tant que i<3, augmente de 1
{
Console.WriteLine($"Message {i + 1}");
}
// Résultat : Message 1, Message 2, Message 3
```
___
### 📦 Les Tableaux : Les Rangements Organisés
```csharp
// Un tableau = une étagère avec plusieurs cases numérotées
int[] scores = new int[3]; // Étiquette "scores" avec 3 cases
scores[0] = 95; // Case numéro 0 (première case)
scores[1] = 87; // Case numéro 1
scores[2] = 72; // Case numéro 2
// Plus simple : initialisation directe
string[] fruits = { "Pomme", "Banane", "Orange" };
Console.WriteLine($"Mon fruit préféré : {fruits[0]}"); // Pomme
Console.WriteLine($"J'ai {fruits.Length} fruits"); // 3
```
Pense à : Les indices commencent à 0 ! Première case = [0], deuxième = [1], etc.
### 📦 Les listes : Rangements "Empilé"
```csharp
// Une liste
List<int> scores = new List<int>(); // Étiquette "scores" avec 3 cases
scores.Add(95); // Element numéro 0 (première case)
scores.Add(87); // Element numéro 1
scores.Add(72); // Element numéro 2
```
___
## 📊 Résumé des Concepts
| Concept | Analogie | Exemple C# | À retenir |
| ------- | -------- | ---------- | --------- |
|Variable| Une boîte étiquetée| int age = 25;| Stocke une valeur |
|Condition | Un carrefour | if (x > 10) { ... } | Prend une décision |
|Boucle| Un disque qui tourne | for (int i=0; i<5; i++) | Répète des actions |
|Tableau| Une étagère à cases | string[] noms = {"A","B"}; | Stocke plusieurs valeurs du meme type |
## Les Méthodes
* `void`: Ne retourne rien (pas de `return`)
* `int`: Retourne un entier (`return` obligatoire)
* `string`: Retourne une chaine (`return` obligatoire)
* etc... (`return` obligatoire*)
* \* sauf quelques cas.
### Exemple:
```csharp
private void Write(string value){
Console.WriteLine(value);
}
private int Write(int value){
return value + 1;
}
```
### Pour aller plus loins: [Petite liste dexemples de styles modernes en C# (C# 8 → C# 12)](./modernStyleC8-12.md)