parent
ce1cda06b4
commit
7e8c273c5d
@ -0,0 +1,138 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||
<ItemGroup Label="ProjectConfigurations"> |
||||
<ProjectConfiguration Include="Debug|Win32"> |
||||
<Configuration>Debug</Configuration> |
||||
<Platform>Win32</Platform> |
||||
</ProjectConfiguration> |
||||
<ProjectConfiguration Include="Release|Win32"> |
||||
<Configuration>Release</Configuration> |
||||
<Platform>Win32</Platform> |
||||
</ProjectConfiguration> |
||||
<ProjectConfiguration Include="Debug|x64"> |
||||
<Configuration>Debug</Configuration> |
||||
<Platform>x64</Platform> |
||||
</ProjectConfiguration> |
||||
<ProjectConfiguration Include="Release|x64"> |
||||
<Configuration>Release</Configuration> |
||||
<Platform>x64</Platform> |
||||
</ProjectConfiguration> |
||||
</ItemGroup> |
||||
<PropertyGroup Label="Globals"> |
||||
<VCProjectVersion>16.0</VCProjectVersion> |
||||
<Keyword>Win32Proj</Keyword> |
||||
<ProjectGuid>{cf11a7b9-18f3-4cac-b861-f6faf8b4a4b9}</ProjectGuid> |
||||
<RootNamespace>Day_3</RootNamespace> |
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> |
||||
</PropertyGroup> |
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> |
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> |
||||
<ConfigurationType>Application</ConfigurationType> |
||||
<UseDebugLibraries>true</UseDebugLibraries> |
||||
<PlatformToolset>v143</PlatformToolset> |
||||
<CharacterSet>Unicode</CharacterSet> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> |
||||
<ConfigurationType>Application</ConfigurationType> |
||||
<UseDebugLibraries>false</UseDebugLibraries> |
||||
<PlatformToolset>v143</PlatformToolset> |
||||
<WholeProgramOptimization>true</WholeProgramOptimization> |
||||
<CharacterSet>Unicode</CharacterSet> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> |
||||
<ConfigurationType>Application</ConfigurationType> |
||||
<UseDebugLibraries>true</UseDebugLibraries> |
||||
<PlatformToolset>v143</PlatformToolset> |
||||
<CharacterSet>Unicode</CharacterSet> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> |
||||
<ConfigurationType>Application</ConfigurationType> |
||||
<UseDebugLibraries>false</UseDebugLibraries> |
||||
<PlatformToolset>v143</PlatformToolset> |
||||
<WholeProgramOptimization>true</WholeProgramOptimization> |
||||
<CharacterSet>Unicode</CharacterSet> |
||||
</PropertyGroup> |
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> |
||||
<ImportGroup Label="ExtensionSettings"> |
||||
</ImportGroup> |
||||
<ImportGroup Label="Shared"> |
||||
</ImportGroup> |
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
||||
</ImportGroup> |
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
||||
</ImportGroup> |
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> |
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
||||
</ImportGroup> |
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> |
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
||||
</ImportGroup> |
||||
<PropertyGroup Label="UserMacros" /> |
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
||||
<ClCompile> |
||||
<WarningLevel>Level3</WarningLevel> |
||||
<SDLCheck>true</SDLCheck> |
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||
<ConformanceMode>true</ConformanceMode> |
||||
</ClCompile> |
||||
<Link> |
||||
<SubSystem>Console</SubSystem> |
||||
<GenerateDebugInformation>true</GenerateDebugInformation> |
||||
</Link> |
||||
</ItemDefinitionGroup> |
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
||||
<ClCompile> |
||||
<WarningLevel>Level3</WarningLevel> |
||||
<FunctionLevelLinking>true</FunctionLevelLinking> |
||||
<IntrinsicFunctions>true</IntrinsicFunctions> |
||||
<SDLCheck>true</SDLCheck> |
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||
<ConformanceMode>true</ConformanceMode> |
||||
</ClCompile> |
||||
<Link> |
||||
<SubSystem>Console</SubSystem> |
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding> |
||||
<OptimizeReferences>true</OptimizeReferences> |
||||
<GenerateDebugInformation>true</GenerateDebugInformation> |
||||
</Link> |
||||
</ItemDefinitionGroup> |
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> |
||||
<ClCompile> |
||||
<WarningLevel>Level3</WarningLevel> |
||||
<SDLCheck>true</SDLCheck> |
||||
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||
<ConformanceMode>true</ConformanceMode> |
||||
</ClCompile> |
||||
<Link> |
||||
<SubSystem>Console</SubSystem> |
||||
<GenerateDebugInformation>true</GenerateDebugInformation> |
||||
</Link> |
||||
</ItemDefinitionGroup> |
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> |
||||
<ClCompile> |
||||
<WarningLevel>Level3</WarningLevel> |
||||
<FunctionLevelLinking>true</FunctionLevelLinking> |
||||
<IntrinsicFunctions>true</IntrinsicFunctions> |
||||
<SDLCheck>true</SDLCheck> |
||||
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||
<ConformanceMode>true</ConformanceMode> |
||||
</ClCompile> |
||||
<Link> |
||||
<SubSystem>Console</SubSystem> |
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding> |
||||
<OptimizeReferences>true</OptimizeReferences> |
||||
<GenerateDebugInformation>true</GenerateDebugInformation> |
||||
</Link> |
||||
</ItemDefinitionGroup> |
||||
<ItemGroup> |
||||
<ClInclude Include="olcPixelGameEngine.h" /> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<ClCompile Include="main.cpp" /> |
||||
</ItemGroup> |
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> |
||||
<ImportGroup Label="ExtensionTargets"> |
||||
</ImportGroup> |
||||
</Project> |
@ -0,0 +1,10 @@ |
||||
467..114.. |
||||
...*...... |
||||
..35..633. |
||||
......#... |
||||
617*...... |
||||
.....+.58. |
||||
..592..... |
||||
......755. |
||||
...$.*.... |
||||
.664.598.. |
@ -0,0 +1,140 @@ |
||||
............677..........................................................................227.....730..35.......318...........92...166....... |
||||
....%..863..#......................36.............956..337%......692..............*744....$..........*......../.....187..-.................. |
||||
..346...*.....475.440....903&..996*...404+.395...*..............*.......&253.223.....................453..535......@....265.....290$........ |
||||
.........470.*.....+..........................*.........148...40....361...................883.............*....%............649............. |
||||
.............587..........#..........848*.............../.........................................415....445....947............*...509...... |
||||
......170..............922..79*660.......87...802...........................669.152...867...........*.........................926....+.53... |
||||
.......-..#319..915................846......../......120...870*874..610.........$....-.......577.....825.....430$.....689................... |
||||
......................700.........*................................*..................../.........................693.*....734&......@.59... |
||||
..........247..........*.......444....768....569.248..430..565.....82............525...794...171...................*..160........39.25.*.... |
||||
..........*.........560............56*......$..........&...*............70-........&.........*....397....571.....297.............*.....422.. |
||||
......338..481........../..#220...............116.........194..................#.....=....-..529..=........................../....381....... |
||||
.892....*....../...708.856.......405.............*324................&...922....60..288..810.........747............*876./....180........... |
||||
....*..41......456........................652..................48..110..+.....................199.....*..........824......471........261.... |
||||
..317......+1........29...316&...368&............%.365...212....*..............................*..292..70..............................*.... |
||||
.......................................*......616..-.....*....596........*699.978*259....309..660....*...........90....634.....631......987. |
||||
140........2*....285...836&..........13.8.............264.............945...............*............323....514.&.........-......%.......... |
||||
......&......634..*..........816...........................41..=..............@670......648................+.............................926 |
||||
......343.........221....157....*.......=..492.319..............659......238.........................-.......113.......187...863............ |
||||
........................*......937....471........*...274..................*....../244......22..332...908.......*..........#..*.............. |
||||
.......610.............670.693..................182...*..618.............865................................678........85.....948........... |
||||
.........*...334.............../.....21*853.........491..../...524...............494........794.....401.........$........*327............... |
||||
........270.../................164.......................#....=..............235...*....-..*.......*.............142..............738*...... |
||||
...579.............@...823...............596........+263.797.....916..............632..618..335.996......504*..................+......853... |
||||
....&...646*.872...805....*...-788.......*.........................*.......985*..............................440.......310..826.....+....... |
||||
..............*.........54..........104...238.........787...........79.........449.674........204......................*...........808...... |
||||
...949....396..................664....$.........626..*...............................*.......*....923..30....482........111.............+... |
||||
...$......*...................../.............*......387.........333...-........@.750.......737.........*.....*.............890..707.....852 |
||||
.........264....247.....416+..................177...........55..........251..911.........................88...741.................@......... |
||||
................*..............-........................232..*.....737...............597..............................=.+...............24.. |
||||
.................456............109..907................../...656.......................*..................855.451.958..783.........854*.... |
||||
.....65*....#188.......894............................@.....&................380.302.133..507.................*..............227............ |
||||
..71....14..................774..%109..821...182*......85...256......314.......%..........-....148..$.824*591......653........*......&435... |
||||
.........................$./.............@...........................=............228..............32.........*........%989..121............ |
||||
.......................64.......545.........*458......735....435...........869.......+...........=.........307.......................*...... |
||||
74...209../885..................*....&368.86.........*..........*....965.....................919..226................990..........381.566... |
||||
........#..........970.150....910.=..............973.502....$.603..#..*....429..557...#................665.......307........................ |
||||
...-.........486..........=.......514.............*......621......59.654......*...*....756...584.....%....*453...*....250...328...995....... |
||||
....997.........*.......................316......533........................100..485.........*.......955........792..........*.......*...... |
||||
.........420....111..........273.430.......*889..........824..338..91.55.............656....70...............................936...713...... |
||||
......#....*........647......*...../.484.......................*..*......#376..........................425.613.............................. |
||||
...568....151....$.......95.............*...66.....818..453.735..817.319......568*764...........242.....+.............829.1................. |
||||
..............216....345......................*.....*.................*...549............251.......*.........*44.......*...*352......597*7.. |
||||
.....138..240......$...*.............34..197.988.....760..981....*....682....*...263/...*.........19......678.......$..839.......70......... |
||||
........*...*....270.........147.700.......*...............+..470.849.......625.........218..$.....................936..........*....@...... |
||||
.......953..856.................*.........910........504.........................&..........830........874..................514.772..698.... |
||||
814...................460...........................$............&49......804..394......................*...............747...*............. |
||||
........876...........@...............607......15........8...................$.........706..............767...972.......*...912....%........ |
||||
.............805...83..............*......156..............924...719...............514*...........................936...........960..364.... |
||||
...692........*....#......220...667.645....*........................=...977..628........415...................@....*..386....#.........*.... |
||||
.............................$.............891.948..479...................-...*..........*...*385......*...173....113./...765..779......643. |
||||
..........$754......8............599...........*............373.............814....537.307..........552.........................*........... |
||||
......................*111..874..&...887....820.........73..*..........196.....................260.......%......915.774.........../......... |
||||
..........670*484.624..........$.......................%.....17........*.......91@..703*705...............298......*............160......... |
||||
.....256...............&..................833.....@......319....&310.778........................214...................195..............7.... |
||||
......*......-.......229.................*........23.........82.............604..428.....258&..*.................303..*......198............ |
||||
....554...262...621*...........959....475..28............836.*...11*68...........#............602..73.....+471..*....161.61.*...........652. |
||||
...............................*..........................$..324.........&.........-.....950........*..........921.......*...551...799$.$... |
||||
..............=306..19/.397*....127.......*..........794..........461....997........429.#.........923....................................... |
||||
..950.....225...............667........743.560.........*....678....*..................................240.............*..................... |
||||
...........*......................&727..................229...*...20............508@...464........312.....399..945...430.................... |
||||
............239......*453.....................................908.........339.........*........................*............394@............ |
||||
.606..647......................544.....*765.............908/...............*....318...393................481.445..................714....... |
||||
...*.../......859......362....../...352...........736.........970.......138....................%....850............529........#......*561... |
||||
..841.............*.......$................225...=....*470..................280....109......441........*785....281*........576..@929........ |
||||
...........146..34.965......272...............*....418......-....=918..862.*......*...................................#365.................. |
||||
.821*388......*.....................781......778...........839...........*..779.........635..#....243..+............*.............*493...147 |
||||
...............991....463...211*......$...........291...............+.............970...*....153..*....81..........614...720....63.......... |
||||
...........714..................127......81......&.................307.............-.....948.....565......907...........*................... |
||||
...........................-..............#...#...........................&..........145.....................*365..590..711....830....511... |
||||
..........136..-...810....9....................178...........*440....696...792..............260........18......................*............ |
||||
......364....*.193...+..........5*.....390+..........580..630...........*..............324./....463....*........................846......915 |
||||
.........*..............868.......593.......384......../....................201........*..............343..852......96...................... |
||||
......303..64.............................................493.........694............833....758........................266......531......... |
||||
.............*823..................................461............295..........100$.......%...=.884..433....929.......&.........$........... |
||||
521..........................&.................120.........................../..........996.....*.......&....*...971.................-...... |
||||
.......@..227...............440..308.../................152.......#.........82.660.%265......599.............646..*...505....547$.....983... |
||||
.....157................................22.......=.......%...&.....12....................................428.....641........................ |
||||
...........398.....381.../...248................492........631.....................128...../...577.......$............792................... |
||||
..........+...............28.........41.....386......15............*937......660...*....915.......*.594.................$.......964......... |
||||
..............216.............351&...*........*.....*........$..449...............328..........270...#.........900.........930.*.....941.... |
||||
..552.224.402*......895.............302.462....248...374...142................535..........................884....%..71....$...997...*...589 |
||||
.....*.....................270...-........=.-..........................760..........151..508..........21.....*......+....................... |
||||
........341..%898.......$......612...........103..............895....*.*.........@.....-.....99........*..939.....*......................... |
||||
........*............295.............591.................458.+.....374..70........284................283.........340..89......820......932.. |
||||
......284.......826........+838........*........*.........$...................................89........................&.....=.......*..... |
||||
..........818..........................741...175.495................489.........................*.........469..565..%...........613.32...... |
||||
788.982...*.........468..............................952....73...............588...336........+...498*805....*...*...332.........*.......... |
||||
....../.884...%.127....&..980...#.........214...............+.................*....*.......336...............812..43.......475..908......... |
||||
............294..............-.681......=......1........647.............180..895..760....%................91...............*.........674.... |
||||
...24..#.................739.............657..=....149.....*..296.737..*..............553...............*...*473........474...%............. |
||||
.......694.......*..%....*.........*..................-.117....*.....*..............................953.793....................653.....635.. |
||||
..............519....963..640......718......................*...693.83.............................$.................................-..#... |
||||
.......................................463...........*39..867...........200..................766.........893........262.89.777-.....476..... |
||||
......................@790........................983...................*.....................*.............*906...../..*.........%......... |
||||
.../.......417..619...................................................944...973.....#......664.........203...............504.824...626.149.. |
||||
...316...............847...........%....................382...1................*.825..223.............@.........+............*.........*.... |
||||
...............816....*.....744..771.628..............*....*..*..............433......*..........................303......569..725......221. |
||||
.....&543........*.774.......*.....................461..357..131...583..892$.........627...978..630...#653........................#......... |
||||
352............540............509.504*......109......................*.......................+.-...............431..486..250....%........... |
||||
...+.......774.....343........................*.......&............859.....499......................./................*......448....425..... |
||||
..............*857.$........26....+.....$..705..491.128......871............#..659....................119.....%80.770.25.................... |
||||
......66....................*..453....497.........-.......*.....*................@.....833..........................................-....... |
||||
.....*........196........535........................./.233.230.238.....................*...#.56*...........757.......620..........$..694.... |
||||
...226.122....*.....116...............78$.........652.....................+589......260..633....97....153...............*..$...142.......464 |
||||
........@......493..........883...862.................199......................100......................%.............445...25.....*........ |
||||
...........372.........388...*...%.......13*506......%...../855...-456.........+................373........@....976.............243.965..... |
||||
.....234..*........200...&.659...........................-...............353......451..........*..........997....*.......................... |
||||
........*..........*...........205..................#...346.................@....-.......890..455.....819.....673..733*473.................. |
||||
..........970...132...$....509*..........#.......437..........290..../489...........59.................*........................961......... |
||||
..972.192.@.........152.@.......$...876...993.............449....&.............335.*.....184.........723.......................+.......+.... |
||||
...............899......470.82..908..............10.......+...........375......#....635...*................*538.....$..228..%...........587. |
||||
...751........................-......................996....351........*..422...........246.......#393..168.......576...*...652...784....... |
||||
....................997.................49.............*...*....118......*.....998..$..........2............#....................*.......... |
||||
.........-749..612..*.............140..$.......659.....750..965....*...187.....*...973..............859..908......951.....104.....749...+... |
||||
.302...............257...........................*...............851...........444..........58*119...*........162....@......*............431 |
||||
....*........260*........324................262...147.......+..............245........................604.47...............333..../......... |
||||
.................926........*248...............*..........660................*......438=..250.................622................103....543. |
||||
............@223............................933.........................605..285............*..................*.....622...............#.... |
||||
....&...873.............6..530.......251.........17..529...................*.................945...905.........505...*.....181.............. |
||||
.....60....*........94..&...&..........#........+....../....746*768........849.......985*445.............*...........201..$....307...-...... |
||||
..........838.365..$.............595+..............-............................256..............533......84..................%.......564... |
||||
.....855........*.....%...............854.........20..739..........+............................................992......................... |
||||
.981..*..........75..147.390..................842....../..997......145.......593..............#...........769../........88..............323. |
||||
...*..911.................*..997.........................*................15*.......642....327........148*................*268..........@... |
||||
..127.........................@...........856........284.753..469.....+.......611=.....&.........................63....&........@346........ |
||||
......758..............670...............*.....431..............*.460..988..=...................................*.....538..............#697. |
||||
.........................*.......311.=37.........*............524...*.......315..316..902.....864*.....%529.....392.......859..156@......... |
||||
.....$..............610......478.#..............335................337.................-..........828........................#......530.191. |
||||
.892.914......................%..........................283....................208........626.........&.40.....443..626.$.............*.... |
||||
...*.....................963....645*........694*.................539.....317..................%......555............*.....450......+........ |
||||
..412..422..373%...713$..%......................778.159.........*...........#.......978...................+......647..........$..885....&... |
||||
...............................58...........383.....%..........185...376...........+.....158.........%.....398.............203.........784.. |
||||
......360...914*875.104&........&.673....-.....*.*....................*...................*.....590.417.60.......................*.......... |
||||
.......*.................................386.592..445...............74...........&........864.............$.370.....75........125.102...292. |
||||
........950.522..422&.204%......918.........................228................918............../..............-...*...951.................. |
||||
.....@.........*..................................................228..840$.....................584......72..#....563...$..717..113......... |
||||
..250...........817.........#........614...224...164...506......................362....873...........568*....920...............*............ |
||||
......159.................553..294#...*.........*......................42..$...........*......884.......................950...482..611...249 |
||||
........*....978*275.................974...*....81.........../...........%.405.........224.....-....*......409*20....../............*...*... |
||||
.122.273...............759....137...........574............229...................................497.41............................872.78... |
@ -0,0 +1,241 @@ |
||||
#pragma region Hidden Setup Stuff |
||||
#define OLC_PGE_APPLICATION |
||||
#include "olcPixelGameEngine.h" |
||||
|
||||
using namespace olc; |
||||
|
||||
enum Run{ |
||||
FILE1, |
||||
FILE2 |
||||
}; |
||||
|
||||
// Override base class with your custom functionality
|
||||
class AoC2023 : public olc::PixelGameEngine |
||||
{ |
||||
std::vector<std::string>lines; |
||||
bool waitForRender=false; |
||||
|
||||
void wait(int pauseMs=0){ |
||||
waitForRender=true; |
||||
while(waitForRender); |
||||
std::this_thread::sleep_for(std::chrono::milliseconds(pauseMs)); |
||||
} |
||||
|
||||
#pragma endregion |
||||
|
||||
const int DAY = 3; |
||||
Run runInput=FILE1; |
||||
|
||||
struct numb{ |
||||
vi2d pos; |
||||
int number; |
||||
}; |
||||
|
||||
std::vector<numb>parts; |
||||
std::vector<std::vector<char>>board; |
||||
|
||||
void doStuff2(){ |
||||
while(true){ //lines is accessible as a global.
|
||||
int sum=0; |
||||
vi2d pos={}; |
||||
for(std::string&line:lines){ |
||||
std::string numb=""; |
||||
bool isAdjacent=false; |
||||
std::vector<char>row; |
||||
vi2d initialNumberPos={}; |
||||
for(int i=0;i<line.size();i++){ |
||||
if(line[i]>='0'&&line[i]<='9'){ |
||||
if(numb.length()==0){ |
||||
initialNumberPos=pos; |
||||
} |
||||
numb+=line[i]; |
||||
}else |
||||
if(numb.length()>0){ |
||||
//A number has been parsed.
|
||||
parts.push_back({initialNumberPos,atoi(numb.c_str())}); |
||||
numb=""; |
||||
} |
||||
row.push_back(line[i]); |
||||
pos.x++; |
||||
} |
||||
if(numb.length()>0){ |
||||
//A number has been parsed.
|
||||
parts.push_back({initialNumberPos,atoi(numb.c_str())}); |
||||
} |
||||
board.push_back(row); |
||||
pos.y++; |
||||
pos.x=0; |
||||
std::cout<<line<<std::endl; |
||||
} |
||||
|
||||
for(numb&number:parts){ |
||||
int myNumb=number.number; |
||||
vi2d startingPos=number.pos; |
||||
while(myNumb>0){ |
||||
auto validatePos=[&](vi2d checkPos){ |
||||
return startingPos.y+checkPos.y>0&&startingPos.y+checkPos.y<board.size()-1&& |
||||
startingPos.x+checkPos.x>0&&startingPos.x+checkPos.x<board[startingPos.y+checkPos.y].size()-1; |
||||
}; |
||||
auto testChar=[&](char test){ |
||||
if(test!='.'&&!(test>='0'&&test<='9')){ |
||||
sum+=number.number; |
||||
std::cout<<number.number<<" was adjacent to a symbol"<<std::endl; |
||||
return true; |
||||
} |
||||
return false; |
||||
}; |
||||
vi2d checkPos={1,0}; |
||||
if(validatePos({1,0})){if(testChar(board[startingPos.y][startingPos.x+1]))break;} |
||||
if(validatePos({0,1})){if(testChar(board[startingPos.y+1][startingPos.x]))break;} |
||||
if(validatePos({-1,0})){if(testChar(board[startingPos.y][startingPos.x-1]))break;} |
||||
if(validatePos({0,-1})){if(testChar(board[startingPos.y-1][startingPos.x]))break;} |
||||
if(validatePos({1,1})){if(testChar(board[startingPos.y+1][startingPos.x+1]))break;} |
||||
if(validatePos({1,-1})){if(testChar(board[startingPos.y-1][startingPos.x+1]))break;} |
||||
if(validatePos({-1,1})){if(testChar(board[startingPos.y+1][startingPos.x-1]))break;} |
||||
if(validatePos({-1,-1})){if(testChar(board[startingPos.y-1][startingPos.x-1]))break;} |
||||
myNumb/=10; |
||||
startingPos.x++; |
||||
} |
||||
} |
||||
std::cout<<sum<<std::endl; |
||||
wait(0); //Wait for 0ms and render the screen (calls draw())
|
||||
break; |
||||
} |
||||
} |
||||
|
||||
void doStuff(){ |
||||
while(true){ //lines is accessible as a global.
|
||||
int sum=0; |
||||
vi2d pos={}; |
||||
for(std::string&line:lines){ |
||||
std::string numb=""; |
||||
bool isAdjacent=false; |
||||
std::vector<char>row; |
||||
vi2d initialNumberPos={}; |
||||
for(int i=0;i<line.size();i++){ |
||||
if(line[i]>='0'&&line[i]<='9'){ |
||||
if(numb.length()==0){ |
||||
initialNumberPos=pos; |
||||
} |
||||
numb+=line[i]; |
||||
}else |
||||
if(numb.length()>0){ |
||||
//A number has been parsed.
|
||||
parts.push_back({initialNumberPos,atoi(numb.c_str())}); |
||||
numb=""; |
||||
} |
||||
row.push_back(line[i]); |
||||
pos.x++; |
||||
} |
||||
if(numb.length()>0){ |
||||
//A number has been parsed.
|
||||
parts.push_back({initialNumberPos,atoi(numb.c_str())}); |
||||
} |
||||
board.push_back(row); |
||||
pos.y++; |
||||
pos.x=0; |
||||
std::cout<<line<<std::endl; |
||||
} |
||||
|
||||
for(numb&number:parts){ |
||||
int myNumb=number.number; |
||||
vi2d startingPos=number.pos; |
||||
while(myNumb>0){ |
||||
auto validatePos=[&](vi2d checkPos){ |
||||
return startingPos.y+checkPos.y>0&&startingPos.y+checkPos.y<board.size()-1&& |
||||
startingPos.x+checkPos.x>0&&startingPos.x+checkPos.x<board[startingPos.y+checkPos.y].size()-1; |
||||
}; |
||||
auto testChar=[&](char test){ |
||||
if(test!='.'&&!(test>='0'&&test<='9')){ |
||||
sum+=number.number; |
||||
std::cout<<number.number<<" was adjacent to a symbol"<<std::endl; |
||||
return true; |
||||
} |
||||
return false; |
||||
}; |
||||
vi2d checkPos={1,0}; |
||||
if(validatePos({1,0})){if(testChar(board[startingPos.y][startingPos.x+1]))break;} |
||||
if(validatePos({0,1})){if(testChar(board[startingPos.y+1][startingPos.x]))break;} |
||||
if(validatePos({-1,0})){if(testChar(board[startingPos.y][startingPos.x-1]))break;} |
||||
if(validatePos({0,-1})){if(testChar(board[startingPos.y-1][startingPos.x]))break;} |
||||
if(validatePos({1,1})){if(testChar(board[startingPos.y+1][startingPos.x+1]))break;} |
||||
if(validatePos({1,-1})){if(testChar(board[startingPos.y-1][startingPos.x+1]))break;} |
||||
if(validatePos({-1,1})){if(testChar(board[startingPos.y+1][startingPos.x-1]))break;} |
||||
if(validatePos({-1,-1})){if(testChar(board[startingPos.y-1][startingPos.x-1]))break;} |
||||
myNumb/=10; |
||||
startingPos.x++; |
||||
} |
||||
} |
||||
std::cout<<sum<<std::endl; |
||||
wait(0); //Wait for 0ms and render the screen (calls draw())
|
||||
break; |
||||
} |
||||
} |
||||
|
||||
void draw(){ //Only use Sprites! If using decals, you must reference global variables!
|
||||
Clear(BLACK); |
||||
int count=0; |
||||
vi2d pos; |
||||
for(std::vector<char>&row:board){ |
||||
for(char c:row){ |
||||
DrawString(pos,std::string(1,c)); |
||||
pos.x+=8; |
||||
} |
||||
pos.y+=8; |
||||
pos.x=0; |
||||
} |
||||
for(numb&number:parts){ |
||||
std::string numbStr=""; |
||||
int numb=number.number; |
||||
while(numb>0){ |
||||
numbStr=std::to_string(numb%10)+numbStr; |
||||
numb/=10; |
||||
} |
||||
DrawString(number.pos*8,numbStr,RED); |
||||
} |
||||
} |
||||
|
||||
#pragma region Hidden Engine Stuff |
||||
public: |
||||
AoC2023() |
||||
{ |
||||
// Name your application
|
||||
std::string fileName="day"+std::to_string(DAY)+"_1.txt"; |
||||
if(runInput==FILE2){fileName="day"+std::to_string(DAY)+"_2.txt";} |
||||
std::ifstream file(fileName); |
||||
while(file.good()){ |
||||
std::string line; |
||||
std::getline(file,line); |
||||
lines.push_back(line); |
||||
} |
||||
|
||||
sAppName = "Advent of Code 2023 - Day "+std::to_string(DAY); |
||||
} |
||||
|
||||
public: |
||||
bool OnUserCreate() override |
||||
{ |
||||
|
||||
return true; |
||||
} |
||||
|
||||
bool OnUserUpdate(float fElapsedTime) override |
||||
{ |
||||
static std::thread aocSolver(&AoC2023::doStuff2,this); |
||||
|
||||
if(waitForRender){ |
||||
draw(); |
||||
waitForRender=false; |
||||
} |
||||
return true; |
||||
} |
||||
}; |
||||
|
||||
int main() |
||||
{ |
||||
AoC2023 game; |
||||
if (game.Construct(1280, 960, 2, 2)) |
||||
game.Start(); |
||||
return 0; |
||||
} |
||||
#pragma endregion |
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue