public void CallBingoNumber() { int maxNum = board.MaxNumber; int key = Random.Range(1, maxNum); int bingoLetter = Random.Range(0, 5); Debug.Log("Bingo info called is " + bingoLetter + " column and " + key + " row"); if (board != null) { int hitResult = board.FindValue(key, (BingoBoard.Column)bingoLetter); if (hitResult != -1) { BingoCall call = new BingoCall() { column = bingoLetter, index = hitResult }; if (UniqueHit(call)) { bingoCalls.Add(call); ColorAHit(call); } else { Debug.Log("Duplicate Detected, recalling the num"); CallBingoNumber(); } } } }
private void ColorAHit(BingoCall call) { TextMesh mesh = null; if (mapping.TryGetValue(call, out mesh)) { mesh.transform.parent.gameObject.GetComponent <Renderer>().material.color = Color.red; } }
private bool UniqueHit(BingoCall call) { foreach (var item in bingoCalls) { if (call.column == item.column && call.index == item.index) { return(false); } } return(true); }
public JsonNetResult ReportBingo(int id, string userId, List <int> numbers) { var game = Db.Games.Include("GameBalls").Where(x => x.Id == id).Single(); var user = Db.Users.Where(x => x.Kerb == userId).Single(); var validBingo = game.ValidateBingo(numbers.ToArray(), user); var call = new BingoCall { CalledAt = DateTime.Now, Callee = user, Game = game, ValidBoard = validBingo }; Db.BingoCalls.Add(call); if (validBingo && game.InProgress) { game.Winner = user; game.InProgress = false; game.EndDate = DateTime.Now; Db.Entry(game).State = EntityState.Modified; } // add in a broadcast var msg = new Message() { Txt = string.Format("{0} has called bingo.", user.Name) }; Db.Messages.Add(msg); if (!validBingo) { var msg2 = new Message() { Txt = string.Format("{0} does not have bingo. Game will continue.", user.Name) }; Db.Messages.Add(msg2); } Db.SaveChanges(); return(new JsonNetResult(validBingo)); }
protected override void Seed(BingoContext context) { var scott = new User { Kerb = "postit", Name = "Scott Kirkland", Board = "8,10,5,3,1,23,25,20,18,16,38,40,0,33,31,53,55,50,48,46,68,70,65,63,61" }; var alan = new User { Kerb = "anlai", Name = "Alan Lai", Board = @"7,11,9,10,5 ,22,26,24,25,20 ,37,41,0,40,35 ,52,56,54,55,50 ,67,71,69,70,65" }; context.Users.Add(scott); context.Users.Add(alan); var game = new Game { InProgress = true, StartDate = DateTime.Now }; // random balls game.GameBalls.Add(new GameBall { Game = game, Letter = "N", Number = 38, Picked = DateTime.Now.AddSeconds(30) }); game.GameBalls.Add(new GameBall { Game = game, Letter = "G", Number = 55, Picked = DateTime.Now.AddSeconds(60) }); // winning balls for scott game.GameBalls.Add(new GameBall { Game = game, Letter = "B", Number = 10, Picked = DateTime.Now }); game.GameBalls.Add(new GameBall { Game = game, Letter = "B", Number = 8, Picked = DateTime.Now.AddSeconds(90) }); game.GameBalls.Add(new GameBall { Game = game, Letter = "B", Number = 3, Picked = DateTime.Now.AddSeconds(120) }); game.GameBalls.Add(new GameBall { Game = game, Letter = "B", Number = 5, Picked = DateTime.Now.AddSeconds(150) }); game.GameBalls.Add(new GameBall { Game = game, Letter = "B", Number = 1, Picked = DateTime.Now.AddSeconds(180) }); // wining balls for all game.GameBalls.Add(new GameBall { Game = game, Letter = "B", Number = 7, Picked = DateTime.Now.AddSeconds(180) }); game.GameBalls.Add(new GameBall { Game = game, Letter = "I", Number = 26, Picked = DateTime.Now.AddSeconds(180) }); game.GameBalls.Add(new GameBall { Game = game, Letter = "G", Number = 55, Picked = DateTime.Now.AddSeconds(180) }); game.GameBalls.Add(new GameBall { Game = game, Letter = "O", Number = 65, Picked = DateTime.Now.AddSeconds(180) }); context.Games.Add(game); var call1 = new BingoCall() { CalledAt = DateTime.Now, Callee = scott, Game = game, ValidBoard = false }; var call2 = new BingoCall() { CalledAt = DateTime.Now.AddSeconds(10), Callee = alan, Game = game, ValidBoard = false }; var call3 = new BingoCall() { CalledAt = DateTime.Now.AddSeconds(20), Callee = alan, Game = game, ValidBoard = true }; context.BingoCalls.Add(call1); context.BingoCalls.Add(call2); context.BingoCalls.Add(call3); context.SaveChanges(); }