public void testLTP()
    {
        BuildingGS initialGS = new BuildingGS();

        initialGS.setStockpile(ResourceType.Gold, 1000);
        initialGS.addResourcePerTick(ResourceType.Gold, 0);
        initialGS.setStockpile(ResourceType.Stone, 1000);
        initialGS.addResourcePerTick(ResourceType.Stone, 0);
        initialGS.setStockpile(ResourceType.Wood, 1000);
        initialGS.addResourcePerTick(ResourceType.Wood, 0);


        BuildingGS targetGS = new BuildingGS();

        targetGS.setStockpile(ResourceType.Gold, 2000);
        targetGS.addResourcePerTick(ResourceType.Gold, 10);
        targetGS.setStockpile(ResourceType.Stone, 2000);
        targetGS.addResourcePerTick(ResourceType.Stone, 5);
        targetGS.setStockpile(ResourceType.Wood, 2000);
        targetGS.addResourcePerTick(ResourceType.Wood, 6);
        targetGS.setStockpile(ResourceType.Silver, 200);
        targetGS.addResourcePerTick(ResourceType.Silver, 9);

        ltp.plan(initialGS, targetGS, callback);
    }
    public void hillClimb()
    {
        BuildingGS initialGS = new BuildingGS();

        initialGS.setStockpile(ResourceType.Gold, 500);
        initialGS.addResourcePerTick(ResourceType.Gold, 0);
        initialGS.setStockpile(ResourceType.Stone, 500);
        initialGS.addResourcePerTick(ResourceType.Stone, 0);
        initialGS.setStockpile(ResourceType.Wood, 500);
        initialGS.addResourcePerTick(ResourceType.Wood, 0);


        BuildingGS targetGS = new BuildingGS();

        //targetGS.setStockpile(ResourceType.Gold, 200);
        targetGS.addResourcePerTick(ResourceType.Gold, 5);
        //targetGS.setStockpile(ResourceType.Stone, 200);
        targetGS.addResourcePerTick(ResourceType.Stone, 5);
        // targetGS.setStockpile(ResourceType.Wood, 200);
        targetGS.addResourcePerTick(ResourceType.Wood, 5);
        //targetGS.setStockpile(ResourceType.Silver, 200);
        targetGS.addResourcePerTick(ResourceType.Silver, 5);
        //targetGS.setStockpile(ResourceType.Coal, 200);
        targetGS.addResourcePerTick(ResourceType.Coal, 5);
        //targetGS.setStockpile(ResourceType.Iron, 200);
        targetGS.addResourcePerTick(ResourceType.Iron, 5);
        //targetGS.setStockpile(ResourceType.Steel, 200);
        targetGS.addResourcePerTick(ResourceType.Steel, 5);

        UnityEngine.Debug.Log(Stopwatch.Frequency);
        UnityEngine.Debug.Log("StartTime: " + Stopwatch.GetTimestamp());
        ltp.plan(initialGS, targetGS, callback);
    }
Esempio n. 3
0
    private void setStartGameState()
    {
        BuildingGS initialGs = new BuildingGS();

        initialGs.setStockpile(ResourceType.Gold, 1000);
        initialGs.addResourcePerTick(ResourceType.Gold, 0);
        initialGs.setStockpile(ResourceType.Stone, 1000);
        initialGs.addResourcePerTick(ResourceType.Stone, 0);
        initialGs.setStockpile(ResourceType.Wood, 1000);
        initialGs.addResourcePerTick(ResourceType.Wood, 0);

        GameController.gameState = initialGs;
        aiCurrentGameState       = new BuildingGS(initialGs);
    }
Esempio n. 4
0
    private void setTargetGameStates()
    {
        BuildingGS targetGs = new BuildingGS();

        targetGs.setStockpile(ResourceType.Gold, 2000);
        targetGs.addResourcePerTick(ResourceType.Gold, 10);
        targetGs.setStockpile(ResourceType.Stone, 2000);
        targetGs.addResourcePerTick(ResourceType.Stone, 5);
        targetGs.setStockpile(ResourceType.Wood, 2000);
        targetGs.addResourcePerTick(ResourceType.Wood, 6);
        targetGs.setStockpile(ResourceType.Silver, 200);
        targetGs.addResourcePerTick(ResourceType.Silver, 9);
        targetGameStates.Add(targetGs);

        BuildingGS targetGs2 = new BuildingGS();

        targetGs2.setStockpile(ResourceType.Gold, 4000);
        targetGs2.addResourcePerTick(ResourceType.Gold, 10);
        targetGs2.setStockpile(ResourceType.Stone, 4000);
        targetGs2.addResourcePerTick(ResourceType.Stone, 5);
        targetGs2.setStockpile(ResourceType.Wood, 4000);
        targetGs2.addResourcePerTick(ResourceType.Wood, 6);
        targetGs2.setStockpile(ResourceType.Silver, 400);
        targetGs2.addResourcePerTick(ResourceType.Silver, 9);
        targetGameStates.Add(targetGs2);

        BuildingGS targetGs3 = new BuildingGS();

        targetGs3.setStockpile(ResourceType.Gold, 8000);
        targetGs3.addResourcePerTick(ResourceType.Gold, 20);
        targetGs3.setStockpile(ResourceType.Stone, 8000);
        targetGs3.addResourcePerTick(ResourceType.Stone, 20);
        targetGs3.setStockpile(ResourceType.Wood, 8000);
        targetGs3.addResourcePerTick(ResourceType.Wood, 20);
        targetGs3.setStockpile(ResourceType.Silver, 800);
        targetGs3.addResourcePerTick(ResourceType.Silver, 20);
        targetGameStates.Add(targetGs3);

        Debug.Log("target game states size: " + targetGameStates.Count);
        for (int indexActor = 0; indexActor < noOfActors; indexActor++)
        {
            updateTargetDisplay(targetGameStates[currentTargetGsIndex[indexActor]], indexActor);
        }
    }
