Dans tes boucles, qu'est ce qui t'as poussé à utiliser l'opérateur "<" pour les conditions de fin? L'opérateur "!=" serait plus logique et sous-entendrait aussi que tu maitrise mieux ton code à l'intérieur de la boucle qu'avec un opérateur de comparaison (i.e. tu sais exactement que i ne peut aller que de 0 à rows, il n'y aura pas de bidouilles faite dans la boucle sur i).
En théorie, les tests unitaire peuvent être parallélisés. Ce qui sous-entend qu'ils devraient être indépendant les un des autres. Si l'un de tes tests utilise une variable d'instance de la classe de test, tu transgresses ce principe. Je vois que tu as annoté ton code "Act" & "Assert". C'est justement le rôle de la phase "Arrange" (qui arrive avant les 2 autres) que de définir le périmètre établi initialement par ton TU en fabricant un set de données spécifique pour la phase "Act" qui suivra.
Pourquoi tester "isFalling == true"? Un "if" attend une expression qui évaluera à true (vrai) ou false (faux). Or, une variable booléenne répond déjà par nature à ce critère, tu peux te contenter d'écrire "isFalling", sans rien d'autre, ça aura exactement le même effet.
Pour ton problème initial, ce que tu veux, c'est "écraser" la définition d'un bloc vide (représenté par ".") par la définition d'un bloc non-vide (représenté par "X") sous condition. Traduction : "Si la position à [row]x[col] est le bloc non-vide alors ajoute un bloc non-vide, sinon, ajoute un bloc vide". Or, ce n'est pas du tout ce que fait ton code. Ton code dit "A la position [row]x[col], ajoute un bloc vide, puis, si [condition], alors, ajoute un bloc non-vide suivi d'un bloc vide".
Tetris en projet console c#
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.