im essayant de coder une simple aventure de texte. Lorsque j'ai commencé à coder les instructions, un utilisateur peut s'adresser à j'ai réalisé que l'utilisateur pourrait mettre dans "le nord-est", "sud-ouest", etc., donc je pensais que je devrais faire des cas pour eux.
Mon problème est Case5 "Nord-Est" ne fonctionne pas lorsque j'entraîne "nord-est" dans la ligne de commande. p>
4 Réponses :
Parce que l'entrée contient du Nord, donc d'abord, si elle est exécutée et ne recherchez pas d'autre si, essayez d'inverser si elle est et placez Case5 comme :)
Je n'enversais pas la logique, plutôt simplement de déplacer la dernière déclaration pour être le premier - par exemple. "Si (cas5) ...; sinon si (cas1) ...; ...". N'importe quel pouce vers le haut.
"nord-est"
Il ne peut pas fonctionner parce que vous demandez "contient le nord" comme la première question? la réponse est oui. Le détroit de votre démarrage à l'étape 1. Vous n'arrivez pas à l'étape 5.
Pour arriver à l'étape 5, vous devez le demander d'abord. P>
De toute façon, il semble qu'il y ait plus de problèmes dans le code. Je ne sais pas ce que vous essayez de réaliser, mais il semble que vous compliquez les choses sans raison. P>
Je ferais quelque chose de similaire à celui suivant: P>
List<string> eastWest = new List<string> {"east", "west"}; var up = new List<string> {"north", "south"}; var direction = Console.ReadLine(); var upDirection = up.Find(direction.Contains); var sideDirection = eastWest.Find(direction.Contains); var result = upDirection != null ? upDirection + " " + sideDirection:sideDirection; Console.WriteLine("You are headed" + result);
Bien que cela ait été répondu, je ferais mon observation:
Vos booléens sont inutiles et aident à cacher le problème. P>
Par exemple: P>
string input = Console.ReadLine(); if (input.Contains("north") && input.Contains("east")) Console.WriteLine("\nyou head north east"); else if (input.Contains("north")) Console.WriteLine("\nyou head north"); else if (input.Contains("east")) Console.WriteLine("\nyou head east"); else if (input.Contains("south")) Console.WriteLine("\nyou head south"); else if (input.Contains("west")) Console.WriteLine("\nyou head west"); else Console.WriteLine("enter a valid direction");
Merci, im nouveau avec codage, mais cela le rend clair. Je suis vraiment surpris de savoir à quel point le code inutile est dans mon programme, ce que j'ai fait était un peu piraté ensemble, mais ses affaires comme celle-ci qui m'aide à avancer.
Heureux d'être utile :) Il ne s'applique pas dans cette situation particulière, mais assurez-vous d'être bien versé dans les tableaux et les boucles avant d'aller trop loin - ils vous aideront massivement sur la piste.
Vous devriez essayer d'utiliser le mode de débogage et les points d'arrêt pour diagnostiquer des problèmes tels que celui-ci.