static void Main(string[] args) { var cabinet = new ArcadeCabinet(Day13.GetPart2IntCode()); while (true) { var key = Console.ReadKey(); Console.Clear(); switch (key.Key) { case ConsoleKey.Q: return; case ConsoleKey.LeftArrow: cabinet.MoveJoystick(JoystickPosition.Left); break; case ConsoleKey.RightArrow: cabinet.MoveJoystick(JoystickPosition.Right); break; case ConsoleKey.UpArrow: cabinet.MoveJoystick(JoystickPosition.Center); break; default: break; } cabinet.DrawFrame(); } }
public void CountBlockTilesTest() { var program = File.ReadAllText("Game.txt"); var arcadeCabinet = new ArcadeCabinet(program); arcadeCabinet.Play(); Assert.Equal(329, arcadeCabinet.BlockTilesCount); }
public void HighScoreTest() { var program = File.ReadAllText("Game.txt"); var arcadeCabinet = new ArcadeCabinet(program, true); arcadeCabinet.Play(); Assert.Equal(15973, arcadeCabinet.Score); }
public Day13() { var arcadeCabinet = new ArcadeCabinet(); arcadeCabinet.Run(); _answer1 = arcadeCabinet.Blocks; arcadeCabinet.Run(2); _answer2 = arcadeCabinet.Score; }
protected override string Solve2(IEnumerable <string> inputs) { var program = inputs.First().ToProgram(); var cpu = ServiceProvider.GetRequiredService <IntCodeCpu>(); var arcade = new ArcadeCabinet(cpu, program) .SetFreePlay() .SetAutoPlay(); return($"{ arcade.HighScore}"); }
protected override string Solve(IEnumerable <string> inputs) { var program = inputs.First().ToProgram(); var cpu = ServiceProvider.GetRequiredService <IntCodeCpu>(); var arcade = new ArcadeCabinet(cpu, program); var blockTiles = arcade.VideoBuffer.Tiles.Values.Where(x => x.Type == TileType.Block); AssertExpectedResult(398, blockTiles.Count()); return($"\r\nThe progam starts with {blockTiles.Count()} block tiles."); }
public async Task Part1(long[] outputs, int expectedResult) { var intcodeComputer = Substitute.For <IIntcodeComputer>(); var cabinet = new ArcadeCabinet(intcodeComputer); var tiles = new List <long>(); cabinet.OnTileUpdated += tile => tiles.Add(tile.Item2); var game = cabinet.RunGame(); foreach (var output in outputs) { intcodeComputer.OnOutput += Raise.Event <Action <long> >(output); } await game; Assert.AreEqual(expectedResult, tiles.Count); }
public MainWindow() { InitializeComponent(); AmplificationCircuit c = new AmplificationCircuit(); //c.SolveTask1(); //c.SolveTask2(); SensorBoost s = new SensorBoost(); s.Tests(); ArcadeCabinet ac = new ArcadeCabinet(); ac.solveTask1(); /* * N_BodyProblem prob = new N_BodyProblem(); * */ }