/// <summary> /// регистрируем игрока, и даем ему уникальный ключ /// </summary> /// <returns>данные об игроке</returns> public Gamer Registration(String IdDevice) { using (BaldaEntities BE = new BaldaEntities()) { ListOfGamer player = new ListOfGamer(); try { // ищем игрока var gamer = (from c in BE.Gamers where c.UnicId.Contains(IdDevice) select c).SingleOrDefault(); // добавляем игрока в список ожидающих напарника player.IdGamer = gamer.Id; BE.ListOfGamers.Add(player); BE.SaveChanges(); return(gamer); } catch (Exception ex) { // если такой игрок еще не зарегистрирован - создаем Gamer gamer = new Gamer(); gamer.UnicId = IdDevice; gamer.Name = Guid.NewGuid().ToString(); BE.Gamers.Add(gamer); BE.SaveChanges(); // добавляем игрока в список ожидающих напарника player.IdGamer = gamer.Id; BE.ListOfGamers.Add(player); BE.SaveChanges(); return(gamer); } } }
public String GetRandomWord() { using (var db = new BaldaEntities()) { ///получить случайное слов из 5 букв Random rand = new Random(); Dictionary5 data = (from c in db.Dictionary5 where c.ID == rand.Next() select c).SingleOrDefault(); db.SaveChanges(); return(data.Word); } }
/// <summary> /// анализ колическа ожидаемых пользователей и в случае кратности - начало игры /// </summary> /// <returns>объект игры либо пустой объект, если парнеров не хватает </returns> public Game StartGame() { using (var db = new BaldaEntities()) { var players = (from c in db.ListOfGamers where c.IdState == null select c).ToList(); // если в списке более двух ожидающих пользователей, перемещаем их в "игра" и удалем из "списка ожидаемых" if (players.Count > 1) { Game game = new Game(); game.IdFirstPlayer = players[0].IdGamer; game.IdSecondPlayer = players[1].IdGamer; game.WhoseStep = "0"; db.Games.Add(game); db.ListOfGamers.Remove(players[0]); db.ListOfGamers.Remove(players[1]); return(game); } return(new Game()); } }