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); } } }
//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; }
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); }
//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; }
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; }
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(); }