コード例 #1
0
ファイル: main.cs プロジェクト: ChickenStorm/EGJ2016
    // Use this for initialization
    void Start()
    {
        joueur = new Personnage(new Vector3(0, 500, 0), new Vector3(100, 100, 0), new Vector3(0, 0, 0), Resources.Load<Sprite>("DSC02576"), imageJoueur);
        virusOb = new Virus(new Vector3(20, 100, 0), new Vector3(100, 100, 0), new Vector3(0, 0, 0), Resources.Load<Sprite>("DSC02576"), virus);

        liste_plateformes = listePlateformes.transform.GetComponentsInChildren<PlateformeScript>();
    }
コード例 #2
0
ファイル: World.cs プロジェクト: ChickenStorm/EGJ2016
 public World(Personnage p, List<Plateform> pla, Virus v,List<Biles> b,Image billeModelP, GameObject billePP)
 {
     player = p;
     platforms = pla;
     virus = v;
     billes = b;
     billeModel = billeModelP;
     billeP = billePP;
 }
コード例 #3
0
 public void Infect(Virus v)
 {
     if (!hasVirus)
     {
         virus     = v;
         v.t       = 0;
         v.hasHost = true;
         hasVirus  = true;
         OnVirusStateChanged();
     }
 }
コード例 #4
0
    public static float CalculateSpreading(Virus v)
    {
        float TotalTransmission = v.Spreading;

        foreach (Transmission t in v.MyTransmissions)
        {
            TotalTransmission += t.ContagionRate;
        }

        return(TotalTransmission);
    }
コード例 #5
0
    Virus m_candidate;       // 感染候補者

    // Use this for initialization
    void Start()
    {
        virus        = GetComponentInParent <Virus>();
        virusAbility = GetComponentInParent <VirusAbility>();

        // アタッチしていない場合に落とす
        if (virusAbility == null)
        {
            Debug.Break();
        }
    }
コード例 #6
0
    private void SpawnVirus()
    {
        // Spawn some bacteria cells
        for (int i = 0; i < virusCount; i++)
        {
            // Get a valid position by using object size as parameter
            Vector2 validPos = GetAValidPos(virusSize);

            Virus.InstantiateVirus(validPos);
        }
    }
コード例 #7
0
        public void VirusSuccesvolToevoegenMetTekst()
        {
            Virus virus  = new Virus("virus123", 0.1, 0.1, 0.1);
            Virus virus2 = new Virus("virus123", 0.1, 0.1, 0.1);

            VC.VirusToevoegen("virus123", 0.1, 0.5, 0.1);
            Virus expectedVirus = VC.HaalVirusOp("virus123");

            //assert virus en expectedVirus are equal
            Assert.IsTrue(compare(virus, virus2));
        }
コード例 #8
0
ファイル: QAgentAdvanced.cs プロジェクト: Armienn/Virus
		public override Move Move(Virus percept) {
			VirusBoard newState = percept.GetBoardCopy();

			if (learn && !prevState.Equals(default(VirusBoard)))
				Learn(prevState, newState, prevAction);

			prevState = newState;
			prevAction = GetMaxExplorationFunctionA(newState);
			prevReward = 0;
			return prevAction;
		}
コード例 #9
0
ファイル: MemoryQAgent.cs プロジェクト: Armienn/Virus
		public override void EndGame(Virus percept) {
			VirusBoard newState = percept.GetBoardCopy();
			double reward = 0;
			if (percept.Winner == playerNumber) reward = 1;
			else if (percept.Winner != playerNumber && percept.Winner != 0) reward = -1;

			ShortTermMemory.Add(new VirusMemory(prevState, prevAction, newState, reward));

			prevState = default(VirusBoard);
			prevAction = default(Move);
			prevReward = 0;
		}
コード例 #10
0
ファイル: MemoryQAgent.cs プロジェクト: Armienn/Virus
		public override Move Move(Virus percept) {
			VirusBoard newState = percept.GetBoardCopy();

			if (!prevState.Equals(default(VirusBoard))) {
				ShortTermMemory.Add(new VirusMemory(prevState, prevAction, newState));
			}

			prevState = newState;
			prevAction = GetMaxExplorationFunctionA(newState);
			prevReward = 0;
			return prevAction;
		}
コード例 #11
0
    private void FindTargetVirus()
    {
        if (currentTarget == null)
        {
            targetVirus = GameObject.FindGameObjectWithTag("Virus");

            if ((targetVirus != null) && (targetVirus.GetComponent <Virus>().hasSpawned == true))
            {
                currentTarget = targetVirus.GetComponent <Virus>();
            }
        }
    }
