Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c-创建一个使用数组的方法并使用循环重新启动控制台应用程序_C#_Arrays_Loops_Methods - Fatal编程技术网

C# c-创建一个使用数组的方法并使用循环重新启动控制台应用程序

C# c-创建一个使用数组的方法并使用循环重新启动控制台应用程序,c#,arrays,loops,methods,C#,Arrays,Loops,Methods,我最谦恭的问候S.O.folk 我对以下评估标准的语法和语言要求有问题 注意:我不是在寻找一个确定的/给你!回答,即:已完成的作业,但我确实需要一些c语言的指导才能完成作业。先谢谢你 这是作业简介: 为经销商生成一张卡,使用结构显示2个随机数。 为玩家生成一张使用相同结构显示3个随机数的卡。 -到目前为止,我已经能够用我文章底部的代码来完成这项工作。其余的评估标准让我陷入困境- 要求用户键入他们希望与经销商比赛以赢得的单个号码。这些选项应存储在数组{0,1,2}中,该数组将被调用以运行方法来计算

我最谦恭的问候S.O.folk

我对以下评估标准的语法和语言要求有问题

注意:我不是在寻找一个确定的/给你!回答,即:已完成的作业,但我确实需要一些c语言的指导才能完成作业。先谢谢你

这是作业简介:

为经销商生成一张卡,使用结构显示2个随机数。 为玩家生成一张使用相同结构显示3个随机数的卡。 -到目前为止,我已经能够用我文章底部的代码来完成这项工作。其余的评估标准让我陷入困境-

要求用户键入他们希望与经销商比赛以赢得的单个号码。这些选项应存储在数组{0,1,2}中,该数组将被调用以运行方法来计算获胜者。我还必须使用TryParse方法将用户输入转换为数字。-要运行calculate winner方法,我假设将使用类似以下内容的if语句:

if (PlayerSelection > DealerCard) 
{ 
    Console.WriteLine ("You Win");
}
else (DealerCard > PlayerSelection) 
{ 
    Console.WriteLine ("Dealer Wins");
}
else if (PlayerSelection == DealerCard)
{ 
    Console.WriteLine ("It is a draw");
}
-除上述内容外,我不理解使用tryParse方法将用户输入转换为数字的语法-

最后,我必须创建一个循环,根据用户输入再次运行程序。你想再玩一次吗?用户输入是=再次运行应用程序或用户输入否=退出应用程序。 正如我所说,这是一项作业,所以我不想寻找一个快速的答案。一些耐心的指导,希望看到我完成这项任务,并了解更多,将不胜感激。如果这个练习对某些人来说非常简单,我也很抱歉。我对c语言和一般编程非常陌生

下面是我到目前为止的代码。正如你所看到的,我构建了它,这样我就可以继续我自己的工作而不会迷失方向。我觉得自己像个蹒跚学步的孩子,但嘿,让事情变得简单似乎是我真正掌握这些事情的唯一方法。我可能不是一个天生的编程高手,但上帝保佑我不会放弃

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Assessment2_Nicole_Haines

