163 lines
4.9 KiB
Markdown
163 lines
4.9 KiB
Markdown
# 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 d’exemples de styles modernes en C# (C# 8 → C# 12)](./modernStyleC8-12.md) |