コード例 #12
0
ファイル: ScientistPart.cs プロジェクト: ThunderGit/Epidem
        public static int Research(Hospital[] hospitals, Economic E, Virus V)
        {
            long Sum = 0;

            for (int i = 0; i < hospitals.Length; i++)
            {
                Sum += (hospitals[i].CorruptionLevel * E.HospitalBudget()) / (100 * hospitals.Length);
            }
            Sum += E.EducationBudget() * (10 - V.Difficult) / 10;

            return(Convert.ToInt32(Sum / CoefOfEffective));
        }
コード例 #13
0
    void Filter()
    {
        for (int v = _viruses.Count - 1; v >= 0; v--)
        {
            Virus virus = _viruses[v];

            if (virus.year < 1900)
            { // If from before 1900, remove
                _viruses.RemoveAt(v);
            }
        }
    }
コード例 #14
0
    public void StartCounting()
    {
        //guarda qual é o vírus atual
        currentVirus = GameController.instance.player.currentVirus;

        //ativa o contador
        enableCount = true;
        //seta a cor inicial do texto informativo
        txtSlideFast.color = initialColor;
        //começa a animação do texto que alterará a cor do texto informativo
        tween = txtSlideFast.DOColor(fullColor, 0.6f).SetLoops(-1, LoopType.Yoyo);
    }
コード例 #15
0
        // Spawns a wave of the given virus.
        public static void spawnWave(int waveSize, Virus virus)
        {
            // Always Delay the spawn by 10 seconds
            Game.DelayInvoke(2000, () => {
                Object[,] map        = DataManager.Map.mapArray;
                List <Virus> viruses = DataManager.Map.Viruses;
                virus.Position       = DataManager.Map.SpawnLocation;
                Random rnd           = new Random();
                // Viruses will spawn one second at a time
                Timer spawnTimer = new Timer(2000 + rnd.Next(500, 3000));
                spawnTimer.Start();
                spawnTimer.Elapsed += (sender, args) =>
                {
                    try
                    {
                        Tindrider t = new Tindrider();
                        t.Position  = virus.Position;
                        t.Health    = virus.Health;
                        t.Money     = virus.Money;
                        t.Speed     = virus.Speed;


                        int score = DataManager.Board.Score;

                        if (score % 500 == 0)
                        {
                            increase = true;
                        }

                        if (increase)
                        {
                            health   = (int)(health * 1.1);
                            increase = false;
                        }

                        t.Health    = health;
                        t.MaxHealth = health;
                        Console.WriteLine(health);

                        viruses.Add(t);
                        waveSize--;
                        if (waveSize <= 0)
                        {
                            spawnTimer.Stop();
                        }
                    }
                    catch (IndexOutOfRangeException e)
                    {
                    }
                };
            });
        }
コード例 #16
0
ファイル: Program.OldTests.cs プロジェクト: Armienn/Virus
        static void TestGame()
        {
            bool  testresult = false;
            Virus virus      = new Virus();

            ShowBoard(virus);

            testresult = ShouldCrashTest(() => virus.Move(0, 4, 0, 4));             //moving starting player's piece to it's own position
            ShowResult("Test 1", testresult);
            testresult = ShouldCrashTest(() => virus.Move(0, 4, 0, 1));             //moving starting player's piece too far
            ShowResult("Test 2", testresult);
            testresult = ShouldCrashTest(() => virus.Move(0, 0, 0, 1));             //moving non-starting player's piece
            ShowResult("Test 3", testresult);
            testresult = ShouldCrashTest(() => virus.Move(0, 0, 0, 3));             //moving non-starting player's piece too far
            ShowResult("Test 4", testresult);

            Console.WriteLine("The game should be in the start state:");
            ShowBoard(virus);

            Console.WriteLine("Making a move:\nThis should move the top left piece one space SE");
            virus.Move(0, 4, 1, 3);
            ShowBoard(virus);

            testresult = virus.Winner == 0;                             //there shouldn't be a winner yet
            ShowResult("Test winner", testresult);
            testresult = ShouldCrashTest(() => virus.Move(1, 3, 0, 2)); //moving player 1's piece again
            ShowResult("Test own piece", testresult);
            testresult = ShouldCrashTest(() => virus.Move(0, 0, 0, 3)); //moving player 2's piece too far
            ShowResult("Test opponent's piece", testresult);

            Console.WriteLine("Making a move:\nThis should move the bottom left piece one space N");
            virus.Move(0, 0, 0, 1);
            ShowBoard(virus);

            testresult = virus.Winner == 0;                             //there shouldn't be a winner yet
            ShowResult("Test winner", testresult);
            testresult = ShouldCrashTest(() => virus.Move(0, 4, 3, 0)); //moving player 1's piece too far
            ShowResult("Test own piece", testresult);
            testresult = ShouldCrashTest(() => virus.Move(0, 0, 0, 2)); //moving player 2's piece again
            ShowResult("Test opponent's piece", testresult);

            Console.WriteLine("Making a move:\nThis should move the piece at (1,3) two spaces S\n and take the adjacent pieces");
            virus.Move(1, 3, 1, 1);
            ShowBoard(virus);

            testresult = virus.Winner == 0;                             //there shouldn't be a winner yet
            ShowResult("Test winner", testresult);
            testresult = ShouldCrashTest(() => virus.Move(1, 1, 1, 0)); //moving player 1's piece again
            ShowResult("Test own piece", testresult);
            testresult = ShouldCrashTest(() => virus.Move(4, 4, 1, 0)); //moving player 2's piece too far
            ShowResult("Test opponent's piece", testresult);
        }
