public BoardingPane() { List <string> lines = new List <string>(ASCII_LAYOUT.Split('\n')); lines = lines.FindAll(line => line.Contains("O") || line.Contains("B")); numRows = lines.Count; numColumns = lines[0].Trim().Length; cells = new Cell[lines.Count, numColumns]; for (int row = 0; row < numRows; row++) { String line = lines[row].Trim(); for (int column = 0; column < numColumns; column++) { cells[row, column] = new Cell(row, column, line[column]); } } Console.WriteLine("num rows: " + numRows); Console.WriteLine("num columns: " + numColumns); boarders = new Boarder[3]; for (int i = 0; i < boarders.Length; i++) { boarders[i] = new Boarder(); boarders[i].path.Add(cells[0, 3 + i]); boarders[i].progress = 0.0f; boarders[i].turning = turningTime; } boarderTexture = Game().Content.Load <Texture2D>("boarder"); }
private async Task <StringResultTask> GetFirstTask() { string filePath = @"AdventOfCode2020.Calender.Day5.Input.txt"; var input = await ParseHelper.GetInput(Environment.NewLine, filePath, new BoardingParser()); var seat = input.Select(commands => Boarder.Boarding(commands, 128, 8)).Max(seat => seat.Id); return(new StringResultTask("Part 1", $"Answer: {seat}")); }
public void PutBoarderPositive() { var repo = new Mock <BoarderRep>(db); BoarderController controller = new BoarderController(repo.Object); Boarder boarder = new Boarder { FirstName = "Siddhartha", LastName = "Banerjee" }; var data = controller.Put("*****@*****.**", boarder) as OkObjectResult; Assert.AreEqual(200, data.StatusCode); }
public void PostBoarder() { var repo = new Mock <BoarderRep>(db); BoarderController controller = new BoarderController(repo.Object); Boarder boarder = new Boarder { FirstName = "Sid", LastName = "Ban", Email = "*****@*****.**", Password = "******" }; var data = controller.Post(boarder) as OkObjectResult; Assert.AreEqual(200, data.StatusCode); }
public IActionResult Edit(string id) { Boarder ls = new Boarder(); HttpResponseMessage response = client.GetAsync(client.BaseAddress + "/Boarder/" + id).Result; if (response.IsSuccessStatusCode) { string data = response.Content.ReadAsStringAsync().Result; ls = JsonConvert.DeserializeObject <Boarder>(data); } return(View(ls)); }
public IActionResult Edit(Boarder obj) { string data = JsonConvert.SerializeObject(obj); StringContent content = new StringContent(data, Encoding.UTF8, "application/json"); HttpResponseMessage response = client.PutAsync(client.BaseAddress + "/Boarder/" + obj.Email, content).Result; if (response.IsSuccessStatusCode) { return(RedirectToAction("Index")); } return(View()); }
public void Boarder_tests() { var boarder = new Boarder(new[] { true, false, true, false, true, false, true, false, true, false }); Assert.Equal("#.#.#.#.#.", boarder.ToString()); Assert.Equal(".#.#.#.#.#", boarder.Flip().ToString()); Assert.True(boarder.MatchesInADirection(boarder)); Assert.True(boarder.MatchesInADirection(boarder.Flip())); Assert.True(boarder.Equals(boarder)); Assert.True(boarder.Equals(boarder.Flip().Flip())); }
public int UpdateDetail(string id, Boarder boarder) { if (db != null) { var obj = (db.Boarders.Where(x => x.Email == id)).FirstOrDefault(); if (obj != null) { obj.FirstName = boarder.FirstName; obj.LastName = boarder.LastName; //obj.Email = boarder.Email; obj.Password = boarder.Password; db.SaveChanges(); return(1); } } return(0); }
public IActionResult Get(string id) { Boarder data = new Boarder(); try { data = db.GetDetail(id); if (data == null) { return(BadRequest(data)); } return(Ok(data)); } catch (Exception) { return(BadRequest(data)); } }
public IActionResult Post([FromBody] Boarder obj) { if (ModelState.IsValid) { try { var res = db.AddDetail(obj); if (res != null) { return(Ok(res)); } return(NotFound()); } catch (Exception) { return(BadRequest()); } } return(BadRequest()); }
public Tile(int id, ReadOnlySpan <string> input) { ID = id; Span <bool> top = stackalloc bool[10]; Span <bool> right = stackalloc bool[10]; Span <bool> bottom = stackalloc bool[10]; Span <bool> left = stackalloc bool[10]; for (var index = 0; index < 10; index++) { top[index] = Parse(input[0][index]); right[index] = Parse(input[index][9]); bottom[index] = Parse(input[9][index]); left[index] = Parse(input[index][0]); } TopBoarder = new Boarder(top); LeftBoarder = new Boarder(left); BottomBoarder = new Boarder(bottom); RightBoarder = new Boarder(right);
private async Task <StringResultTask> GetSecondTask() { string filePath = @"AdventOfCode2020.Calender.Day5.Input.txt"; var input = await ParseHelper.GetInput(Environment.NewLine, filePath, new BoardingParser()); var seats = input.Select(commands => Boarder.Boarding(commands, 128, 8)); var missingSeats = new List <AirlineSeat>(); for (int indexRow = 0; indexRow < 128; indexRow++) { for (int indexColumn = 0; indexColumn < 8; indexColumn++) { var result = seats.FirstOrDefault(seat => seat.Row == indexRow && seat.Column == indexColumn); if (result == null) { missingSeats.Add(new AirlineSeat(indexRow, indexColumn)); } } } return(new StringResultTask("Part 2", $"Answer: {seats.Count()}")); }
public IActionResult Put(string id, [FromBody] Boarder boarder) { if (ModelState.IsValid) { try { var result = db.UpdateDetail(id, boarder); if (result != 1) { return(BadRequest(result)); } return(Ok(result)); } catch (Exception ex) { if (ex.GetType().FullName == "Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException") { return(NotFound()); } return(BadRequest()); } } return(BadRequest()); }
public override void Update(Vector2 targetSize, GameTime gameTime) { HashSet <Boarder> toUpdate = new HashSet <Boarder>(boarders); while (toUpdate.Count > 0) { // silly pop Boarder boarder = null; foreach (Boarder b in toUpdate) { boarder = b; toUpdate.Remove(b); break; } if (boarder.path.Count < 20) { BuildCellPath(boarder.path, 20); } if (boarder.progress > 1) { Cell prevCell = boarder.path[0]; boarder.path.RemoveAt(0); boarder.progress = 0; Cell currentCell = boarder.path[0]; Cell nextCell = boarder.path[1]; if (nextCell.row < currentCell.row && prevCell.row == currentCell.row) // going up now { boarder.prevRotation = boarder.rotation; boarder.targetRotation = (float)Math.PI; boarder.turning = turningTime; } else if (nextCell.column > currentCell.column && prevCell.row != currentCell.row) // going right now { boarder.prevRotation = boarder.rotation; boarder.targetRotation = (float)(Math.PI * 1.5f); boarder.turning = turningTime; } else if (nextCell.row > currentCell.row && prevCell.column != currentCell.column) // going down now { boarder.prevRotation = boarder.rotation; boarder.targetRotation = 0; boarder.turning = turningTime; } else if (nextCell.column < currentCell.column && prevCell.row != currentCell.row) // going left now { boarder.prevRotation = boarder.rotation; boarder.targetRotation = (float)(Math.PI * 0.5f); boarder.turning = turningTime; } } else if (boarder.turning > 0) { boarder.turning -= (float)gameTime.ElapsedGameTime.TotalSeconds; // TODO: clamp this // c = 1 -> starting turn, c = 0 -> ending turn float c = boarder.turning / turningTime; boarder.rotation = boarder.targetRotation * (1 - c) + boarder.prevRotation * c; } else { // if someone else going to my next spot, don't Cell srcCell = boarder.path[0]; Cell dstCell = boarder.path[1]; bool wait = false; foreach (Boarder other in boarders) { if (boarder == other) { continue; } if (other.path.Count > 1 && other.path[1] == boarder.path[1] && other.progress > boarder.progress) { wait = true; } } if (!wait) { boarder.progress += 1 * (float)gameTime.ElapsedGameTime.TotalSeconds; } } } }
public string AddDetail(Boarder boarder) { db.Boarders.Add(boarder); db.SaveChanges(); return(boarder.Email); }
private static string CheckWriteSpriteFromTexture(string writeSpritePath, Texture2D texture, Boarder boarder) { if (texture == null) { Debug.LogError($"textureがNullです CheckWriteTexture({writeSpritePath})"); return($"error {writeSpritePath} is null"); } var pngHash = texture.imageContentsHash; var writeFolder = Path.GetDirectoryName(writeSpritePath); // HashMapキャッシュファイルを作成のために // - \を/にする // - 相対パスである writeSpritePath = writeSpritePath.Replace("\\", "/"); LoadCache(writeFolder); var hashStr = pngHash.ToString(); // ハッシュが同じテクスチャがある Shareする if (imageHashMap.ContainsKey(hashStr)) { var path = imageHashMap[hashStr]; if (File.Exists(path)) { // Debug.Log("shared texture " + Path.GetFileName(newPath) + "==" + Path.GetFileName(name)); imagePathMap[writeSpritePath] = path; SaveCache(writeFolder); return("Texture: Shared"); } // ファイルが存在しない imageHashMap.Remove(hashStr); // hashStrの登録を削除 var deleteList = imageHashMap .Where(kvp => kvp.Key == path || kvp.Value == path) // 存在しないファイルを参照している .Select(kvp => kvp.Key) .ToList(); foreach (var key in deleteList) { imagePathMap.Remove(key); } } // ハッシュからのパスを登録 imageHashMap[hashStr] = writeSpritePath; // 置き換え対象のパスを登録 imagePathMap[writeSpritePath] = writeSpritePath; // のちのUnity PreprocessTextureの処理への情報受け渡し // (PNGインポートでスプライトを作成するUnityのイベント) var slicedTexture = new SlicedTexture(texture, boarder); PreprocessTexture.SlicedTextures[writeSpritePath] = slicedTexture; try { // 本来はフォルダを作成しなくても良いはず EditorUtil.CreateFolder(Path.GetDirectoryName(writeSpritePath)); // PNG での保存 (多プラットフォームに対応しやすい) var pngData = ImageConversion.EncodeToPNG(texture); File.WriteAllBytes(writeSpritePath, pngData); // spriteでの保存 /* * var sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), * new Vector2(0.5f, 0.5f)); * AssetDatabase.CreateAsset(sprite, Path.ChangeExtension(writeSpritePath, "asset")); */ SaveCache(writeFolder); } catch (Exception ex) { Debug.LogAssertion($"Textureの書き込み中に例外が発生しました:{ex.Message}"); } return("Texture: Created"); }
public string Post([FromBody] Boarder value) { _context.Boarders.Add(value); _context.SaveChanges(); return("sucess"); }
public void Boarder_Boarding(BoardingCommandKind[] commands, int rows, int column, int expectedResult) { var result = Boarder.Boarding(commands, rows, column); Assert.Equal(expectedResult, result.Id); }