{
    class Program
    {


        static void Main(string[] args)
        {
            card PlayerCard = new card(6,26); // Calls an instance of the card struct to create PlayerCard card

card PlayerCard2 = new card(6,26); // Calls an instance of the card struct to create PlayerCard2 card
            card PlayerCard3 = new card(6,26); // Calls an instance of the card struct to create PlayerCard3 card

            card DealerCard = new card(6,26); // Calls a new instance of the struct (named card) to create the dealers card with 2 numbers

            //declare an array of card
            card[] PlayerCards = { PlayerCard, PlayerCard2, PlayerCard3 };

            // Welcome text
            Console.WriteLine("Welcome! Press the 'enter' key to play!");
            Console.ReadLine();

            // Use of struct for Dealers single card
            Console.WriteLine("The dealers card is: {0} , {1}", DealerCard.Number1, DealerCard.Number2);  
            Console.ReadLine();

            // Use of struct for Players first card
            Console.WriteLine("Your first card is: {0} , {1}", PlayerCard.Number1, PlayerCard.Number2);  
            Console.ReadLine();

            // Use of struct for Players second card
            Console.WriteLine("Your second card is: {0} , {1}", PlayerCard2.Number1, PlayerCard2.Number2);
            Console.ReadLine();

            // Use of struct for Players third (and final) card
            Console.WriteLine("Your third (and final!) card is: {0}, {1}", PlayerCard3.Number1, PlayerCard3.Number2);
            Console.ReadLine();

            // Request user input - As you can see - the rest of the code is incomplete/incorrect

            Console.WriteLine("Please enter the number you wish to 'play' in order to beat the dealer:"); 


                // Accept/Parse user input 
// Create a while loop that runs application again if user enters Y. otherwise - exits.




            Console.WriteLine("Would you like to play again?");
            Console.ReadLine(); 



            Console.WriteLine("You selected 'Y' Let's play again!");
            Console.ReadLine();

            Console.WriteLine("You selected 'N' See you later!");
            Console.ReadLine();

        }

        // Struct

        public struct card
        {

            static Random r = new Random();
            public int Number1;
            public int Number2;
            public card(int Minimum, int Maximum)
            {
                Number1 = r.Next(Minimum, Maximum);
                Number2 = r.Next(Minimum, Maximum);
            }

        }




    }
}

答案很简单,这里有一个链接可以帮助你

我还认为你的if声明

  if (PlayerSelection > DealerCard) 
   { 
Console.WriteLine ("You Win");
    }
  else if(DealerCard > PlayerSelection) 
  { 
Console.WriteLine ("Dealer Wins");
  }
 else if (PlayerSelection == DealerCard)
  { 
Console.WriteLine ("It is a draw");
  }
  else{Console.WriteLine("Something Went Wrong"}
至于决定谁会赢的问题

   // Call ReadKey again and test for the letter Y.
info = Console.ReadLine();
    int pleayercardvalue = tryparse(info, int32)
if (playercardvalue != playercard1.value OR playercard2.value OR playercard3.value)
{
    "Select Valid Card";
}
    else
    {
      playercardvalue
    }

这些都不是精确的代码,只是粗略的想法。

C中的大多数类型都有两种方法将字符串解析为该类型的值,Parse和TryParse。调用两者的语法相同。TryParse方法与Parse方法的不同之处在于,TryParse返回一个bool,指示字符串是否已被解析。也就是说,将1传递给int.TryParse将返回true,但传递A将返回false

这些方法是重载的。最容易调用的是TryParsestring,它只将要解析的字符串作为其唯一参数。它将使用应用程序的当前区域性设置(不管是什么)来解析数字。这可能没有问题,因为默认区域性与Windows区域性设置中指定的区域性相同。其他重载允许您指定特定的区域性和格式选项。别担心这些


最后,你的循环。你会把你的代码放在一个循环里,我会用一个do。而循环则首先执行您现在正在执行的所有操作,确定赢家,然后询问用户是否希望再次玩。解析他们的响应这不是对TryParse的调用,而是将他们的响应与预期的响应进行比较,如果他们说是,循环将重复。

谢谢。作为一名学习者,我甚至不知道ReadKey方法的存在。这是非常方便知道。不幸的是,评估确实需要使用while循环来重新运行或退出应用程序。不过我已经记下了ReadKey,这肯定会在我自己的c语言特性实验中派上用场。我确信你会使用ReadKey方法来设置while循环。毕竟,你必须知道他们是选择Y还是N。
   // Call ReadKey again and test for the letter Y.
info = Console.ReadLine();
    int pleayercardvalue = tryparse(info, int32)
if (playercardvalue != playercard1.value OR playercard2.value OR playercard3.value)
{
    "Select Valid Card";
}
    else
    {
      playercardvalue
    }