はじめに
原作者様: Javaで湯婆婆を実装してみる - Qiita
拙作「Python 3で湯婆婆を実装してみる - Qiita」に続いて、調子に乗って2言語目でやってみました。暇人かよ。
コード
C#のコンソールアプリ (.NET Core 3.1) でお願いします。
Yubaba.cs
using System;
namespace Yubaba
{
class Yubaba
{
static void Main(string[] args)
{
Console.WriteLine("契約書だよ。そこに名前を書きな。");
var name = Console.ReadLine();
Console.WriteLine($"フン。{name}というのかい。贅沢な名だねぇ。");
var random = new Random();
var newNameIndex = random.Next(name.Length);
var newName = name[newNameIndex];
Console.WriteLine($"今からお前の名前は{newName}だ。いいかい、{newName}だよ。分かったら返事をするんだ、{newName}!!");
}
}
}
ちなみに $"..."
の書き方は↓これです。私もさっき知りました。
【C#】string.Format() をやめて $"{}"(文字列補間式)を使う - Qiita
実行例
契約書だよ。そこに名前を書きな。
田中二郎
フン。田中二郎というのかい。贅沢な名だねぇ。
今からお前の名前は田だ。いいかい、田だよ。分かったら返事をするんだ、田!!
クラッシュ湯婆婆
名前が空だと落ちてしまう湯婆婆。原作リスペクト。あえて直さない。
契約書だよ。そこに名前を書きな。
フン。というのかい。贅沢な名だねぇ。
Unhandled exception. System.IndexOutOfRangeException: Index was outside the bounds of the array.
at System.String.get_Chars(Int32 index)
at Yubaba.Yubaba.Main(String[] args) in C:\...\Yubaba.cs:line 15
「𠮷」田さんが契約したら…
コマンドプロンプト(Visual Studioのデバッグコンソール)が「𠮷」田さんを受け付けてくれない。コピペで入力した時点で化けてる。𠮷田さんをまともな名前で働かせてあげてください。
契約書だよ。そこに名前を書きな。
��田
フン。??田というのかい。贅沢な名だねぇ。
今からお前の名前は?だ。いいかい、?だよ。分かったら返事をするんだ、?!!
関連: 吉田さんは通すけど𠮷田さんは通さないミドルウェア - Qiita
(2020/11/09) 𠮷田さんが働けるようになったようです。
→C# で湯婆婆を実装してみる(𠮷田さんにも対応) - Qiita