我最谦虚的问候S.O folk,
我遇到以下评估标准的语法和语言要求。
注意:我不是在寻找明确的/"在这里你去!"答案(即:完成的作业)但我真的需要一些c#语言的指导才能完成作业。先感谢您。
这是任务简报:
- 到目前为止,我已经能够使用帖子底部的代码执行此操作。剩下的评估标准让我陷入困境 -
要求用户输入他们想要的单个号码"播放"反对经销商赢。这些选项应存储在一个数组{0,1,2}中,该数组将被调用以运行一个方法来计算胜利者。我还必须使用TryParse方法(?)将用户输入转换为数字。 - 要运行计算赢家方法,我假设我将使用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);
}
}
}
}
答案 0 :(得分:0)
虽然答案非常简单,但有一个链接会有所帮助 http://www.dotnetperls.com/console-readkey
// Call ReadKey again and test for the letter Y.
info = Console.ReadKey();
if (info.KeyChar == 'Y')
{
Play again;
}
// Call ReadKey again and test for the letter Y.
info = Console.ReadKey();
if (info.KeyChar == 'N')
{
Close;
}
另外我认为你的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"}
至于确定谁使用tryparse获胜,
// 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
}
这些都不是确切的代码,只是粗略的想法。
答案 1 :(得分:0)
C#中的大多数类型都有两种方法可以将字符串解析为该类型的值Parse
和TryParse
。调用两者的语法是相同的。 TryParse
方法与Parse
方法的不同之处在于TryParse
返回bool
,表示字符串是否已解析。也就是说,通过" 1"到int.TryParse
将返回true,但通过" A"将返回false。
这些方法过载了。最容易调用的是TryParse(string)
,它只是将要解析的字符串作为其唯一参数。它将使用应用程序的当前文化设置,无论是什么,来解析数字。这可能没问题,因为默认的Culture与Windows文化设置中指定的相同。其他重载允许您指定特定的区域性和格式选项。不要担心这些。
最后,你的循环。您可以将代码置于循环中,我会使用do . . . while
循环,首先执行您现在正在执行的所有操作,确定获胜者,然后询问用户是否要再次播放。解析它们的响应(这不是对TryParse
的调用,而是将它们的响应与预期响应进行比较),如果它们回答是,则循环重复。