示例#1
0
 /// <summary>
 /// The main entry point for the application.
 /// </summary>
 static void Main(string[] args)
 {
     using (GameTemplate game = new GameTemplate())
     {
         game.Run();
     }
 }
示例#2
0
        public ActionResult DeleteConfirmed(int id)
        {
            GameTemplate gametemplate = db.GameTemplates.Find(id);

            db.GameTemplates.Remove(gametemplate);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
示例#3
0
 public ActionResult Edit([Bind(Include = "GameTemplateID,GameTemplateCode,GameTypeID,DateInserted,DateUpdated,USR,GameRuleCode,GameRuleDetail,OrderInGame")] GameTemplate gametemplate)
 {
     if (ModelState.IsValid)
     {
         db.Entry(gametemplate).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.GameTypeID = new SelectList(db.GameTypes, "GameTypeID", "GameTypeCode", gametemplate.GameTypeID);
     return(View(gametemplate));
 }
示例#4
0
        // GET: /GameTemplate/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            GameTemplate gametemplate = db.GameTemplates.Find(id);

            if (gametemplate == null)
            {
                return(HttpNotFound());
            }
            return(View(gametemplate));
        }
示例#5
0
        // GET: /GameTemplate/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            GameTemplate gametemplate = db.GameTemplates.Find(id);

            if (gametemplate == null)
            {
                return(HttpNotFound());
            }
            ViewBag.GameTypeID = new SelectList(db.GameTypes, "GameTypeID", "GameTypeCode", gametemplate.GameTypeID);
            return(View(gametemplate));
        }
        public void TestFunctionalTM()
        {
            int currentPlayer = 0;

            int WinningPlayer() => (currentPlayer += 1) % 2;

            int turn    = 1;
            int maxTurn = 10;

            bool HaveWinner() => maxTurn == turn;

            GameTemplate.Run(
                () => {
                Console.WriteLine($"Turn {turn++} taken by player {currentPlayer}");
            },
                () => {
                Console.WriteLine($"Player {currentPlayer} makes a move");
                currentPlayer++;
            },
                HaveWinner, WinningPlayer);
        }
示例#7
0
        private void button1_Click(object sender, EventArgs e)
        {
            int templateIndex = comboBox1.SelectedIndex;

            if (templateIndex == -1)
            {
                MessageBox.Show("Не выбрано ни одной игры");
                return;
            }

            var gamesRepos = _container.Resolve <IGamesRepository>();

            _selectedTemplate = gamesRepos.GetTemplateHard(_templates[templateIndex].Id);
            _gameManager      = _container.Resolve <NiteLigaGameManager>();
            _gameManager.Start(new NiteLigaGameConfiguration
            {
                GameMatchId = _gameMatchId,
                Config      = _selectedTemplate.Config,
                Settings    = _selectedTemplate.Settings
            });

            var teamsRepos = _container.Resolve <ITeamsRepository>();

            _teams = teamsRepos.GetTeams(_selectedTemplate.Settings.TeamIds);
            comboBox2.Items.Clear();
            foreach (var team in _teams)
            {
                comboBox2.Items.Add($"{team.Id}. {team.Name}");
            }

            panel1.Enabled    = false;
            panel2.Enabled    = true;
            groupBox2.Enabled = true;

            Task.Run(() =>
            {
                while (true)
                {
                    _gameManager.Iterate();

                    if (_gameManager.Status == GameStatusType.Stopped)
                    {
                        Invoke((MethodInvoker)(delegate()
                        {
                            groupBox2.Enabled = false;
                        }));
                    }

                    if (_gameManager.Status == GameStatusType.Ended || _gameManager.Status == GameStatusType.Aborted)
                    {
                        break;
                    }

                    Thread.Sleep(1000);
                }

                Invoke((MethodInvoker)(delegate()
                {
                    panel2.Enabled = false;
                    panel1.Enabled = true;
                }));
            });
        }
示例#8
0
 public Game(GameTemplate gameTemplate, GameProgress gameProgress)
 {
     Template     = gameTemplate;
     GameProgress = gameProgress;
 }