コード例 #17
0
ファイル: Epidemic.cs プロジェクト: EmilieS/Gleipnir
 public Epidemic(Game g, Villager v)
     : base(g)
 {
     SickVillagerList = new List<Villager>();
     //affectedVillager = v;
     //game = g;
     //LaunchEpidemic();
     g.EpidemicCreated(this);
     _virus = new Virus();
     _virus.Epidemic = this;
     v.SetVirus(_virus);
     _timeBeforeThePlayerIsWarned = 5;
 }
コード例 #18
0
ファイル: QAgentAdvanced.cs プロジェクト: Armienn/Virus
		public override void EndGame(Virus percept) {
			if (learn) {
				double reward = 0;
				if (percept.Winner == playerNumber) reward = 1;
				else if (percept.Winner != playerNumber && percept.Winner != 0) reward = -1;

				Learn(prevState, default(VirusBoard), prevAction, reward);
			}

			prevState = default(VirusBoard);
			prevAction = default(Move);
			prevReward = 0;
		}
コード例 #19
0
    private void Attack(Virus v)
    {
        if (powerUp != null)
        {
            if (powerUp.type == PowerUpType.Antivirus)
            {
                damage = (int)(originalDamage * (damageMultiplier + powerUpLevel / 2));
            }
        }

        _sourceAttack.Play();
        v.GetDamage(damage);
    }
コード例 #20
0
        public static void DropHeart(Virus virus)
        {
            var heart = new Hearts();

            ((ISupportInitialize)(heart)).BeginInit();
            heart.MouseClick    += new MouseEventHandler(Game.instance.MouseClickShootBullet);
            heart.BackColor      = Color.Transparent;
            heart.Parent         = Game.instance.pbBackGround;
            heart.DoubleBuffered = true;
            heart.Location       = new Point((virus.Location.X + virus.Width / 2 - heart.Width / 2), (virus.Location.Y + virus.Height / 2 - heart.Width / 2));
            ItemList.Add(heart);
            ((ISupportInitialize)(heart)).EndInit();
        }
コード例 #21
0
        public static void DropLPItem(Virus virus)
        {
            var lpItem = new LevelProgressItems();

            ((ISupportInitialize)(lpItem)).BeginInit();
            lpItem.MouseClick    += new MouseEventHandler(Game.instance.MouseClickShootBullet);
            lpItem.BackColor      = Color.Transparent;
            lpItem.Parent         = Game.instance.pbBackGround;
            lpItem.DoubleBuffered = true;
            lpItem.Location       = new Point((virus.Location.X + virus.Width / 2 - lpItem.Width / 2), (virus.Location.Y + virus.Height / 2 - lpItem.Width / 2));
            ItemList.Add(lpItem);
            ((ISupportInitialize)(lpItem)).EndInit();
        }