Esempio n. 5
0
    private BuildingGS modifyGameStateForPersonality(BuildingGS targetGsHuman, AIPersonalityType aiPersonality)
    {
        switch (aiPersonality)
        {
        case AIPersonalityType.GoldDigger:
            targetGsHuman.setStockpile(ResourceType.Gold, targetGsHuman.getStockpile(ResourceType.Gold) * 2);
            targetGsHuman.addResourcePerTick(ResourceType.Gold, targetGsHuman.getChangePerTick(ResourceType.Gold) * 2);
            break;

        case AIPersonalityType.Pragmatist:
            foreach (ResourceType rt in targetGsHuman.getStockpileResourceTypes())
            {
                targetGsHuman.setStockpile(rt, (int)(targetGsHuman.getStockpile(rt) * 1.3));
            }
            break;

        case AIPersonalityType.Warrior:
        case AIPersonalityType.ScienceGeek:
        case AIPersonalityType.Conservative:
        default:
            break;
        }
        return(targetGsHuman);
    }
Esempio n. 6
0
    public void onClick()
    {
        int igs;
        int istos;
        int iws;
        int isils;
        int iis;
        int ics;
        int istes;

        int tgs;
        int tstos;
        int tws;
        int tsils;
        int tis;
        int tcs;
        int tstes;

        int tgcpt;
        int tstocpt;
        int twcpt;
        int tsilcpt;
        int ticpt;
        int tccpt;
        int tstecpt;

        try  {
            igs   = int.Parse(initialGoldStock.text);
            istos = int.Parse(initialStoneStock.text);
            iws   = int.Parse(initialWoodStock.text);
            isils = int.Parse(initialSilverStock.text);
            iis   = int.Parse(initialIronStock.text);
            ics   = int.Parse(initialCoalStock.text);
            istes = int.Parse(initialSteelStock.text);

            tgs   = int.Parse(targetGoldStock.text);
            tstos = int.Parse(targetStoneStock.text);
            tws   = int.Parse(targetWoodStock.text);
            tsils = int.Parse(targetSilverStock.text);
            tis   = int.Parse(targetIronStock.text);
            tcs   = int.Parse(targetCoalStock.text);
            tstes = int.Parse(targetSteelStock.text);

            tgcpt   = int.Parse(targetGoldIncome.text);
            tstocpt = int.Parse(targetStoneIncome.text);
            twcpt   = int.Parse(targetWoodIncome.text);
            tsilcpt = int.Parse(targetSilverIncome.text);
            ticpt   = int.Parse(targetIronIncome.text);
            tccpt   = int.Parse(targetCoalIncome.text);
            tstecpt = int.Parse(targetSteelIncome.text);

            BuildingGS initialGS = new BuildingGS();
            if (igs != 0)
            {
                initialGS.setStockpile(ResourceType.Gold, igs);
            }
            if (istos != 0)
            {
                initialGS.setStockpile(ResourceType.Stone, istos);
            }
            if (iws != 0)
            {
                initialGS.setStockpile(ResourceType.Wood, iws);
            }
            if (isils != 0)
            {
                initialGS.setStockpile(ResourceType.Silver, isils);
            }
            if (iis != 0)
            {
                initialGS.setStockpile(ResourceType.Iron, iis);
            }
            if (ics != 0)
            {
                initialGS.setStockpile(ResourceType.Coal, ics);
            }
            if (istes != 0)
            {
                initialGS.setStockpile(ResourceType.Steel, istes);
            }

            BuildingGS targetGS = new BuildingGS();
            if (tgs != 0)
            {
                targetGS.setStockpile(ResourceType.Gold, tgs);
            }
            if (tstos != 0)
            {
                targetGS.setStockpile(ResourceType.Stone, tstos);
            }
            if (tws != 0)
            {
                targetGS.setStockpile(ResourceType.Wood, tws);
            }
            if (tsils != 0)
            {
                targetGS.setStockpile(ResourceType.Silver, tsils);
            }
            if (tis != 0)
            {
                targetGS.setStockpile(ResourceType.Iron, tis);
            }
            if (tcs != 0)
            {
                targetGS.setStockpile(ResourceType.Coal, tcs);
            }
            if (tstes != 0)
            {
                targetGS.setStockpile(ResourceType.Steel, tstes);
            }

            if (tgcpt != 0)
            {
                targetGS.addResourcePerTick(ResourceType.Gold, tgcpt);
            }
            if (tstocpt != 0)
            {
                targetGS.addResourcePerTick(ResourceType.Stone, tstocpt);
            }
            if (twcpt != 0)
            {
                targetGS.addResourcePerTick(ResourceType.Wood, twcpt);
            }
            if (tsilcpt != 0)
            {
                targetGS.addResourcePerTick(ResourceType.Silver, tsilcpt);
            }
            if (ticpt != 0)
            {
                targetGS.addResourcePerTick(ResourceType.Iron, ticpt);
            }
            if (tccpt != 0)
            {
                targetGS.addResourcePerTick(ResourceType.Coal, tccpt);
            }
            if (tstecpt != 0)
            {
                targetGS.addResourcePerTick(ResourceType.Steel, tstecpt);
            }

            MidLevelManager.targetGS  = targetGS;
            MidLevelManager.initialGS = initialGS;
            SceneManager.LoadScene("AIControlled");
        } catch (System.FormatException e) {
        }
    }