C# — Syntaxe de base

Le Guerrier et le Code

Introduction à C# à travers un programme de jeu de rôle

🎯 Objectifs du cours

1 Structure d'un programme C#

Tout programme C# a besoin d'une structure minimale. Voici le squelette de notre programme D&D :

// Ligne de commentaire : ignorée par l'ordinateur
using System;            // Importe les outils de base (Console, etc.)

class Program            // Contenant du programme
{
    static void Main()   // Point d'entrée : C# commence ici
    {
        // Ton code ici
    }
}
C#
💡 À retenir
Les accolades { } délimitent des blocs de code. Chaque bloc ouvert doit être fermé. L'indentation (les espaces au début des lignes) n'est pas obligatoire en C#, mais elle est indispensable pour la lisibilité.

Les commentaires

Un commentaire commence par //. C# l'ignore complètement à l'exécution. C'est uniquement pour les humains.

// Ceci est un commentaire sur une ligne
int vie = 100;  // On peut aussi commenter en fin de ligne
C#

2 Variables et types de données

Une variable est une case mémoire avec un nom et un type. En C#, on doit toujours déclarer le type avant le nom.

type nomVariable = valeur;
Syntaxe

Les types utilisés dans le programme

string
Chaîne de caractères (texte)
"Aragorn"
"Guerrier"
int
Nombre entier (sans virgule)
100, 15, -3, 0
bool
Valeur vraie ou fausse
true
false

Exemples tirés du programme

// Déclaration + initialisation sur la même ligne
string nom         = "Aragorn";
string classe      = "Guerrier";
int    pointsDeVie = 100;
int    attaque     = 15;
int    defense     = 10;
bool   estVivant   = true;
C#
⚠ Attention
En C#, chaque instruction se termine par un point-virgule ;. L'oublier est l'une des erreurs les plus fréquentes !

Modifier une variable

Après la déclaration, on peut changer la valeur d'une variable. On n'écrit plus le type :

int pointsDeVie = 100;   // Déclaration (le type est requis)
pointsDeVie      = 80;    // Modification (pas de type !)
C#

3 Afficher du texte

Console.WriteLine

Console.WriteLine() affiche une ligne de texte dans la console, puis passe à la ligne suivante.

Console.WriteLine("Bonjour !");          // Affiche : Bonjour !
Console.WriteLine("=== Personnage ===");   // Affiche : === Personnage ===
C#

L'interpolation de chaînes avec $"..."

Pour insérer la valeur d'une variable dans un texte, on préfixe la chaîne avec $ et on place le nom de la variable entre { } :

string nom = "Aragorn";
int    pv  = 100;

Console.WriteLine($"Nom : {nom}");   // Affiche : Nom : Aragorn
Console.WriteLine($"PV  : {pv}");    // Affiche : PV  : 100
C#
💬 Le \n dans les chaînes
Le caractère spécial \n insère un saut de ligne à l'intérieur d'une chaîne :
$"\n{nom} attaque" → affiche une ligne vide avant le texte.

Comparaison avec Python

PythonC#Effet
print("Bonjour") Console.WriteLine("Bonjour"); Afficher du texte
f"Nom : {nom}" $"Nom : {nom}" Interpolation
print(f"PV : {pv}") Console.WriteLine($"PV : {pv}"); Afficher une variable

4 Opérateurs

Opérateurs arithmétiques

int degats = attaque - 3;   // soustraction : 15 - 3 = 12
int total  = attaque + defense;  // addition
int double_atq = attaque * 2;   // multiplication
int moitie = attaque / 2;       // division entière
C#

L'opérateur -= (raccourci)

Au lieu d'écrire pointsDeVie = pointsDeVie - 20, C# offre un raccourci :

pointsDeVie -= 20;   // équivaut à : pointsDeVie = pointsDeVie - 20
pointsDeVie += 5;    // ajouter 5
pointsDeVie *= 2;    // multiplier par 2
C#

5 Conditions — if / else

La condition if permet d'exécuter du code seulement si une condition est vraie.

if (pointsDeVie <= 0)
{
    pointsDeVie = 0;
    estVivant   = false;
}
C#

Les opérateurs de comparaison utilisés dans les conditions :

OpérateurSignificationExemple
==égal àpv == 0
!=différent depv != 0
<inférieur àpv < 10
>supérieur àpv > 50
<=inférieur ou égalpv <= 0
>=supérieur ou égalpv >= 100
⚠ = vs ==
= est l'affectation (on donne une valeur). == est la comparaison (on vérifie si deux valeurs sont égales). Confondre les deux est une erreur très courante !

6 Programme complet annoté

Voici le programme D&D entier, découpé en blocs avec leurs explications :

Bloc 1 — En-tête & déclarations C#
using System; class Program { static void Main() { string nom = "Aragorn"; string classe = "Guerrier"; int pointsDeVie = 100; int attaque = 15; int defense = 10; bool estVivant = true;
  • using System donne accès à Console
  • static void Main() est le point d'entrée du programme
  • 6 variables créées : 2 textes, 3 entiers, 1 booléen
  • Chaque ligne se termine par ;
Bloc 2 — Affichage du personnage C#
Console.WriteLine("=== Personnage ==="); Console.WriteLine($"Nom : {nom}"); Console.WriteLine($"Classe : {classe}"); Console.WriteLine($"PV : {pointsDeVie}"); Console.WriteLine($"ATQ : {attaque}"); Console.WriteLine($"Vivant : {estVivant}");
  • La première ligne affiche un titre fixe (pas de $ nécessaire)
  • Le $ avant les guillemets active l'interpolation
  • Les espaces avant : servent à aligner joliment les valeurs
  • {estVivant} affiche True ou False
Bloc 3 — Attaque et dégâts reçus C#
int degats = attaque - 3; Console.WriteLine( $"\n{nom} inflige {degats} dégâts."); int degatsRecus = 20; pointsDeVie -= degatsRecus; if (pointsDeVie <= 0) { pointsDeVie = 0; estVivant = false; } Console.WriteLine( $"PV restants : {pointsDeVie}");
  • On calcule les dégâts : 15 - 3 = 12
  • \n ajoute un saut de ligne avant le message
  • -= raccourcit l'écriture de pv = pv - dégâts
  • Le if vérifie si le personnage est mort
  • Si PV ≤ 0, on force PV à 0 et estVivant = false

7 Résumé — Les 5 notions clés

1. Types de base
Toute variable a un type déclaré explicitement
int · string · bool
2. Point-virgule
Toute instruction se termine par ;
int x = 5;
3. Console.WriteLine
Afficher du texte dans la console
Console.WriteLine($"PV : {pv}");
4. Interpolation $"…"
Insérer une variable dans du texte
$"Bonjour {nom} !"
5. Condition if
Exécuter du code sous condition
if (pv <= 0) { … }