コード例 #22
0
ファイル: Program.OldTests.cs プロジェクト: Armienn/Virus
        static void RunQ(byte qnumber, QAgent agent, String opponent, int iterations, int size)
        {
            Virus virus     = new Virus(2, size);
            int   wins      = 0;
            byte  oppnumber = qnumber == 1 ? (byte)2 : (byte)1;

            Agent opp;

            switch (opponent)
            {
            case "brute":
                opp = new BruteForceAgent(oppnumber);
                break;

            case "minimax4":
                opp = new MinimaxAgent(4, oppnumber);
                break;

            case "minimax3":
                opp = new MinimaxAgent(3, oppnumber);
                break;

            case "minimax2":
                opp = new MinimaxAgent(2, oppnumber);
                break;

            default:
                opp = new BruteForceAgent(oppnumber);
                break;
            }

            int n = 0;

            while (File.Exists("qwinlog" + n))
            {
                n++;
            }
            StreamWriter writer = new StreamWriter("qwinlog" + n);

            for (int i = 1; i <= iterations; i++)
            {
                int winner = RunGame(virus, qnumber == 1 ? (Agent)agent : opp, qnumber == 2 ? (Agent)agent : opp);
                wins += winner == 1 ? 1 : 0;
                virus = new Virus(2, size);
            }
            writer.WriteLine(wins);
            Console.WriteLine("Iteration: " + iterations);
            Console.WriteLine("Wins: " + wins);
            wins = 0;
            writer.Close();
        }
コード例 #23
0
 void Start()
 {
     //guarda as referências e os valores iniciais
     myTransform    = transform;
     originalPos    = myTransform.position;
     tmpOriginalPos = originalPos;
     //define a posição máxima na qual a espícula é permitida a se afundar na célula
     targetPos = myTransform.TransformDirection(vecUp * -1.5f) + myTransform.position;
     //tenta pegar o componenete virus
     //se for um vírus, terá a referência. Se não for, quer dizer que é espícula da célula
     myVirus = GetComponentInParent <Virus>();
     //guarda qual é o gráfico da espicula que será usado para fazer comparações
     espiculaSprite = GetComponent <SpriteRenderer>().sprite;
 }
コード例 #24
0
        public override Move Move(Virus percept)
        {
            VirusBoard newState = percept.GetBoardCopy();

            if (learn && !prevState.Equals(default(VirusBoard)))
            {
                Learn(prevState, newState, prevAction);
            }

            prevState  = newState;
            prevAction = GetMaxExplorationFunctionA(newState);
            prevReward = 0;
            return(prevAction);
        }
コード例 #25
0
ファイル: MemoryQAgent.cs プロジェクト: Armienn/Virus
        public override Move Move(Virus percept)
        {
            VirusBoard newState = percept.GetBoardCopy();

            if (!prevState.Equals(default(VirusBoard)))
            {
                ShortTermMemory.Add(new VirusMemory(prevState, prevAction, newState));
            }

            prevState  = newState;
            prevAction = GetMaxExplorationFunctionA(newState);
            prevReward = 0;
            return(prevAction);
        }
コード例 #26
0
    public void DoUpdate(Virus virus)
    {
        float t = (Time.time - _startTime) / _destroyTime;

        if (t <= 1.0f)
        {
            virus.transform.localScale = Vector2.Lerp(_startScale, _destinationScale, t);
        }
        else
        {
            virus.transform.localScale = _startScale;
            virus.DestroyVirus();
        }
    }
コード例 #27
0
    private void CreatePlayer()
    {
        Debug.Log("Creating Player");
        GameObject Player = PhotonNetwork.Instantiate(Path.Combine("PhotonPrefabs", "PhotonPlayer"), Vector3.zero, Quaternion.identity);

        Caller_NewPlayer();

        if (Player.GetComponent <PhotonView>().Owner.IsMasterClient)
        {
            GameObject bakterioPhage = PhotonNetwork.Instantiate(Path.Combine("PhotonPrefabs", "Bakteriophage"), new Vector3(0, 0, 0), Quaternion.identity);
            virus = bakterioPhage.GetComponent <Virus>();
            virus.Spawn();
        }
    }
