private void DoLeave(BingoPlayer player) { _data.Players.Remove(player); if (_data.Players.Count == 0) { EndGame(); } }
private string DoFormat(BingoPlayer player, string argument) { var format = argument?.ToLowerInvariant() ?? ""; switch (format) { case "table": case "csv": case "tsv": player.Format = format; return($"Your format has been set to {format}"); default: return($"Your current format is {player.Format}. You can specify another format with one of the following commands:\r\n\r\n /bingo format table -- A table displayed inline in Slack\r\n\r\n /bingo format csv -- Comma-separated display\r\n\r\n /bingo format tsv -- Tab-separated display, for pasting directly into Excel or the like"); } }
private string DoJoin() { var player = new BingoPlayer { UserName = _userName, DisplayName = _displayName }; _data.Players.Add(player); if (!_data.Started.HasValue) { return(null); } player.Card = GenerateCard(); return(DoCard(player)); }
private string DoCard(BingoPlayer player) { var response = new StringBuilder("Your card is:\r\n```"); response.Append(CreateTable(player.Format, player.Card)); response.Append("```\r\n\r\n\r\nThe words which have been called so far are:\r\n`"); for (var i = 0; i < _data.NextIndex; i++) { if (i > 0) { response.Append("`, `"); } response.Append(_data.WordSet[i]); } response.Append("`"); return(response.ToString()); }