Kotlinで書いたらもちろんC#でもやらないとね!
元ネタ
Javaの講義、試験が「自作関数を作り記述しなさい」って問題だったから
— ふわふわチンチラ吸い太郎 (@kumiromilk) March 9, 2016
「ズン」「ドコ」のいずれかをランダムで出力し続けて「ズン」「ズン」「ズン」「ズン」「ドコ」の配列が出たら「キ・ヨ・シ!」って出力した後終了って関数作ったら満点で単位貰ってた
ソース
using System;
using System.Collections.Generic;
using System.Linq;
using static System.Console;
namespace ZunDoko {
class Program {
static IEnumerable<string> ZunDoko() {
var random = new Random();
while(true)
yield return random.Next(2) == 1 ? "ズン" : "ドコ";
}
static void Main(string[] args) {
int count = 0;
foreach(string s in ZunDoko().Select(x => { WriteLine(x); return x; })) {
if(s == "ズン") {
count++;
} else if(count >= 4 && s == "ドコ") {
WriteLine("キ・ヨ・シ!");
break;
} else {
count = 0;
}
}
}
}
}
動作例
ズン
ズン
ドコ
ズン
ズン
ドコ
ズン
ズン
ドコ
ドコ
ズン
ズン
ドコ
ドコ
ズン
ズン
ズン
ドコ
ズン
ズン
ズン
ズン
ズン
ドコ
キ・ヨ・シ!
デバッグしてて気づいたんだけどズンズンズンズンズンドコを許すかどうかで処理変わるね(自分のやつ許すかどうかを深く考えてない)