コード例 #28
0
        public VirusBall2(IAudioEngine s, bool set)
            : base(s, set)
        {
            this.number     = 311;
            this.name       = ShanghaiEXE.Translate("Chip.VrsBall2Name");
            this.element    = ChipBase.ELEMENT.normal;
            this.id         = 1;
            this.power      = 10;
            this.subpower   = 0;
            this.regsize    = 35;
            this.reality    = 5;
            this._break     = false;
            this.powerprint = true;
            this.code[0]    = ChipFolder.CODE.asterisk;
            this.code[1]    = ChipFolder.CODE.asterisk;
            this.code[2]    = ChipFolder.CODE.asterisk;
            this.code[3]    = ChipFolder.CODE.asterisk;
            var information = ShanghaiEXE.Translate("Chip.VrsBall2Desc");

            this.information[0] = information[0];
            this.information[1] = information[1];
            this.information[2] = information[2];
            if (SaveData.HAVEVirus[this.id] == null || !set)
            {
                this.Init();
            }
            else
            {
                Virus haveViru = SaveData.HAVEVirus[this.id];
                this.element        = ChipBase.ELEMENT.normal;
                this.power          = 0;
                this.subpower       = 0;
                this.regsize        = 35;
                this.reality        = 5;
                this._break         = false;
                this.powerprint     = false;
                this.shadow         = false;
                this.code[0]        = haveViru.Code;
                this.code[1]        = this.code[0];
                this.code[2]        = this.code[0];
                this.code[3]        = this.code[0];
                information         = ShanghaiEXE.Translate("Chip.VrsBall2FilledDesc");
                this.information[0] = information[0];
                this.information[1] = information[1];
                this.information[2] = information[2];
                this.Init();
                this.name = haveViru.Name;
            }
        }
コード例 #29
0
    public void NextVirus()
    {
        current_virus_index++;
        CurrentVirus = viruses[current_virus_index];
        DisplaySpeechTextNewVirus(CurrentVirus.virus_name);

        string virusName = CurrentVirus.virus_name;

        string[] symptoms = CurrentVirus.symptoms;
        DisplayVirusData(virusName, symptoms);

        VirusManager vm = FindObjectOfType <VirusManager>();

        vm.current_virus = null;
    }
コード例 #30
0
ファイル: BL.cs プロジェクト: siboniefratt/virus-population
        public bool TryToClean(Patient patient, Virus virus)
        {
            Random rnd     = new Random();
            int    percent = rnd.Next(0, 10);

            if (percent < CLEAN_PROBABILITY)
            {
                patient.Healthy.Add(new Cell());
                patient.Sick.Remove(virus);
                Console.WriteLine("virus cleaned");
                return(true);
            }
            Console.WriteLine("virus can't cleaned");
            return(false);
        }
コード例 #31
0
    private void OnCollisionEnter(Collision col)
    {
        GameObject obj = col.gameObject;

        if (obj.tag == "Virus")
        {
            Virus _virus        = obj.GetComponent <Virus>();
            int   damage_amount = _virus.DamagePower;
            // _virus.path.Reset();
            TakeDamage(damage_amount);
            Destroy(obj);
            GetComponent <AudioSource>().clip = VirusDestroclip;
            GetComponent <AudioSource>().Play();
        }
    }
コード例 #32
0
        private bool AABBVirusHandCollision(Fixture f)
        {
            Object o = f.Body.UserData;

            if (o is Virus)
            {
                Virus virus = (Virus)o;

                if (virus.IsNormal())
                {
                    _grabbedVirus = (Virus)o;
                }
            }
            return(true);
        }
コード例 #33
0
    public IEnumerator CheckNaughtiness()
    {
        float sizeX = Game.SceneObjects.fieldDimensions.x * 2;
        float sizeY = Game.SceneObjects.fieldDimensions.y * 2;

        for (; ;)
        {
            print("checking naughtiness");

            yield return(new WaitForSeconds(Game.Stats.abstinence));

            try
            {
                int n = GetExponentialFactor();

                for (int i = 0; i < Game.SceneObjects.viruses.Count; i += n)
                {
                    Debug.Log(i);
                    Vector3 position = new Vector3(
                        Random.Range(-Game.SceneObjects.fieldDimensions.x, +Game.SceneObjects.fieldDimensions.x),
                        Random.Range(-Game.SceneObjects.fieldDimensions.y, +Game.SceneObjects.fieldDimensions.y),
                        0
                        );
                    Vector3 rotation = new Vector3(0, 0, Random.Range(0f, 360f));

                    GameObject newVirus = Instantiate(Game.prefabs.virus,
                                                      position, Quaternion.Euler(rotation), Game.SceneObjects.virusHolder.transform);
                    newVirus.GetComponent <Virus>().GetComponent <Rigidbody2D>().AddForce(new Vector2(Random.value, Random.value)
                                                                                          * Game.prefabs.speed, ForceMode2D.Impulse);

                    Game.SceneObjects.viruses.Add(newVirus.GetComponent <Virus>());
                }
                for (int i = 0; i < Game.SceneObjects.viruses.Count; i++)
                {
                    if (Game.SceneObjects.viruses[i].transform.position.x > sizeX + 100 ||
                        Game.SceneObjects.viruses[i].transform.position.x <-sizeX - 100 ||
                                                                           Game.SceneObjects.viruses[i].transform.position.y> sizeY + 100 ||
                        Game.SceneObjects.viruses[i].transform.position.y < -sizeY - 100)
                    {
                        Virus stray = Game.SceneObjects.viruses[i];
                        Game.SceneObjects.viruses.Remove(stray);
                        Destroy(stray.gameObject);
                    }
                }
            }
            catch { }
        }
    }
