Example #1
0
 void Awake()
 {
     //ゲーム開始時にGameManagerをinstanceに指定
     if (instance == null)
     {
         instance = this;
     }
     //このオブジェクト以外にGameManagerが存在するとき
     else if (instance != this)
     {
         //このオブジェクトを破壊する
         Destroy(gameObject);
     }
     //シーン遷移時にこのオブジェクトを引き継ぐ
     DontDestroyOnLoad(gameObject);
     //Enemyを格納する配列生成
     enemies = new List <Enemy>();
     //DgGenerator取得
     dungionScript = GetComponent <DgGenerator>();
     InitGame();
 }
Example #2
0
        static private void GenerateShit(int count)
        {
            //Dg version
            DirectedGraph = new DgGenerator(DbConn);
            //DirectedGraph.GenerateEventsIntoDb(count);

            //Pn version
            PetriNet = new PnGenerator(DbConn);
            //PetriNet.GenerateEventsIntoDb(count);

            //Generic workplaces
            Workplaces = new List <Workplace>();
            for (var i = 0; i <= 6; i++)
            {
                Workplaces.Add(new Workplace(i));
            }

            foreach (var wp in Workplaces)
            {
                switch (wp.Number)
                {
                case 0:
                    wp.NextOnes.AddRange(Workplaces.Where(p => p.Number == 1 || p.Number == 2));
                    break;

                case 1:
                    wp.NextOnes.AddRange(Workplaces.Where(p => p.Number == 3 || p.Number == 4));
                    break;

                case 2:
                    wp.NextOnes.AddRange(Workplaces.Where(p => p.Number == 4 || p.Number == 5 || p.Number == 6));
                    break;

                case 3:
                    wp.NextOnes.AddRange(Workplaces.Where(p => p.Number == 6));
                    break;

                case 4:
                    wp.NextOnes.AddRange(Workplaces.Where(p => p.Number == 3 || p.Number == 6));
                    break;

                case 5:
                    wp.NextOnes.AddRange(Workplaces.Where(p => p.Number == 6));
                    break;

                case 6:
                    break;
                }
            }

            Workplaces = Workplaces.OrderBy(wp => wp.Number).ToList();

            for (var i = 0; i < count; i++)
            {
                //New Item
                PetriNet.NewToken(i);
                DirectedGraph.NewItem(i);

                var wp = Workplaces.FirstOrDefault(w => w.Number == 0);

                int nextIndex = GenerateNextMove(i, wp);

                if (nextIndex > 0)
                {
                    wp = wp.NextOnes.ElementAt(nextIndex);

                    DirectedGraph.NewEvent(wp, i);
                    PetriNet.NewEvent(wp, i);
                }
            }
        }