Définition de classes et leur utilisation avec des List
Bonjour à tous.
Je suis en train d'apprendre le c# en autodidacte, je me suis fixé pour but d'arriver à écrire une application dans le genre du "snake" (le jeu).
Je viens du delphi, je ne suis pas débutant en programmation, mais j'ai parfois du mal à mettre en code c# ce que je faisais en delphi, je bute sur des choses simples et je perds beaucoup de temps :(
Et faire un copier-coller des nombreux codes du genre présents sur le net n'est pas très formateur ...
Bref voila pour la courte présentation.
Pour mon projet, j'ai défini 2 classes :
- une qui contient la définition d'une coordonnée
- une qui contient la définition du corps du serpent, en utilisant la classe coordonnée
Ca nous donne donc
Code:
1 2 3 4 5 6 7 8
| namespace Snake
{
class Coordonnee
{
public int X;
public int Y;
}
} |
et
Code:
1 2 3 4 5 6 7
| namespace Snake
{
class Serpent
{
public List<Coordonnee> CorpsSerpent = new List<Coordonnee>();
}
} |
Ensuite arrive le moment où je veux utiliser ces classes.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| namespace Snake
{
public partial class Form1 : Form
{
Serpent UnSerpent = new Serpent(); // Création du serpent
Coordonnee UneCoordonnee = new Coordonnee(); // Création d'une coordonnée
public Form1()
{
InitializeComponent();
CreerNouveauJeu(); // Initialisation d'un nouveau jeu
}
...
private void CreerNouveauJeu()
{
UnSerpent.CorpsSerpent.Clear(); // Nettoyage du corps du serpent
UneCoordonnee.X = 16; // Initialisation coordonnée X
UneCoordonnee.Y = 1; // Initialisation coordonnée Y
UnSerpent.CorpsSerpent.Add(UneCoordonnee); // Ajout de ces coordonnées au corps du serpent
UneCoordonnee.X = 1; // Initialisation coordonnée X
UneCoordonnee.Y = 1; // Initialisation coordonnée Y
UnSerpent.CorpsSerpent.Add(UneCoordonnee); // Ajout de ces coordonnées au corps du serpent
}
}
} |
Les deux éléments de la liste sont bien crées, mais ils ne sont pas initialisés correctement.
Le deuxième ajout de coordonnées semble écrasé les valeur du premier, le couple de valeur (x,y)=(16,1) disparait de la liste.
C'est peut être une incompréhension sur le fonctionnement des List, ou une partie du code mal placé (j'ai du mal avec ça aussi), ou autre chose ...
J'ai besoin d'aide.