コード例 #34
0
        public void DetailsTest()
        {
            Virus v = new Virus();

            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
            {
                v.VirusName = "It87sP";
                v.VirusCode = "Ti7tn";
                context.Set <Virus>().Add(v);
                context.SaveChanges();
            }
            PartialViewResult rv = (PartialViewResult)_controller.Details(v.ID.ToString());

            Assert.IsInstanceOfType(rv.Model, typeof(IBaseCRUDVM <TopBasePoco>));
            Assert.AreEqual(v.ID, (rv.Model as IBaseCRUDVM <TopBasePoco>).Entity.GetID());
        }
コード例 #35
0
ファイル: ABB.cs プロジェクト: ThyThal/Virus-Attack
 public void AgregarElem(ref NodoABB raiz, Virus x)
 {
     if (raiz == null)
     {
         raiz      = new NodoABB();
         raiz.info = x;
     }
     else if (raiz.info.hierarchy > x.hierarchy)
     {
         AgregarElem(ref raiz.hijoIzq, x);
     }
     else if (raiz.info.hierarchy < x.hierarchy)
     {
         AgregarElem(ref raiz.hijoDer, x);
     }
 }
コード例 #36
0
        public async Task <ActionResult <Virus> > PostVirus(Virus virus)
        {
            Virus v = await _context.Virus.SingleOrDefaultAsync(v => v.NomeVirus == virus.NomeVirus);

            if (v == null)
            {
                _context.Virus.Add(virus);
                await _context.SaveChangesAsync();

                return(CreatedAtAction(nameof(GetVirus), new { id = virus.VirusID }, virus));
            }
            else
            {
                return(Conflict());
            }
        }
コード例 #37
0
        public async Task <IActionResult> Edit(long id, [Bind("Id, Nome")] Virus virus)
        {
            using (HttpClient client = new HttpClient())
            {
                UserInfo      user          = new UserInfo();
                StringContent contentUser   = new StringContent(JsonConvert.SerializeObject(user), Encoding.UTF8, "application/json");
                var           responseLogin = await client.PostAsync(apiBaseUrl + "/users/login", contentUser);

                UserToken token = await responseLogin.Content.ReadAsAsync <UserToken>();

                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Token);
                StringContent content  = new StringContent(JsonConvert.SerializeObject(virus), Encoding.UTF8, "application/json");
                string        endpoint = apiBaseUrl + "/virus/" + id;
                var           response = await client.PutAsync(endpoint, content);
            }
            return(RedirectToAction(nameof(Index)));
        }
コード例 #38
0
ファイル: ANNAgent.cs プロジェクト: Armienn/Virus
		private Move GetAnnMove(Virus percept)
		{
			VirusBoard currentState = percept.GetBoardCopy();
			Move[] actions = currentState.GetPossibleMoves(playerNumber);
			Move move = OutputsToMove(network.Compute(BoardToInput(currentState)));

			if (actions.Contains(move))
			{
				using (StreamWriter writer = new StreamWriter("ann" + percept.Size + "log.txt", true))
					writer.WriteLine("using learned move");
				return move;
			}

			using (StreamWriter writer = new StreamWriter("ann" + percept.Size + "log.txt", true))
				writer.WriteLine("using default move");
			return actions[0];
		}
コード例 #39
0
ファイル: ANNAgent.cs プロジェクト: Armienn/Virus
		private Move LearnFromMinimax(Virus percept)
		{
			//lær fra MiniMax
			Move move = teacher.Move(percept);
			VirusBoard currentState = percept.GetBoardCopy();

			backProp.LearningRate = 0.1;
			backProp.Momentum = 0.1;
			Move annMove = OutputsToMove(network.Compute(BoardToInput(currentState)));
			double error = backProp.Run(BoardToInput(currentState), MoveToOutputs(move, currentState.Size));

			if (move.Equals(annMove))
				using (StreamWriter writer = new StreamWriter("ann" + percept.Size + "log.txt", true))
					writer.WriteLine("using right move. E: " + error);
			else
				using (StreamWriter writer = new StreamWriter("ann" + percept.Size + "log.txt", true))
					writer.WriteLine("using wrong move. E: " + error);
			return move;
		}
