2014-09-18 117 views
2

我的任务是创建一个猜测游戏,用户可以输入数据类型,程序必须返回相同格式的数据。否则程序将输出数据,用户必须在一些具有相同格式键入...数据类型猜测游戏

这是项目描述:

对于这个项目,你会根据简单的数据类型来创建一个猜谜游戏在C#中使用了 。您的程序应该输出一个数字并根据数值和格式设置, 用户必须输入与数字(或字符)格式匹配的数据类型。 然后程序会提示是否可以使用较小的数据类型来保存该值。你的程序也应该提供一个颠倒的游戏选项。如果你输入一个 值,那么它应该输出正确的数据类型。 这个程序应该使用byte,sbyte,int,uint,short,ushort,long,ulong,char,float, double,decimal和string。 提示:循环语句和分支将确实帮助您控制程序如何处理数据。


/*referenced http://www.gamedev.net/topic/462388-guess-the-number-game-c/ */ 
    using System; 
    using System.Collections.Generic; 
    using System.Text; 

    namespace Guess 
    { 
class Program 
{ 
    static void Main(string[] args) 
    { 
     while (true) 
     { 
      string Value = 0; 
      string UserValue = 0; 
      int Switch = GenerateNumber(1,13); 
      Console.WriteLine("I want to play a guessing game... do you want to guess first? (1=yes or 0=no) \r\n"); 
      int intTemp = Convert.ToInt32(Console.Readline()); 
      if(intTemp == 0) 
      { 
       Console.WriteLine("\r\n OK... I will guess first... please type in a value: \r\n"); 
       UserValue = Console.Readline(); 
       if(
      /*randomly picks a datatype case */ 
      switch(Switch); 
      { 
      case 1: 
       /*byte*/ 
       break; 
      case 2: 
       /*sbyte*/ 
       break; 
      case 3: 
       /*int*/ 
       break; 
      case 4: 
       /*uint*/ 
       break; 
      case 5: 
       /*short*/ 
       break; 
      case 6: 
       /*ushort*/ 
       break; 
      case 7: 
       /*long*/ 
       break; 
      case 8: 
       /*ulong*/ 
       break; 
      case 9: 
       /*char*/ 
       break; 
      case 10: 
       /*float*/ 
       break; 
      case 11: 
       /*double*/ 
       break; 
      case 12: 
       /*decimal*/ 
       break; 
      case 13: 
       /*string*/ 
       break; 
      } 

我有想出逻辑来区分数据类型的其余部分字符串和字符的麻烦。我知道,在大多数情况下,我只需要做一个if语句来确定数据类型是否在一定范围内,那么有人可以请我填写关于如何执行此操作的逻辑?

+1

+1对于作业问题,这实际上很不错。感谢您展示您的尝试,并确切地感到困惑! – BradleyDotNET 2014-09-18 17:43:57

+0

因此隐藏在这个文本墙上的是实际的问题_“字符和字符串有什么区别”_?您是否尝试在网站或该网站上搜索该问题? :-) – CodeCaster 2014-09-18 17:46:19

回答

2

A char正好是的一个字符。

A string的一个集合字符数(基本上)。

所以如果输入是字符串类型,并且只有一个字符,它可以是一个字符(可能是你的目的)。如果它是任何其他长度,它是一个字符串。

对于其他数据类型,如果输入字符串不是该数据类型的有效值,那么TryParse将会失败。

+0

感谢您的解析提示,我想我应该能够使用解析过滤所有这些,正确吗? – 2014-09-18 20:59:08

+0

@ColbytheEngineer除了'char'和'string'(显然)之外的所有东西,是的。请记住,所有大数据类型也会解析较小的数据类型。小的可能会用“OverflowException”来解析大的,所以你应该测试它,并确保你处理这种情况。此外,在技术上*字符串也是数字(如0xFF)将失败一个简单的'TryParse'调用。 – BradleyDotNET 2014-09-18 21:10:06

0

您无法区分表示为字符串和1长度字符串的字符。 (char - >字符串隐式转换将隐藏原始类型差异。) 您可以(必须)假定长度将在char和string之间进行选择。