我试图编写一个简单的控制台游戏应用程序&我遇到了一些尴尬的时刻。好吧,所以在代码中我试图获得一个Y / N输入并且如果是Y则开始游戏,或者如果N则退出。我喜欢听到一些不同的解决方案&对于每次开始或播放游戏时分配随机门号的编码样本,奖金为< 3。
<!-- Add Only On The Homepage Or Else -->
<?php
$currentpage = $_SERVER['REQUEST_URI'];
if($currentpage=="/" || $currentpage=="/index.php" || $currentpage=="" ) {
echo '
<header id="main-header" class="home">
';
}
else {
echo '
<header id="main-header">
';
}
?>
}
答案 0 :(得分:1)
这是一个解决这个问题的有点方法:
using System;
namespace ConsoleApplication1
{
internal class Program
{
private static void Main(string[] args)
{
while (true)
{
Console.WriteLine("Choose 1, 2, 3 or X to exit.");
// read input
var s = Console.ReadLine();
// shall we exit ?
if (s != null && s.Trim().Equals("X", StringComparison.InvariantCultureIgnoreCase))
{
Console.WriteLine("Bye bye !");
break;
}
// user picked an activity
int result;
if (!int.TryParse(s, out result)) continue; // failed to read input
// at this point, do something interesting
Console.WriteLine("You selected : " + result);
}
}
}
}
正如您所见,
string
(更好)继续改进:)
编辑:选择随机门
const int maxDoors = 3;
var doors = new Dictionary<int, string>
{
{0, "Door 1"},
{1, "Door 2"},
{2, "Door 3"}
};
var random = new Random();
while (true)
{
// integrate this inside the previous example loop
var door = random.Next(maxDoors);
var doorName = doors[door];
Console.WriteLine("You have chosen the door: " + doorName);
}
答案 1 :(得分:0)
只需简单地执行Console.ReadLine()。ToLower()(或ToUpper()),您就可以从中忽略任何案例问题。
至于你目前所拥有的,通过说(Console.ReadLine() == "foo" || Console.ReadLine() == "bar")
,你正在调用两次输入用户输入的命令,这意味着用户需要输入他们是否想在你进入之前再次玩两次while loop。
关于您的随机门号,请查看System.Random
,并在游戏开始时将其分配给变量。
https://msdn.microsoft.com/en-us/library/system.random(v=vs.110).aspx
此外,只需将Console.WriteLine();
添加到字符串中即可创建换行符,而不是调用空"\n"
。
最后,它“更喜欢”,而不是“更好”。