コード例 #40
0
ファイル: BaseAI.CS プロジェクト: mojomojomojo/MegaMinerAI
  public bool startTurn()
  {
    iteration++;
    int count = 0;
    count = Client.getBaseCount(connection);
    bases = new Base[count];
    for(int i = 0; i < count; i++)
    {
      bases[i] = new Base(Client.getBase(connection, i));
    }
    count = Client.getPlayerCount(connection);
    players = new Player[count];
    for(int i = 0; i < count; i++)
    {
      players[i] = new Player(Client.getPlayer(connection, i));
    }
    count = Client.getTileCount(connection);
    tiles = new Tile[count];
    for(int i = 0; i < count; i++)
    {
      tiles[i] = new Tile(Client.getTile(connection, i));
    }
    count = Client.getVirusCount(connection);
    viruses = new Virus[count];
    for(int i = 0; i < count; i++)
    {
      viruses[i] = new Virus(Client.getVirus(connection, i));
    }

    if(!initialized)
    {
      initialized = true;
      init();
    }
    return run();
  }
コード例 #41
0
ファイル: ANNAgent.cs プロジェクト: Armienn/Virus
		public override Move Move(Virus percept)
		{
			if (learning)
				return LearnFromMinimax(percept);
			return GetAnnMove(percept);
		}
コード例 #42
0
ファイル: main.cs プロジェクト: ChickenStorm/EGJ2016
    void Start()
    {
        //mainScene.gameObject.active = true;

        mainGameIsRunning = false;
        isInMenu = true;

        //w = new World(null, null, null);

        /************************************************/

        liste_plateformes = listePlateformes.transform.GetComponentsInChildren<PlateformeScript>();
        liste_plateformes2 = listePlateformes2.transform.GetComponentsInChildren<PlateformeScript>();
        liste_plateformes3 = listePlateformes3.transform.GetComponentsInChildren<PlateformeScript>();
        ground = groundI.transform.GetComponentsInChildren<PlateformeScript>();

        joueur = new Personnage(new Vector3(imageJoueur.transform.position.x, imageJoueur.transform.position.y, 0), new Vector3(imageJoueur.rectTransform.rect.width, imageJoueur.rectTransform.rect.height, 0), new Vector3(0, 0, 0), Resources.Load<Sprite>("DSC02576"), imageJoueur, joueurAnim);
        virusOb = new Virus(new Vector3(200, 1000, 0), new Vector3(15, 0, 0), new Vector3(virus.rectTransform.rect.width, virus.rectTransform.rect.height, 0), Resources.Load<Sprite>("DSC02576"), virus,1.5f, bille, AnimVirus,billeAnim);

        Image b = Instantiate(bille);
        b.transform.SetParent(billeParent.transform);
        billesLi.Add(new Biles(new Vector3(300, 300, 0), new Vector3(0, 0, 0), new Vector3(10, 10, 0), Resources.Load<Sprite>("DSC02576"), b,1, billeAnim));

        for (int i = 0; i < liste_plateformes.Length; ++i)
        {
            liste_plateformes[i].plateform.anim = platAnim;
            ptemp.Add(liste_plateformes[i].plateform);
        }

        for (int i = 0; i < liste_plateformes2.Length; ++i)
        {
            liste_plateformes[i].plateform.anim = platAnim2;
            ptemp.Add(liste_plateformes2[i].plateform);
        }

        for (int i = 0; i < liste_plateformes3.Length; ++i)
        {
            liste_plateformes[i].plateform.anim = platAnim3;
            ptemp.Add(liste_plateformes3[i].plateform);
        }

        for (int i = 0; i < ground.Length; ++i)
        {
            ground[i].plateform.anim = platAnimGr;
            ptemp.Add(ground[i].plateform);
        }

        w = new World(joueur, ptemp, virusOb, billesLi, bille, billeParent);
        /************************************************/

        //mainScene.gameObject.SetActive(false);
        //mainMenu.gameObject.SetActive(true);
        scenePosBegin = mainScene.rectTransform.position;
        CreatGameSceneDefault();
    }
