コード例 #1
0
ファイル: TileMap.cs プロジェクト: TakeruGrima/Pix-C-
        public TileMap(string path, int size)
        {
            this.size = size;
            tileMap   = new List2D <char>();

            using (StreamReader sr = new StreamReader(path))
            {
                while (!sr.EndOfStream)
                {
                    string line = sr.ReadLine();

                    List <char> lineList = new List <char>();

                    for (int i = 0; i < line.Length; i++)
                    {
                        lineList.Add(line[i]);

                        if (line[i] == 'P')//indicate that the player start here
                        {
                            playerPosition = new Vector2(i * Size, tileMap.Count * Size);
                        }
                        if (line[i] == '@')
                        {
                            npcPosition.Add(new Vector2(i * Size, tileMap.Count * Size));
                        }
                    }

                    tileMap.Add(lineList);
                }
            }
        }
コード例 #2
0
ファイル: Sprite.cs プロジェクト: TakeruGrima/Pix-C-
        //Constructor for single sprite
        public Sprite(string path)
        {
            graph = new List2D <char>();

            using (StreamReader sr = new StreamReader(path))
            {
                while (!sr.EndOfStream)
                {
                    string line = sr.ReadLine();

                    List <char> lineList = new List <char>();

                    for (int i = 0; i < line.Length; i++)
                    {
                        lineList.Add(line[i]);
                    }
                    Console.WriteLine(line);

                    graph.Add(lineList);
                }
            }

            size.Y = graph.Count * 2;
            size.X = graph[0].Count * 2;
        }
コード例 #3
0
ファイル: WorldLoader.cs プロジェクト: DrFlave/Quadradria
        public Megachunk LoadMegachunk(int x, int y)
        {
            Megachunk mc = null;

            mc = new Megachunk(x, y, graphicsDevice, generator, () => {
                megachunks.Remove(x, y);
            });
            megachunks.Add(x, y, mc);
            return(mc);
        }
コード例 #4
0
ファイル: Sprite.cs プロジェクト: TakeruGrima/Pix-C-
        //create a sprite with a tab in text
        //Constructor for animation
        public Sprite(string text, Vector2 position)
        {
            graph = new List2D <char>();

            using (StringReader sr = new StringReader(text))
            {
                string line;
                while ((line = sr.ReadLine()) != null)
                {
                    List <char> lineList = new List <char>();

                    for (int i = 0; i < line.Length; i++)
                    {
                        lineList.Add(line[i]);
                    }
                    Console.WriteLine(line);

                    graph.Add(lineList);
                }
            }

            size.Y = graph.Count * 2;
            size.X = graph[0].Count * 2;
        }
コード例 #5
0
        public void UpdateLoadedArea(int x, int y, int width, int height, WorldLoader worldLoader)
        {
            Rect newrect = new Rect(x - 3, y - 3, width + 6, height + 6);

            if (newrect.Equals(lastRect))
            {
                return;
            }
            Rect newDrawRect = new Rect(x, y, width, height);

            ChunksLoaded.ForEachWrapper((cw) => {
                int j = cw.x;
                int i = cw.y;

                if (!newrect.Contains(j, i))
                {
                    Chunk chunk = ChunksLoaded.Get(j, i);
                    if (chunk == null)
                    {
                        return;
                    }
                    UnloadChunk(chunk);
                }
            });

            ChunksVisible.ForEachWrapper((cw) => {
                int j = cw.x;
                int i = cw.y;

                if (!newDrawRect.Contains(j, i))
                {
                    ChunksVisible.Remove(j, i);
                }
            });


            for (int i = newrect.Y; i < newrect.Y + newrect.Height; i++)
            {
                for (int j = newrect.X; j < newrect.X + newrect.Width; j++)
                {
                    if (!ChunksLoaded.Includes(j, i))
                    {
                        Chunk chunk = worldLoader.LoadChunk(j, i);
                        if (chunk == null)
                        {
                            continue;
                        }
                        chunk.Load();
                        ChunksLoaded.Add(j, i, chunk);
                    }

                    if (newDrawRect.Contains(j, i))
                    {
                        Chunk chunk = ChunksLoaded.Get(j, i);
                        if (chunk == null)
                        {
                            continue;
                        }
                        ChunksVisible.Add(j, i, chunk);
                    }
                }
            }

            lastRect     = newrect;
            lastDrawRect = newDrawRect;
        }
コード例 #6
0
ファイル: Brain.cs プロジェクト: Hugu3s/sonaris
    private void Initialize(InputData input, OutputData output)
    {
        inputLength  = input.data[0].Count;
        outputLength = output.data[0].Count;
        Debug.Log("input size = " + inputLength + ", output size = " + outputLength);
        sizes = new List <int>();
        sizes.Add(inputLength);
        if (hiddenLayers == null)
        {
            sizes.Add((int)Math.Max(3, Math.Floor((double)(inputLength / 2))));
        }
        else
        {
            foreach (int size in hiddenLayers)
            {
                sizes.Add(size);
            }
        }
        sizes.Add(outputLength);

        outputLayer = sizes.Count - 1;       // index du niveau de sortie
        biases      = new List2D <double>(); // weights for bias nodes
        weights     = new List3D <double>();
        outputs     = new List2D <double>();

        // state for training
        deltas  = new List2D <double>();
        changes = new List3D <double>();
        errors  = new List2D <double>();

        // On remplit chaque niveau du réseau
        for (int layer = 0; layer <= outputLayer; ++layer)
        {
            int size = (int)sizes[layer]; // numéro du niveau
            deltas.Add(Zeros(size));      // On remplit les deltas du niveau avec des zéros
            errors.Add(Zeros(size));      // On remplit les erreurs du niveau avec des zéros
            outputs.Add(Zeros(size));     // On remplit la sortie du niveau avec des zéros

            if (layer == 0)
            {
                biases.Add(new List <double>());
                weights.Add(new List2D <double>());
                changes.Add(new List2D <double>());
            }

            if (layer > 0)
            {
                biases.Add(Randos(size));               // les biais sont initialisés de façon random
                weights.Add(new List2D <double>());     // les poids sont vides
                changes.Add(new List2D <double>());     // les modifs sont vides

                for (int node = 0; node < size; ++node) // pour chaque neurone du niveau
                {
                    int prevSize = (int)sizes[layer - 1];
                    weights[layer].Add(Randos(prevSize)); // le poids du neurone est random
                    changes[layer].Add(Zeros(prevSize));  // les modifs valent 0
                }
            }
        }
        SetActivation();
    }