Ejemplo n.º 1
0
    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();
                }
            }
        }
    }
Ejemplo n.º 2
0
    private void ColorAHit(BingoCall call)
    {
        TextMesh mesh = null;

        if (mapping.TryGetValue(call, out mesh))
        {
            mesh.transform.parent.gameObject.GetComponent <Renderer>().material.color = Color.red;
        }
    }
Ejemplo n.º 3
0
 private bool UniqueHit(BingoCall call)
 {
     foreach (var item in bingoCalls)
     {
         if (call.column == item.column && call.index == item.index)
         {
             return(false);
         }
     }
     return(true);
 }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        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();
        }