コード例 #43
0
ファイル: main.cs プロジェクト: ChickenStorm/EGJ2016
    void Start()
    {
        //mainScene.gameObject.active = true;

        Debug.Log("b");

        mainGameIsRunning = false;
        isInMenu = true;

        //w = new World(null, null, null);

        BG_sound.PlayOneShot(BG_sound.clip, 0.6f);

        /************************************************/

        liste_plateformes = listePlateformes.transform.GetComponentsInChildren<PlateformeScript>();
        liste_plateformes2 = listePlateformes2.transform.GetComponentsInChildren<PlateformeScript>();
        liste_plateformes3 = listePlateformes3.transform.GetComponentsInChildren<PlateformeScript>();
        liste_plateformesShack = listePlateformesSchack.transform.GetComponentsInChildren<PlateformeScript>();
        liste_plateformesMvt = listePlateformesMvt.transform.GetComponentsInChildren<PlateformeScript>();
        ground = groundI.transform.GetComponentsInChildren<PlateformeScript>();

        Fishs = Fish.transform.GetComponentsInChildren<Image>();

        joueur = new Personnage(new Vector3(imageJoueur.transform.position.x, imageJoueur.transform.position.y, 0),
            new Vector3(imageJoueur.rectTransform.rect.width, imageJoueur.rectTransform.rect.height, 0), new Vector3(0, 0, 0),
            Resources.Load<Sprite>("DSC02576"), imageJoueur, joueurAnim, imageJoueurF, imageJoueurTr,
            new Vector3(imageJoueur.transform.position.x, imageJoueur.transform.position.y, 0),
            jumpSound,fallUnderMapSound,hitWallSound,boostSound
            );

        virusOb = new Virus(new Vector3(virus.transform.position.x, virus.transform.position.y, 0),
            new Vector3(12*scale, 0*scale, 0), new Vector3(virus.rectTransform.rect.width, virus.rectTransform.rect.height, 0),
            Resources.Load<Sprite>("DSC02576"), virus, 0.8f, bille, AnimVirus,billeAnim, pickupSound);

        /*Image b = Instantiate(bille);
        b.transform.SetParent(billeParent.transform);
        billesLi.Add(new Biles(new Vector3(300, 300, 0), new Vector3(0, 0, 0), new Vector3(10, 10, 0), Resources.Load<Sprite>("DSC02576"), b,1, billeAnim));
        */

        for (int i = 0; i < liste_plateformes.Length; ++i)
        {
            liste_plateformes[i].plateform.anim = platAnim;
            ptemp.Add(liste_plateformes[i].plateform);
        }

        for (int i = 0; i < liste_plateformes2.Length; ++i)
        {
            liste_plateformes2[i].plateform.anim = platAnim2;
            ptemp.Add(liste_plateformes2[i].plateform);
        }

        for (int i = 0; i < liste_plateformes3.Length; ++i)
        {
            liste_plateformes3[i].plateform.anim = platAnim3;
            ptemp.Add(liste_plateformes3[i].plateform);
        }

        for (int i = 0; i < ground.Length; ++i)
        {
            ground[i].plateform.anim = platAnimGr;
            ptemp.Add(ground[i].plateform);
        }

        for (int i = 0; i < liste_plateformesShack.Length; ++i)
        {
            liste_plateformesShack[i].plateform.anim = platAnimSch;
            liste_plateformesShack[i].plateform.isSchaky = true;
            ptemp.Add(liste_plateformesShack[i].plateform);
        }
        for (int i = 0; i < liste_plateformesMvt.Length; ++i)
        {
            liste_plateformesMvt[i].plateform.anim = platAnimSch;
            liste_plateformesMvt[i].plateform.isSchaky = true;
            //liste_plateformesMvt[i].plateform.amplitudeY = 100;
            //liste_plateformesMvt[i].plateform.periodeX = 3;
            ptemp.Add(liste_plateformesMvt[i].plateform);
        }

        w = new World(joueur, ptemp, virusOb, billesLi, bille, billeParent);
        /************************************************/

        //mainScene.gameObject.SetActive(false);
        //mainMenu.gameObject.SetActive(true);
        scenePosBegin = mainScene.rectTransform.position;
        lastPosCam = w.getPlayer().position;
        CreatGameSceneDefault();
    }
コード例 #44
0
ファイル: ANNAgent.cs プロジェクト: Armienn/Virus
		public override void EndGame(Virus percept)
		{
			Serialization.SaveNetwork(network, "ann" + percept.Size + ".bin");
			using (StreamWriter writer = new StreamWriter("ann" + percept.Size + "log.txt", true))
				writer.WriteLine("New Game : ");
		}
コード例 #45
0
ファイル: World.cs プロジェクト: ChickenStorm/EGJ2016
 public World(Personnage p, Plateform[] pla, Virus v)
 {
     player = p;
     platforms = pla;
     virus = v;
 }