Correction readme et test
This commit is contained in:
@@ -1,8 +1,4 @@
|
|||||||
// See https://aka.ms/new-console-template for more information
|
class Program()
|
||||||
using System;
|
|
||||||
using System.Runtime.CompilerServices;
|
|
||||||
|
|
||||||
class Program()
|
|
||||||
{
|
{
|
||||||
private static Dictionary<string, int> _scores;
|
private static Dictionary<string, int> _scores;
|
||||||
|
|
||||||
@@ -32,22 +28,20 @@ class Program()
|
|||||||
{"ordi", 0}
|
{"ordi", 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// On boucle à jusqu'a que le joueur ou l'utilisateur arrive à 3.
|
||||||
while (_scores["joueur"] < 3 && _scores["ordi"] < 3)
|
while (_scores["joueur"] < 3 && _scores["ordi"] < 3)
|
||||||
{
|
{
|
||||||
Console.WriteLine($"\nScore : Toi {_scores["joueur"]} - {_scores["ordi"]} Ordinateur");
|
Console.WriteLine($"\nScore : Toi {_scores["joueur"]} - {_scores["ordi"]} Ordinateur");
|
||||||
Console.WriteLine("Choisis (pierre, papier, ciseaux) : ");
|
Console.WriteLine("Choisis (pierre, papier, ciseaux) : ");
|
||||||
var joueur = Console.ReadLine().ToLower();
|
var joueur = Console.ReadLine().ToLower();
|
||||||
|
|
||||||
if (!choix_possibles.Contains(joueur))
|
if (!choix_possibles.Contains(joueur))
|
||||||
{
|
{
|
||||||
Console.WriteLine("❌ Choix invalide !");
|
Console.WriteLine("❌ Choix invalide !");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
var ordi = random.GetItems(choix_possibles, 1).FirstOrDefault();
|
var ordi = random.GetItems(choix_possibles, 1).FirstOrDefault();
|
||||||
Console.WriteLine($"🤖 L'ordinateur a choisi : {ordi}");
|
Console.WriteLine($"🤖 L'ordinateur a choisi : {ordi}");
|
||||||
|
|
||||||
// Déterminer le gagnant
|
// Déterminer le gagnant
|
||||||
if (joueur == ordi)
|
if (joueur == ordi)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
|
||||||
<PackageReference Include="xunit" Version="2.9.2" />
|
<PackageReference Include="xunit" Version="2.9.2" />
|
||||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2" />
|
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2" />
|
||||||
|
<PackageReference Include="NFluent"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -21,5 +22,4 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Using Include="Xunit" />
|
<Using Include="Xunit" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
namespace MiniJeux.Test;
|
using NFluent;
|
||||||
|
|
||||||
|
namespace MiniJeux.Test;
|
||||||
|
|
||||||
public class PpcTest
|
public class PpcTest
|
||||||
{
|
{
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Test1()
|
public void Test1()
|
||||||
{
|
{
|
||||||
|
var i = 1;
|
||||||
|
Check.That(i).IsEqualTo(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
127
readme.md
127
readme.md
@@ -1,7 +1,11 @@
|
|||||||
# Découverte du Developpement
|
# Découverte du Developpement
|
||||||
|
|
||||||
1. Explication d un mini jeu "pierre, feuille, ciseaux"
|
1. Explication d un mini jeu "pierre, feuille, ciseaux"
|
||||||
2. Modification du mini jeu pour y intégrer des concepts de développement (refactoring, des tests (on va trouvé des bugs !) , des interfaces, des injections de dépendance, classe).
|
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)
|
3. Ajout d un mini jeu "le pendu" (si il nous reste du temps)
|
||||||
|
|
||||||
|
|
||||||
@@ -15,3 +19,124 @@
|
|||||||
* Les Extensions C#
|
* Les Extensions C#
|
||||||
* [.NET Install Tool](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.vscode-dotnet-runtime)
|
* [.NET Install Tool](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.vscode-dotnet-runtime)
|
||||||
* [C#](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp)
|
* [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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user