├── .gitignore ├── .vs └── Sudoku_GUI │ └── v16 │ ├── .suo │ ├── Browse.VC.db │ └── ipch │ └── AutoPCH │ ├── 53c8fdb9d5f48620 │ └── SUDOKU_GUI.ipch │ └── ea7c5a0851988ba0 │ └── SUDOKU_GUI.ipch ├── README.md ├── Sudoku_GUI.sln ├── Sudoku_GUI ├── Debug │ ├── Source.nativecodeanalysis.sarif │ ├── Source.nativecodeanalysis.xml │ ├── Source.obj │ ├── Sudoku_GUI.Build.CppClean.log │ ├── Sudoku_GUI.log │ ├── Sudoku_GUI.nativecodeanalysis.sarif │ ├── Sudoku_GUI.nativecodeanalysis.xml │ ├── Sudoku_GUI.obj │ ├── Sudoku_GUI.res │ ├── Sudoku_GUI.tlog │ │ ├── CL.command.1.tlog │ │ ├── CL.read.1.tlog │ │ ├── CL.write.1.tlog │ │ ├── Sudoku_GUI.lastbuildstate │ │ ├── link.command.1.tlog │ │ ├── link.read.1.tlog │ │ ├── link.write.1.tlog │ │ ├── rc.command.1.tlog │ │ ├── rc.read.1.tlog │ │ └── rc.write.1.tlog │ ├── Sudoku_GUI.vcxproj.FileListAbsolute.txt │ ├── Sudoku_solve.nativecodeanalysis.sarif │ ├── Sudoku_solve.nativecodeanalysis.xml │ ├── Sudoku_solve.obj │ ├── vc.nativecodeanalysis.all.xml │ ├── vc142.idb │ └── vc142.pdb ├── Resource.h ├── Source.cpp ├── Sudoku_GUI.aps ├── Sudoku_GUI.c ├── Sudoku_GUI.h ├── Sudoku_GUI.rc ├── Sudoku_GUI.vcxproj ├── Sudoku_GUI.vcxproj.filters ├── Sudoku_GUI.vcxproj.user ├── Sudoku_solve.c ├── framework.h ├── sudoku_macros.h └── targetver.h └── images ├── sudoku_gui_screen.JPG └── sudoku_icon.ico /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | ## 4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 5 | 6 | # User-specific files 7 | *.rsuser 8 | *.suo 9 | *.user 10 | *.userosscache 11 | *.sln.docstates 12 | 13 | # User-specific files (MonoDevelop/Xamarin Studio) 14 | *.userprefs 15 | 16 | # Build results 17 | [Dd]ebug/ 18 | [Dd]ebugPublic/ 19 | [Rr]elease/ 20 | [Rr]eleases/ 21 | x64/ 22 | x86/ 23 | [Aa][Rr][Mm]/ 24 | [Aa][Rr][Mm]64/ 25 | bld/ 26 | [Bb]in/ 27 | [Oo]bj/ 28 | [Ll]og/ 29 | 30 | # ignore debug file with executable 31 | /Debug/ 32 | 33 | # Visual Studio 2015/2017 cache/options directory 34 | .vs/ 35 | # Uncomment if you have tasks that create the project's static files in wwwroot 36 | #wwwroot/ 37 | 38 | # Visual Studio 2017 auto generated files 39 | Generated\ Files/ 40 | 41 | # MSTest test Results 42 | [Tt]est[Rr]esult*/ 43 | [Bb]uild[Ll]og.* 44 | 45 | # NUNIT 46 | *.VisualState.xml 47 | TestResult.xml 48 | 49 | # Build Results of an ATL Project 50 | [Dd]ebugPS/ 51 | [Rr]eleasePS/ 52 | dlldata.c 53 | 54 | # Benchmark Results 55 | BenchmarkDotNet.Artifacts/ 56 | 57 | # .NET Core 58 | project.lock.json 59 | project.fragment.lock.json 60 | artifacts/ 61 | 62 | # StyleCop 63 | StyleCopReport.xml 64 | 65 | # Files built by Visual Studio 66 | *_i.c 67 | *_p.c 68 | *_h.h 69 | *.ilk 70 | *.meta 71 | *.obj 72 | *.iobj 73 | *.pch 74 | *.pdb 75 | *.ipdb 76 | *.pgc 77 | *.pgd 78 | *.rsp 79 | *.sbr 80 | *.tlb 81 | *.tli 82 | *.tlh 83 | *.tmp 84 | *.tmp_proj 85 | *_wpftmp.csproj 86 | *.log 87 | *.vspscc 88 | *.vssscc 89 | .builds 90 | *.pidb 91 | *.svclog 92 | *.scc 93 | 94 | # Chutzpah Test files 95 | _Chutzpah* 96 | 97 | # Visual C++ cache files 98 | ipch/ 99 | *.aps 100 | *.ncb 101 | *.opendb 102 | *.opensdf 103 | *.sdf 104 | *.cachefile 105 | *.VC.db 106 | *.VC.VC.opendb 107 | 108 | # Visual Studio profiler 109 | *.psess 110 | *.vsp 111 | *.vspx 112 | *.sap 113 | 114 | # Visual Studio Trace Files 115 | *.e2e 116 | 117 | # TFS 2012 Local Workspace 118 | $tf/ 119 | 120 | # Guidance Automation Toolkit 121 | *.gpState 122 | 123 | # ReSharper is a .NET coding add-in 124 | _ReSharper*/ 125 | *.[Rr]e[Ss]harper 126 | *.DotSettings.user 127 | 128 | # JustCode is a .NET coding add-in 129 | .JustCode 130 | 131 | # TeamCity is a build add-in 132 | _TeamCity* 133 | 134 | # DotCover is a Code Coverage Tool 135 | *.dotCover 136 | 137 | # AxoCover is a Code Coverage Tool 138 | .axoCover/* 139 | !.axoCover/settings.json 140 | 141 | # Visual Studio code coverage results 142 | *.coverage 143 | *.coveragexml 144 | 145 | # NCrunch 146 | _NCrunch_* 147 | .*crunch*.local.xml 148 | nCrunchTemp_* 149 | 150 | # MightyMoose 151 | *.mm.* 152 | AutoTest.Net/ 153 | 154 | # Web workbench (sass) 155 | .sass-cache/ 156 | 157 | # Installshield output folder 158 | [Ee]xpress/ 159 | 160 | # DocProject is a documentation generator add-in 161 | DocProject/buildhelp/ 162 | DocProject/Help/*.HxT 163 | DocProject/Help/*.HxC 164 | DocProject/Help/*.hhc 165 | DocProject/Help/*.hhk 166 | DocProject/Help/*.hhp 167 | DocProject/Help/Html2 168 | DocProject/Help/html 169 | 170 | # Click-Once directory 171 | publish/ 172 | 173 | # Publish Web Output 174 | *.[Pp]ublish.xml 175 | *.azurePubxml 176 | # Note: Comment the next line if you want to checkin your web deploy settings, 177 | # but database connection strings (with potential passwords) will be unencrypted 178 | *.pubxml 179 | *.publishproj 180 | 181 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 182 | # checkin your Azure Web App publish settings, but sensitive information contained 183 | # in these scripts will be unencrypted 184 | PublishScripts/ 185 | 186 | # NuGet Packages 187 | *.nupkg 188 | # The packages folder can be ignored because of Package Restore 189 | **/[Pp]ackages/* 190 | # except build/, which is used as an MSBuild target. 191 | !**/[Pp]ackages/build/ 192 | # Uncomment if necessary however generally it will be regenerated when needed 193 | #!**/[Pp]ackages/repositories.config 194 | # NuGet v3's project.json files produces more ignorable files 195 | *.nuget.props 196 | *.nuget.targets 197 | 198 | # Microsoft Azure Build Output 199 | csx/ 200 | *.build.csdef 201 | 202 | # Microsoft Azure Emulator 203 | ecf/ 204 | rcf/ 205 | 206 | # Windows Store app package directories and files 207 | AppPackages/ 208 | BundleArtifacts/ 209 | Package.StoreAssociation.xml 210 | _pkginfo.txt 211 | *.appx 212 | 213 | # Visual Studio cache files 214 | # files ending in .cache can be ignored 215 | *.[Cc]ache 216 | # but keep track of directories ending in .cache 217 | !?*.[Cc]ache/ 218 | 219 | # Others 220 | ClientBin/ 221 | ~$* 222 | *~ 223 | *.dbmdl 224 | *.dbproj.schemaview 225 | *.jfm 226 | *.pfx 227 | *.publishsettings 228 | orleans.codegen.cs 229 | 230 | # Including strong name files can present a security risk 231 | # (https://github.com/github/gitignore/pull/2483#issue-259490424) 232 | #*.snk 233 | 234 | # Since there are multiple workflows, uncomment next line to ignore bower_components 235 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 236 | #bower_components/ 237 | 238 | # RIA/Silverlight projects 239 | Generated_Code/ 240 | 241 | # Backup & report files from converting an old project file 242 | # to a newer Visual Studio version. Backup files are not needed, 243 | # because we have git ;-) 244 | _UpgradeReport_Files/ 245 | Backup*/ 246 | UpgradeLog*.XML 247 | UpgradeLog*.htm 248 | ServiceFabricBackup/ 249 | *.rptproj.bak 250 | 251 | # SQL Server files 252 | *.mdf 253 | *.ldf 254 | *.ndf 255 | 256 | # Business Intelligence projects 257 | *.rdl.data 258 | *.bim.layout 259 | *.bim_*.settings 260 | *.rptproj.rsuser 261 | *- Backup*.rdl 262 | 263 | # Microsoft Fakes 264 | FakesAssemblies/ 265 | 266 | # GhostDoc plugin setting file 267 | *.GhostDoc.xml 268 | 269 | # Node.js Tools for Visual Studio 270 | .ntvs_analysis.dat 271 | node_modules/ 272 | 273 | # Visual Studio 6 build log 274 | *.plg 275 | 276 | # Visual Studio 6 workspace options file 277 | *.opt 278 | 279 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 280 | *.vbw 281 | 282 | # Visual Studio LightSwitch build output 283 | **/*.HTMLClient/GeneratedArtifacts 284 | **/*.DesktopClient/GeneratedArtifacts 285 | **/*.DesktopClient/ModelManifest.xml 286 | **/*.Server/GeneratedArtifacts 287 | **/*.Server/ModelManifest.xml 288 | _Pvt_Extensions 289 | 290 | # Paket dependency manager 291 | .paket/paket.exe 292 | paket-files/ 293 | 294 | # FAKE - F# Make 295 | .fake/ 296 | 297 | # JetBrains Rider 298 | .idea/ 299 | *.sln.iml 300 | 301 | # CodeRush personal settings 302 | .cr/personal 303 | 304 | # Python Tools for Visual Studio (PTVS) 305 | __pycache__/ 306 | *.pyc 307 | 308 | # Cake - Uncomment if you are using it 309 | # tools/** 310 | # !tools/packages.config 311 | 312 | # Tabs Studio 313 | *.tss 314 | 315 | # Telerik's JustMock configuration file 316 | *.jmconfig 317 | 318 | # BizTalk build output 319 | *.btp.cs 320 | *.btm.cs 321 | *.odx.cs 322 | *.xsd.cs 323 | 324 | # OpenCover UI analysis results 325 | OpenCover/ 326 | 327 | # Azure Stream Analytics local run output 328 | ASALocalRun/ 329 | 330 | # MSBuild Binary and Structured Log 331 | *.binlog 332 | 333 | # NVidia Nsight GPU debugger configuration file 334 | *.nvuser 335 | 336 | # MFractors (Xamarin productivity tool) working folder 337 | .mfractor/ 338 | 339 | # Local History for Visual Studio 340 | .localhistory/ 341 | 342 | # BeatPulse healthcheck temp database 343 | healthchecksdb -------------------------------------------------------------------------------- /.vs/Sudoku_GUI/v16/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/.vs/Sudoku_GUI/v16/.suo -------------------------------------------------------------------------------- /.vs/Sudoku_GUI/v16/Browse.VC.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/.vs/Sudoku_GUI/v16/Browse.VC.db -------------------------------------------------------------------------------- /.vs/Sudoku_GUI/v16/ipch/AutoPCH/53c8fdb9d5f48620/SUDOKU_GUI.ipch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/.vs/Sudoku_GUI/v16/ipch/AutoPCH/53c8fdb9d5f48620/SUDOKU_GUI.ipch -------------------------------------------------------------------------------- /.vs/Sudoku_GUI/v16/ipch/AutoPCH/ea7c5a0851988ba0/SUDOKU_GUI.ipch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/.vs/Sudoku_GUI/v16/ipch/AutoPCH/ea7c5a0851988ba0/SUDOKU_GUI.ipch -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # sudoku-solve-GUI 2 | 3 | This application is a graphical user interface which solves sudoku puzzles using the backtracking algorithm. 4 | 5 | 6 | 7 | This algorithm is made to solve puzzles with a finite number of solutions. The process of the backtracking algorithm is visualized in real-time by this GUI. 8 | 9 | The UI is made with Windows API (Win32). Users can enter their own sudoku or click File>Load Sudoku to load one of the 3 in local memory. 10 | 11 | Adjust the speed slider and click 'Solve' to watch the algorithm in action! Speed can be adjusted as puzzle is being solved. 12 | 13 | -------------------------------------------------------------------------------- /Sudoku_GUI.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.29926.136 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Sudoku_GUI", "Sudoku_GUI\Sudoku_GUI.vcxproj", "{14EB037F-0917-4955-9474-D2ADB99B9792}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Debug|x86 = Debug|x86 12 | Release|x64 = Release|x64 13 | Release|x86 = Release|x86 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {14EB037F-0917-4955-9474-D2ADB99B9792}.Debug|x64.ActiveCfg = Debug|x64 17 | {14EB037F-0917-4955-9474-D2ADB99B9792}.Debug|x64.Build.0 = Debug|x64 18 | {14EB037F-0917-4955-9474-D2ADB99B9792}.Debug|x86.ActiveCfg = Debug|Win32 19 | {14EB037F-0917-4955-9474-D2ADB99B9792}.Debug|x86.Build.0 = Debug|Win32 20 | {14EB037F-0917-4955-9474-D2ADB99B9792}.Release|x64.ActiveCfg = Release|x64 21 | {14EB037F-0917-4955-9474-D2ADB99B9792}.Release|x64.Build.0 = Release|x64 22 | {14EB037F-0917-4955-9474-D2ADB99B9792}.Release|x86.ActiveCfg = Release|Win32 23 | {14EB037F-0917-4955-9474-D2ADB99B9792}.Release|x86.Build.0 = Release|Win32 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | GlobalSection(ExtensibilityGlobals) = postSolution 29 | SolutionGuid = {8498AB02-89E8-4A75-8733-36D895A53426} 30 | EndGlobalSection 31 | EndGlobal 32 | -------------------------------------------------------------------------------- /Sudoku_GUI/Debug/Source.nativecodeanalysis.sarif: -------------------------------------------------------------------------------- 1 | { 2 | "version": "2.1.0", 3 | "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.4.json", 4 | "runs": [ 5 | { 6 | "results": [], 7 | "tool": { 8 | "driver": { 9 | "name": "PREfast", 10 | "fullName": "PREfast Code Analysis", 11 | "version": "14.25.28612.0" 12 | } 13 | }, 14 | "invocations": [ 15 | { 16 | "commandLine": "\"C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.25.28610\\bin\\HostX86\\x86\\c1xx.dll\" -ACf{1F7B090C-16DB-4822-966A-A93D26ED4681} -ACpmspft140.dll -Alint -D_PREFAST_ -D_AST_FE_ -Analyze -zm0x008C31A0 -il C:\\Users\\rahul\\AppData\\Local\\Temp\\_CL_67e7a6e5ast -typedil -f Source.cpp -Ze -D_MSC_EXTENSIONS -Zp8 -Gs -pc \\:/ -D_MSC_VER=1925 -D_MSC_FULL_VER=192528612 -D_MSC_BUILD=0 -D_WIN32 -D_M_IX86=600 -D_M_IX86_FP=2 -GR -D_CPPRTTI -nologo -W 3 -diagnostics:column -D_GUARDOVERFLOW_CRT_ALLOCATORS=1 -Ot -DCODE_ANALYSIS -DWIN32 -D_DEBUG -D_WINDOWS -D_UNICODE -DUNICODE -EHs -D_CPPUNWIND -EHc -D__MSVC_RUNTIME_CHECKS -RTCs -RTCu -MDd -D_DEBUG -D_MT -D_DLL -GS -D_M_FP_PRECISE -permissive- -Zc:wchar_t -Zc:forScope -FoDebug\\Source.obj -FdDebug\\vc142.pdb -Gd -analyze:projectdirectory C:\\Users\\rahul\\Desktop\\Dev_Projects\\Applications\\sudoku-solve-GUI\\Sudoku_GUI\\ -analyze:rulesetdirectory ;C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\Team Tools\\Static Analysis Tools\\\\Rule Sets; -analyze:ruleset C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\Team Tools\\Static Analysis Tools\\Rule Sets\\NativeRecommendedRules.ruleset -analyze:quiet -analyze:plugin C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.25.28610\\bin\\HostX86\\x86\\EspXEngine.dll -FC -errorreport:prompt -I C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.25.28610\\include -I C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.25.28610\\atlmfc\\include -I C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Auxiliary\\VS\\include -I C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.18362.0\\ucrt -I C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.18362.0\\um -I C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.18362.0\\shared -I C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.18362.0\\winrt -I C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.18362.0\\cppwinrt -I C:\\Program Files (x86)\\Windows Kits\\NETFXSDK\\4.8\\Include\\um", 17 | "executionSuccessful": true, 18 | "ruleConfigurationOverrides": [ 19 | { 20 | "configuration": { 21 | "enabled": true, 22 | "level": "warning" 23 | }, 24 | "descriptor": { 25 | "id": "C6001" 26 | } 27 | }, 28 | { 29 | "configuration": { 30 | "enabled": true, 31 | "level": "warning" 32 | }, 33 | "descriptor": { 34 | "id": "C6011" 35 | } 36 | }, 37 | { 38 | "configuration": { 39 | "enabled": true, 40 | "level": "warning" 41 | }, 42 | "descriptor": { 43 | "id": "C6029" 44 | } 45 | }, 46 | { 47 | "configuration": { 48 | "enabled": true, 49 | "level": "warning" 50 | }, 51 | "descriptor": { 52 | "id": "C6031" 53 | } 54 | }, 55 | { 56 | "configuration": { 57 | "enabled": true, 58 | "level": "warning" 59 | }, 60 | "descriptor": { 61 | "id": "C6053" 62 | } 63 | }, 64 | { 65 | "configuration": { 66 | "enabled": true, 67 | "level": "warning" 68 | }, 69 | "descriptor": { 70 | "id": "C6054" 71 | } 72 | }, 73 | { 74 | "configuration": { 75 | "enabled": true, 76 | "level": "warning" 77 | }, 78 | "descriptor": { 79 | "id": "C6059" 80 | } 81 | }, 82 | { 83 | "configuration": { 84 | "enabled": true, 85 | "level": "warning" 86 | }, 87 | "descriptor": { 88 | "id": "C6063" 89 | } 90 | }, 91 | { 92 | "configuration": { 93 | "enabled": true, 94 | "level": "warning" 95 | }, 96 | "descriptor": { 97 | "id": "C6064" 98 | } 99 | }, 100 | { 101 | "configuration": { 102 | "enabled": true, 103 | "level": "warning" 104 | }, 105 | "descriptor": { 106 | "id": "C6066" 107 | } 108 | }, 109 | { 110 | "configuration": { 111 | "enabled": true, 112 | "level": "warning" 113 | }, 114 | "descriptor": { 115 | "id": "C6067" 116 | } 117 | }, 118 | { 119 | "configuration": { 120 | "enabled": true, 121 | "level": "warning" 122 | }, 123 | "descriptor": { 124 | "id": "C6101" 125 | } 126 | }, 127 | { 128 | "configuration": { 129 | "enabled": true, 130 | "level": "warning" 131 | }, 132 | "descriptor": { 133 | "id": "C6200" 134 | } 135 | }, 136 | { 137 | "configuration": { 138 | "enabled": true, 139 | "level": "warning" 140 | }, 141 | "descriptor": { 142 | "id": "C6201" 143 | } 144 | }, 145 | { 146 | "configuration": { 147 | "enabled": true, 148 | "level": "warning" 149 | }, 150 | "descriptor": { 151 | "id": "C6214" 152 | } 153 | }, 154 | { 155 | "configuration": { 156 | "enabled": true, 157 | "level": "warning" 158 | }, 159 | "descriptor": { 160 | "id": "C6215" 161 | } 162 | }, 163 | { 164 | "configuration": { 165 | "enabled": true, 166 | "level": "warning" 167 | }, 168 | "descriptor": { 169 | "id": "C6216" 170 | } 171 | }, 172 | { 173 | "configuration": { 174 | "enabled": true, 175 | "level": "warning" 176 | }, 177 | "descriptor": { 178 | "id": "C6217" 179 | } 180 | }, 181 | { 182 | "configuration": { 183 | "enabled": true, 184 | "level": "warning" 185 | }, 186 | "descriptor": { 187 | "id": "C6220" 188 | } 189 | }, 190 | { 191 | "configuration": { 192 | "enabled": true, 193 | "level": "warning" 194 | }, 195 | "descriptor": { 196 | "id": "C6226" 197 | } 198 | }, 199 | { 200 | "configuration": { 201 | "enabled": true, 202 | "level": "warning" 203 | }, 204 | "descriptor": { 205 | "id": "C6230" 206 | } 207 | }, 208 | { 209 | "configuration": { 210 | "enabled": true, 211 | "level": "warning" 212 | }, 213 | "descriptor": { 214 | "id": "C6235" 215 | } 216 | }, 217 | { 218 | "configuration": { 219 | "enabled": true, 220 | "level": "warning" 221 | }, 222 | "descriptor": { 223 | "id": "C6236" 224 | } 225 | }, 226 | { 227 | "configuration": { 228 | "enabled": true, 229 | "level": "warning" 230 | }, 231 | "descriptor": { 232 | "id": "C6237" 233 | } 234 | }, 235 | { 236 | "configuration": { 237 | "enabled": true, 238 | "level": "warning" 239 | }, 240 | "descriptor": { 241 | "id": "C6242" 242 | } 243 | }, 244 | { 245 | "configuration": { 246 | "enabled": true, 247 | "level": "warning" 248 | }, 249 | "descriptor": { 250 | "id": "C6248" 251 | } 252 | }, 253 | { 254 | "configuration": { 255 | "enabled": true, 256 | "level": "warning" 257 | }, 258 | "descriptor": { 259 | "id": "C6250" 260 | } 261 | }, 262 | { 263 | "configuration": { 264 | "enabled": true, 265 | "level": "warning" 266 | }, 267 | "descriptor": { 268 | "id": "C6255" 269 | } 270 | }, 271 | { 272 | "configuration": { 273 | "enabled": true, 274 | "level": "warning" 275 | }, 276 | "descriptor": { 277 | "id": "C6258" 278 | } 279 | }, 280 | { 281 | "configuration": { 282 | "enabled": true, 283 | "level": "warning" 284 | }, 285 | "descriptor": { 286 | "id": "C6259" 287 | } 288 | }, 289 | { 290 | "configuration": { 291 | "enabled": true, 292 | "level": "warning" 293 | }, 294 | "descriptor": { 295 | "id": "C6260" 296 | } 297 | }, 298 | { 299 | "configuration": { 300 | "enabled": true, 301 | "level": "warning" 302 | }, 303 | "descriptor": { 304 | "id": "C6262" 305 | } 306 | }, 307 | { 308 | "configuration": { 309 | "enabled": true, 310 | "level": "warning" 311 | }, 312 | "descriptor": { 313 | "id": "C6263" 314 | } 315 | }, 316 | { 317 | "configuration": { 318 | "enabled": true, 319 | "level": "warning" 320 | }, 321 | "descriptor": { 322 | "id": "C6268" 323 | } 324 | }, 325 | { 326 | "configuration": { 327 | "enabled": true, 328 | "level": "warning" 329 | }, 330 | "descriptor": { 331 | "id": "C6269" 332 | } 333 | }, 334 | { 335 | "configuration": { 336 | "enabled": true, 337 | "level": "warning" 338 | }, 339 | "descriptor": { 340 | "id": "C6270" 341 | } 342 | }, 343 | { 344 | "configuration": { 345 | "enabled": true, 346 | "level": "warning" 347 | }, 348 | "descriptor": { 349 | "id": "C6271" 350 | } 351 | }, 352 | { 353 | "configuration": { 354 | "enabled": true, 355 | "level": "warning" 356 | }, 357 | "descriptor": { 358 | "id": "C6272" 359 | } 360 | }, 361 | { 362 | "configuration": { 363 | "enabled": true, 364 | "level": "warning" 365 | }, 366 | "descriptor": { 367 | "id": "C6273" 368 | } 369 | }, 370 | { 371 | "configuration": { 372 | "enabled": true, 373 | "level": "warning" 374 | }, 375 | "descriptor": { 376 | "id": "C6274" 377 | } 378 | }, 379 | { 380 | "configuration": { 381 | "enabled": true, 382 | "level": "warning" 383 | }, 384 | "descriptor": { 385 | "id": "C6276" 386 | } 387 | }, 388 | { 389 | "configuration": { 390 | "enabled": true, 391 | "level": "warning" 392 | }, 393 | "descriptor": { 394 | "id": "C6277" 395 | } 396 | }, 397 | { 398 | "configuration": { 399 | "enabled": true, 400 | "level": "warning" 401 | }, 402 | "descriptor": { 403 | "id": "C6278" 404 | } 405 | }, 406 | { 407 | "configuration": { 408 | "enabled": true, 409 | "level": "warning" 410 | }, 411 | "descriptor": { 412 | "id": "C6279" 413 | } 414 | }, 415 | { 416 | "configuration": { 417 | "enabled": true, 418 | "level": "warning" 419 | }, 420 | "descriptor": { 421 | "id": "C6280" 422 | } 423 | }, 424 | { 425 | "configuration": { 426 | "enabled": true, 427 | "level": "warning" 428 | }, 429 | "descriptor": { 430 | "id": "C6281" 431 | } 432 | }, 433 | { 434 | "configuration": { 435 | "enabled": true, 436 | "level": "warning" 437 | }, 438 | "descriptor": { 439 | "id": "C6282" 440 | } 441 | }, 442 | { 443 | "configuration": { 444 | "enabled": true, 445 | "level": "warning" 446 | }, 447 | "descriptor": { 448 | "id": "C6283" 449 | } 450 | }, 451 | { 452 | "configuration": { 453 | "enabled": true, 454 | "level": "warning" 455 | }, 456 | "descriptor": { 457 | "id": "C6284" 458 | } 459 | }, 460 | { 461 | "configuration": { 462 | "enabled": true, 463 | "level": "warning" 464 | }, 465 | "descriptor": { 466 | "id": "C6285" 467 | } 468 | }, 469 | { 470 | "configuration": { 471 | "enabled": true, 472 | "level": "warning" 473 | }, 474 | "descriptor": { 475 | "id": "C6286" 476 | } 477 | }, 478 | { 479 | "configuration": { 480 | "enabled": true, 481 | "level": "warning" 482 | }, 483 | "descriptor": { 484 | "id": "C6287" 485 | } 486 | }, 487 | { 488 | "configuration": { 489 | "enabled": true, 490 | "level": "warning" 491 | }, 492 | "descriptor": { 493 | "id": "C6288" 494 | } 495 | }, 496 | { 497 | "configuration": { 498 | "enabled": true, 499 | "level": "warning" 500 | }, 501 | "descriptor": { 502 | "id": "C6289" 503 | } 504 | }, 505 | { 506 | "configuration": { 507 | "enabled": true, 508 | "level": "warning" 509 | }, 510 | "descriptor": { 511 | "id": "C6290" 512 | } 513 | }, 514 | { 515 | "configuration": { 516 | "enabled": true, 517 | "level": "warning" 518 | }, 519 | "descriptor": { 520 | "id": "C6291" 521 | } 522 | }, 523 | { 524 | "configuration": { 525 | "enabled": true, 526 | "level": "warning" 527 | }, 528 | "descriptor": { 529 | "id": "C6292" 530 | } 531 | }, 532 | { 533 | "configuration": { 534 | "enabled": true, 535 | "level": "warning" 536 | }, 537 | "descriptor": { 538 | "id": "C6293" 539 | } 540 | }, 541 | { 542 | "configuration": { 543 | "enabled": true, 544 | "level": "warning" 545 | }, 546 | "descriptor": { 547 | "id": "C6294" 548 | } 549 | }, 550 | { 551 | "configuration": { 552 | "enabled": true, 553 | "level": "warning" 554 | }, 555 | "descriptor": { 556 | "id": "C6295" 557 | } 558 | }, 559 | { 560 | "configuration": { 561 | "enabled": true, 562 | "level": "warning" 563 | }, 564 | "descriptor": { 565 | "id": "C6296" 566 | } 567 | }, 568 | { 569 | "configuration": { 570 | "enabled": true, 571 | "level": "warning" 572 | }, 573 | "descriptor": { 574 | "id": "C6297" 575 | } 576 | }, 577 | { 578 | "configuration": { 579 | "enabled": true, 580 | "level": "warning" 581 | }, 582 | "descriptor": { 583 | "id": "C6299" 584 | } 585 | }, 586 | { 587 | "configuration": { 588 | "enabled": true, 589 | "level": "warning" 590 | }, 591 | "descriptor": { 592 | "id": "C6302" 593 | } 594 | }, 595 | { 596 | "configuration": { 597 | "enabled": true, 598 | "level": "warning" 599 | }, 600 | "descriptor": { 601 | "id": "C6303" 602 | } 603 | }, 604 | { 605 | "configuration": { 606 | "enabled": true, 607 | "level": "warning" 608 | }, 609 | "descriptor": { 610 | "id": "C6305" 611 | } 612 | }, 613 | { 614 | "configuration": { 615 | "enabled": true, 616 | "level": "warning" 617 | }, 618 | "descriptor": { 619 | "id": "C6306" 620 | } 621 | }, 622 | { 623 | "configuration": { 624 | "enabled": true, 625 | "level": "warning" 626 | }, 627 | "descriptor": { 628 | "id": "C6308" 629 | } 630 | }, 631 | { 632 | "configuration": { 633 | "enabled": true, 634 | "level": "warning" 635 | }, 636 | "descriptor": { 637 | "id": "C6310" 638 | } 639 | }, 640 | { 641 | "configuration": { 642 | "enabled": true, 643 | "level": "warning" 644 | }, 645 | "descriptor": { 646 | "id": "C6312" 647 | } 648 | }, 649 | { 650 | "configuration": { 651 | "enabled": true, 652 | "level": "warning" 653 | }, 654 | "descriptor": { 655 | "id": "C6314" 656 | } 657 | }, 658 | { 659 | "configuration": { 660 | "enabled": true, 661 | "level": "warning" 662 | }, 663 | "descriptor": { 664 | "id": "C6317" 665 | } 666 | }, 667 | { 668 | "configuration": { 669 | "enabled": true, 670 | "level": "warning" 671 | }, 672 | "descriptor": { 673 | "id": "C6318" 674 | } 675 | }, 676 | { 677 | "configuration": { 678 | "enabled": true, 679 | "level": "warning" 680 | }, 681 | "descriptor": { 682 | "id": "C6319" 683 | } 684 | }, 685 | { 686 | "configuration": { 687 | "enabled": true, 688 | "level": "warning" 689 | }, 690 | "descriptor": { 691 | "id": "C6324" 692 | } 693 | }, 694 | { 695 | "configuration": { 696 | "enabled": true, 697 | "level": "warning" 698 | }, 699 | "descriptor": { 700 | "id": "C6328" 701 | } 702 | }, 703 | { 704 | "configuration": { 705 | "enabled": true, 706 | "level": "warning" 707 | }, 708 | "descriptor": { 709 | "id": "C6331" 710 | } 711 | }, 712 | { 713 | "configuration": { 714 | "enabled": true, 715 | "level": "warning" 716 | }, 717 | "descriptor": { 718 | "id": "C6332" 719 | } 720 | }, 721 | { 722 | "configuration": { 723 | "enabled": true, 724 | "level": "warning" 725 | }, 726 | "descriptor": { 727 | "id": "C6333" 728 | } 729 | }, 730 | { 731 | "configuration": { 732 | "enabled": true, 733 | "level": "warning" 734 | }, 735 | "descriptor": { 736 | "id": "C6335" 737 | } 738 | }, 739 | { 740 | "configuration": { 741 | "enabled": true, 742 | "level": "warning" 743 | }, 744 | "descriptor": { 745 | "id": "C6381" 746 | } 747 | }, 748 | { 749 | "configuration": { 750 | "enabled": true, 751 | "level": "warning" 752 | }, 753 | "descriptor": { 754 | "id": "C6383" 755 | } 756 | }, 757 | { 758 | "configuration": { 759 | "enabled": true, 760 | "level": "warning" 761 | }, 762 | "descriptor": { 763 | "id": "C6384" 764 | } 765 | }, 766 | { 767 | "configuration": { 768 | "enabled": true, 769 | "level": "warning" 770 | }, 771 | "descriptor": { 772 | "id": "C6385" 773 | } 774 | }, 775 | { 776 | "configuration": { 777 | "enabled": true, 778 | "level": "warning" 779 | }, 780 | "descriptor": { 781 | "id": "C6386" 782 | } 783 | }, 784 | { 785 | "configuration": { 786 | "enabled": true, 787 | "level": "warning" 788 | }, 789 | "descriptor": { 790 | "id": "C6387" 791 | } 792 | }, 793 | { 794 | "configuration": { 795 | "enabled": true, 796 | "level": "warning" 797 | }, 798 | "descriptor": { 799 | "id": "C6388" 800 | } 801 | }, 802 | { 803 | "configuration": { 804 | "enabled": true, 805 | "level": "warning" 806 | }, 807 | "descriptor": { 808 | "id": "C6500" 809 | } 810 | }, 811 | { 812 | "configuration": { 813 | "enabled": true, 814 | "level": "warning" 815 | }, 816 | "descriptor": { 817 | "id": "C6501" 818 | } 819 | }, 820 | { 821 | "configuration": { 822 | "enabled": true, 823 | "level": "warning" 824 | }, 825 | "descriptor": { 826 | "id": "C6503" 827 | } 828 | }, 829 | { 830 | "configuration": { 831 | "enabled": true, 832 | "level": "warning" 833 | }, 834 | "descriptor": { 835 | "id": "C6504" 836 | } 837 | }, 838 | { 839 | "configuration": { 840 | "enabled": true, 841 | "level": "warning" 842 | }, 843 | "descriptor": { 844 | "id": "C6505" 845 | } 846 | }, 847 | { 848 | "configuration": { 849 | "enabled": true, 850 | "level": "warning" 851 | }, 852 | "descriptor": { 853 | "id": "C6506" 854 | } 855 | }, 856 | { 857 | "configuration": { 858 | "enabled": true, 859 | "level": "warning" 860 | }, 861 | "descriptor": { 862 | "id": "C6508" 863 | } 864 | }, 865 | { 866 | "configuration": { 867 | "enabled": true, 868 | "level": "warning" 869 | }, 870 | "descriptor": { 871 | "id": "C6509" 872 | } 873 | }, 874 | { 875 | "configuration": { 876 | "enabled": true, 877 | "level": "warning" 878 | }, 879 | "descriptor": { 880 | "id": "C6510" 881 | } 882 | }, 883 | { 884 | "configuration": { 885 | "enabled": true, 886 | "level": "warning" 887 | }, 888 | "descriptor": { 889 | "id": "C6511" 890 | } 891 | }, 892 | { 893 | "configuration": { 894 | "enabled": true, 895 | "level": "warning" 896 | }, 897 | "descriptor": { 898 | "id": "C6513" 899 | } 900 | }, 901 | { 902 | "configuration": { 903 | "enabled": true, 904 | "level": "warning" 905 | }, 906 | "descriptor": { 907 | "id": "C6514" 908 | } 909 | }, 910 | { 911 | "configuration": { 912 | "enabled": true, 913 | "level": "warning" 914 | }, 915 | "descriptor": { 916 | "id": "C6515" 917 | } 918 | }, 919 | { 920 | "configuration": { 921 | "enabled": true, 922 | "level": "warning" 923 | }, 924 | "descriptor": { 925 | "id": "C6516" 926 | } 927 | }, 928 | { 929 | "configuration": { 930 | "enabled": true, 931 | "level": "warning" 932 | }, 933 | "descriptor": { 934 | "id": "C6517" 935 | } 936 | }, 937 | { 938 | "configuration": { 939 | "enabled": true, 940 | "level": "warning" 941 | }, 942 | "descriptor": { 943 | "id": "C6518" 944 | } 945 | }, 946 | { 947 | "configuration": { 948 | "enabled": true, 949 | "level": "warning" 950 | }, 951 | "descriptor": { 952 | "id": "C6522" 953 | } 954 | }, 955 | { 956 | "configuration": { 957 | "enabled": true, 958 | "level": "warning" 959 | }, 960 | "descriptor": { 961 | "id": "C6525" 962 | } 963 | }, 964 | { 965 | "configuration": { 966 | "enabled": true, 967 | "level": "warning" 968 | }, 969 | "descriptor": { 970 | "id": "C6527" 971 | } 972 | }, 973 | { 974 | "configuration": { 975 | "enabled": true, 976 | "level": "warning" 977 | }, 978 | "descriptor": { 979 | "id": "C6530" 980 | } 981 | }, 982 | { 983 | "configuration": { 984 | "enabled": true, 985 | "level": "warning" 986 | }, 987 | "descriptor": { 988 | "id": "C6540" 989 | } 990 | }, 991 | { 992 | "configuration": { 993 | "enabled": true, 994 | "level": "warning" 995 | }, 996 | "descriptor": { 997 | "id": "C6551" 998 | } 999 | }, 1000 | { 1001 | "configuration": { 1002 | "enabled": true, 1003 | "level": "warning" 1004 | }, 1005 | "descriptor": { 1006 | "id": "C6552" 1007 | } 1008 | }, 1009 | { 1010 | "configuration": { 1011 | "enabled": true, 1012 | "level": "warning" 1013 | }, 1014 | "descriptor": { 1015 | "id": "C6701" 1016 | } 1017 | }, 1018 | { 1019 | "configuration": { 1020 | "enabled": true, 1021 | "level": "warning" 1022 | }, 1023 | "descriptor": { 1024 | "id": "C6702" 1025 | } 1026 | }, 1027 | { 1028 | "configuration": { 1029 | "enabled": true, 1030 | "level": "warning" 1031 | }, 1032 | "descriptor": { 1033 | "id": "C6703" 1034 | } 1035 | }, 1036 | { 1037 | "configuration": { 1038 | "enabled": true, 1039 | "level": "warning" 1040 | }, 1041 | "descriptor": { 1042 | "id": "C6704" 1043 | } 1044 | }, 1045 | { 1046 | "configuration": { 1047 | "enabled": true, 1048 | "level": "warning" 1049 | }, 1050 | "descriptor": { 1051 | "id": "C6705" 1052 | } 1053 | }, 1054 | { 1055 | "configuration": { 1056 | "enabled": true, 1057 | "level": "warning" 1058 | }, 1059 | "descriptor": { 1060 | "id": "C6706" 1061 | } 1062 | }, 1063 | { 1064 | "configuration": { 1065 | "enabled": true, 1066 | "level": "warning" 1067 | }, 1068 | "descriptor": { 1069 | "id": "C6993" 1070 | } 1071 | }, 1072 | { 1073 | "configuration": { 1074 | "enabled": true, 1075 | "level": "warning" 1076 | }, 1077 | "descriptor": { 1078 | "id": "C6995" 1079 | } 1080 | }, 1081 | { 1082 | "configuration": { 1083 | "enabled": true, 1084 | "level": "warning" 1085 | }, 1086 | "descriptor": { 1087 | "id": "C6997" 1088 | } 1089 | }, 1090 | { 1091 | "configuration": { 1092 | "enabled": true, 1093 | "level": "warning" 1094 | }, 1095 | "descriptor": { 1096 | "id": "C26100" 1097 | } 1098 | }, 1099 | { 1100 | "configuration": { 1101 | "enabled": true, 1102 | "level": "warning" 1103 | }, 1104 | "descriptor": { 1105 | "id": "C26101" 1106 | } 1107 | }, 1108 | { 1109 | "configuration": { 1110 | "enabled": true, 1111 | "level": "warning" 1112 | }, 1113 | "descriptor": { 1114 | "id": "C26110" 1115 | } 1116 | }, 1117 | { 1118 | "configuration": { 1119 | "enabled": true, 1120 | "level": "warning" 1121 | }, 1122 | "descriptor": { 1123 | "id": "C26111" 1124 | } 1125 | }, 1126 | { 1127 | "configuration": { 1128 | "enabled": true, 1129 | "level": "warning" 1130 | }, 1131 | "descriptor": { 1132 | "id": "C26112" 1133 | } 1134 | }, 1135 | { 1136 | "configuration": { 1137 | "enabled": true, 1138 | "level": "warning" 1139 | }, 1140 | "descriptor": { 1141 | "id": "C26115" 1142 | } 1143 | }, 1144 | { 1145 | "configuration": { 1146 | "enabled": true, 1147 | "level": "warning" 1148 | }, 1149 | "descriptor": { 1150 | "id": "C26116" 1151 | } 1152 | }, 1153 | { 1154 | "configuration": { 1155 | "enabled": true, 1156 | "level": "warning" 1157 | }, 1158 | "descriptor": { 1159 | "id": "C26117" 1160 | } 1161 | }, 1162 | { 1163 | "configuration": { 1164 | "enabled": true, 1165 | "level": "warning" 1166 | }, 1167 | "descriptor": { 1168 | "id": "C26140" 1169 | } 1170 | }, 1171 | { 1172 | "configuration": { 1173 | "enabled": true, 1174 | "level": "warning" 1175 | }, 1176 | "descriptor": { 1177 | "id": "C26437" 1178 | } 1179 | }, 1180 | { 1181 | "configuration": { 1182 | "enabled": true, 1183 | "level": "warning" 1184 | }, 1185 | "descriptor": { 1186 | "id": "C26439" 1187 | } 1188 | }, 1189 | { 1190 | "configuration": { 1191 | "enabled": true, 1192 | "level": "warning" 1193 | }, 1194 | "descriptor": { 1195 | "id": "C26441" 1196 | } 1197 | }, 1198 | { 1199 | "configuration": { 1200 | "enabled": true, 1201 | "level": "warning" 1202 | }, 1203 | "descriptor": { 1204 | "id": "C26444" 1205 | } 1206 | }, 1207 | { 1208 | "configuration": { 1209 | "enabled": true, 1210 | "level": "warning" 1211 | }, 1212 | "descriptor": { 1213 | "id": "C26449" 1214 | } 1215 | }, 1216 | { 1217 | "configuration": { 1218 | "enabled": true, 1219 | "level": "warning" 1220 | }, 1221 | "descriptor": { 1222 | "id": "C26450" 1223 | } 1224 | }, 1225 | { 1226 | "configuration": { 1227 | "enabled": true, 1228 | "level": "warning" 1229 | }, 1230 | "descriptor": { 1231 | "id": "C26451" 1232 | } 1233 | }, 1234 | { 1235 | "configuration": { 1236 | "enabled": true, 1237 | "level": "warning" 1238 | }, 1239 | "descriptor": { 1240 | "id": "C26452" 1241 | } 1242 | }, 1243 | { 1244 | "configuration": { 1245 | "enabled": true, 1246 | "level": "warning" 1247 | }, 1248 | "descriptor": { 1249 | "id": "C26453" 1250 | } 1251 | }, 1252 | { 1253 | "configuration": { 1254 | "enabled": true, 1255 | "level": "warning" 1256 | }, 1257 | "descriptor": { 1258 | "id": "C26454" 1259 | } 1260 | }, 1261 | { 1262 | "configuration": { 1263 | "enabled": true, 1264 | "level": "warning" 1265 | }, 1266 | "descriptor": { 1267 | "id": "C26478" 1268 | } 1269 | }, 1270 | { 1271 | "configuration": { 1272 | "enabled": true, 1273 | "level": "warning" 1274 | }, 1275 | "descriptor": { 1276 | "id": "C26495" 1277 | } 1278 | }, 1279 | { 1280 | "configuration": { 1281 | "enabled": true, 1282 | "level": "warning" 1283 | }, 1284 | "descriptor": { 1285 | "id": "C26498" 1286 | } 1287 | }, 1288 | { 1289 | "configuration": { 1290 | "enabled": true, 1291 | "level": "warning" 1292 | }, 1293 | "descriptor": { 1294 | "id": "C26812" 1295 | } 1296 | }, 1297 | { 1298 | "configuration": { 1299 | "enabled": true, 1300 | "level": "warning" 1301 | }, 1302 | "descriptor": { 1303 | "id": "C28020" 1304 | } 1305 | }, 1306 | { 1307 | "configuration": { 1308 | "enabled": true, 1309 | "level": "warning" 1310 | }, 1311 | "descriptor": { 1312 | "id": "C28021" 1313 | } 1314 | }, 1315 | { 1316 | "configuration": { 1317 | "enabled": true, 1318 | "level": "warning" 1319 | }, 1320 | "descriptor": { 1321 | "id": "C28022" 1322 | } 1323 | }, 1324 | { 1325 | "configuration": { 1326 | "enabled": true, 1327 | "level": "warning" 1328 | }, 1329 | "descriptor": { 1330 | "id": "C28023" 1331 | } 1332 | }, 1333 | { 1334 | "configuration": { 1335 | "enabled": true, 1336 | "level": "warning" 1337 | }, 1338 | "descriptor": { 1339 | "id": "C28024" 1340 | } 1341 | }, 1342 | { 1343 | "configuration": { 1344 | "enabled": true, 1345 | "level": "warning" 1346 | }, 1347 | "descriptor": { 1348 | "id": "C28039" 1349 | } 1350 | }, 1351 | { 1352 | "configuration": { 1353 | "enabled": true, 1354 | "level": "warning" 1355 | }, 1356 | "descriptor": { 1357 | "id": "C28112" 1358 | } 1359 | }, 1360 | { 1361 | "configuration": { 1362 | "enabled": true, 1363 | "level": "warning" 1364 | }, 1365 | "descriptor": { 1366 | "id": "C28113" 1367 | } 1368 | }, 1369 | { 1370 | "configuration": { 1371 | "enabled": true, 1372 | "level": "warning" 1373 | }, 1374 | "descriptor": { 1375 | "id": "C28125" 1376 | } 1377 | }, 1378 | { 1379 | "configuration": { 1380 | "enabled": true, 1381 | "level": "warning" 1382 | }, 1383 | "descriptor": { 1384 | "id": "C28137" 1385 | } 1386 | }, 1387 | { 1388 | "configuration": { 1389 | "enabled": true, 1390 | "level": "warning" 1391 | }, 1392 | "descriptor": { 1393 | "id": "C28138" 1394 | } 1395 | }, 1396 | { 1397 | "configuration": { 1398 | "enabled": true, 1399 | "level": "warning" 1400 | }, 1401 | "descriptor": { 1402 | "id": "C28159" 1403 | } 1404 | }, 1405 | { 1406 | "configuration": { 1407 | "enabled": true, 1408 | "level": "warning" 1409 | }, 1410 | "descriptor": { 1411 | "id": "C28160" 1412 | } 1413 | }, 1414 | { 1415 | "configuration": { 1416 | "enabled": true, 1417 | "level": "warning" 1418 | }, 1419 | "descriptor": { 1420 | "id": "C28163" 1421 | } 1422 | }, 1423 | { 1424 | "configuration": { 1425 | "enabled": true, 1426 | "level": "warning" 1427 | }, 1428 | "descriptor": { 1429 | "id": "C28164" 1430 | } 1431 | }, 1432 | { 1433 | "configuration": { 1434 | "enabled": true, 1435 | "level": "warning" 1436 | }, 1437 | "descriptor": { 1438 | "id": "C28182" 1439 | } 1440 | }, 1441 | { 1442 | "configuration": { 1443 | "enabled": true, 1444 | "level": "warning" 1445 | }, 1446 | "descriptor": { 1447 | "id": "C28183" 1448 | } 1449 | }, 1450 | { 1451 | "configuration": { 1452 | "enabled": true, 1453 | "level": "warning" 1454 | }, 1455 | "descriptor": { 1456 | "id": "C28193" 1457 | } 1458 | }, 1459 | { 1460 | "configuration": { 1461 | "enabled": true, 1462 | "level": "warning" 1463 | }, 1464 | "descriptor": { 1465 | "id": "C28196" 1466 | } 1467 | }, 1468 | { 1469 | "configuration": { 1470 | "enabled": true, 1471 | "level": "warning" 1472 | }, 1473 | "descriptor": { 1474 | "id": "C28202" 1475 | } 1476 | }, 1477 | { 1478 | "configuration": { 1479 | "enabled": true, 1480 | "level": "warning" 1481 | }, 1482 | "descriptor": { 1483 | "id": "C28203" 1484 | } 1485 | }, 1486 | { 1487 | "configuration": { 1488 | "enabled": true, 1489 | "level": "warning" 1490 | }, 1491 | "descriptor": { 1492 | "id": "C28205" 1493 | } 1494 | }, 1495 | { 1496 | "configuration": { 1497 | "enabled": true, 1498 | "level": "warning" 1499 | }, 1500 | "descriptor": { 1501 | "id": "C28206" 1502 | } 1503 | }, 1504 | { 1505 | "configuration": { 1506 | "enabled": true, 1507 | "level": "warning" 1508 | }, 1509 | "descriptor": { 1510 | "id": "C28207" 1511 | } 1512 | }, 1513 | { 1514 | "configuration": { 1515 | "enabled": true, 1516 | "level": "warning" 1517 | }, 1518 | "descriptor": { 1519 | "id": "C28209" 1520 | } 1521 | }, 1522 | { 1523 | "configuration": { 1524 | "enabled": true, 1525 | "level": "warning" 1526 | }, 1527 | "descriptor": { 1528 | "id": "C28210" 1529 | } 1530 | }, 1531 | { 1532 | "configuration": { 1533 | "enabled": true, 1534 | "level": "warning" 1535 | }, 1536 | "descriptor": { 1537 | "id": "C28211" 1538 | } 1539 | }, 1540 | { 1541 | "configuration": { 1542 | "enabled": true, 1543 | "level": "warning" 1544 | }, 1545 | "descriptor": { 1546 | "id": "C28212" 1547 | } 1548 | }, 1549 | { 1550 | "configuration": { 1551 | "enabled": true, 1552 | "level": "warning" 1553 | }, 1554 | "descriptor": { 1555 | "id": "C28213" 1556 | } 1557 | }, 1558 | { 1559 | "configuration": { 1560 | "enabled": true, 1561 | "level": "warning" 1562 | }, 1563 | "descriptor": { 1564 | "id": "C28214" 1565 | } 1566 | }, 1567 | { 1568 | "configuration": { 1569 | "enabled": true, 1570 | "level": "warning" 1571 | }, 1572 | "descriptor": { 1573 | "id": "C28215" 1574 | } 1575 | }, 1576 | { 1577 | "configuration": { 1578 | "enabled": true, 1579 | "level": "warning" 1580 | }, 1581 | "descriptor": { 1582 | "id": "C28216" 1583 | } 1584 | }, 1585 | { 1586 | "configuration": { 1587 | "enabled": true, 1588 | "level": "warning" 1589 | }, 1590 | "descriptor": { 1591 | "id": "C28217" 1592 | } 1593 | }, 1594 | { 1595 | "configuration": { 1596 | "enabled": true, 1597 | "level": "warning" 1598 | }, 1599 | "descriptor": { 1600 | "id": "C28218" 1601 | } 1602 | }, 1603 | { 1604 | "configuration": { 1605 | "enabled": true, 1606 | "level": "warning" 1607 | }, 1608 | "descriptor": { 1609 | "id": "C28219" 1610 | } 1611 | }, 1612 | { 1613 | "configuration": { 1614 | "enabled": true, 1615 | "level": "warning" 1616 | }, 1617 | "descriptor": { 1618 | "id": "C28220" 1619 | } 1620 | }, 1621 | { 1622 | "configuration": { 1623 | "enabled": true, 1624 | "level": "warning" 1625 | }, 1626 | "descriptor": { 1627 | "id": "C28221" 1628 | } 1629 | }, 1630 | { 1631 | "configuration": { 1632 | "enabled": true, 1633 | "level": "warning" 1634 | }, 1635 | "descriptor": { 1636 | "id": "C28222" 1637 | } 1638 | }, 1639 | { 1640 | "configuration": { 1641 | "enabled": true, 1642 | "level": "warning" 1643 | }, 1644 | "descriptor": { 1645 | "id": "C28223" 1646 | } 1647 | }, 1648 | { 1649 | "configuration": { 1650 | "enabled": true, 1651 | "level": "warning" 1652 | }, 1653 | "descriptor": { 1654 | "id": "C28224" 1655 | } 1656 | }, 1657 | { 1658 | "configuration": { 1659 | "enabled": true, 1660 | "level": "warning" 1661 | }, 1662 | "descriptor": { 1663 | "id": "C28225" 1664 | } 1665 | }, 1666 | { 1667 | "configuration": { 1668 | "enabled": true, 1669 | "level": "warning" 1670 | }, 1671 | "descriptor": { 1672 | "id": "C28226" 1673 | } 1674 | }, 1675 | { 1676 | "configuration": { 1677 | "enabled": true, 1678 | "level": "warning" 1679 | }, 1680 | "descriptor": { 1681 | "id": "C28227" 1682 | } 1683 | }, 1684 | { 1685 | "configuration": { 1686 | "enabled": true, 1687 | "level": "warning" 1688 | }, 1689 | "descriptor": { 1690 | "id": "C28228" 1691 | } 1692 | }, 1693 | { 1694 | "configuration": { 1695 | "enabled": true, 1696 | "level": "warning" 1697 | }, 1698 | "descriptor": { 1699 | "id": "C28229" 1700 | } 1701 | }, 1702 | { 1703 | "configuration": { 1704 | "enabled": true, 1705 | "level": "warning" 1706 | }, 1707 | "descriptor": { 1708 | "id": "C28230" 1709 | } 1710 | }, 1711 | { 1712 | "configuration": { 1713 | "enabled": true, 1714 | "level": "warning" 1715 | }, 1716 | "descriptor": { 1717 | "id": "C28231" 1718 | } 1719 | }, 1720 | { 1721 | "configuration": { 1722 | "enabled": true, 1723 | "level": "warning" 1724 | }, 1725 | "descriptor": { 1726 | "id": "C28232" 1727 | } 1728 | }, 1729 | { 1730 | "configuration": { 1731 | "enabled": true, 1732 | "level": "warning" 1733 | }, 1734 | "descriptor": { 1735 | "id": "C28233" 1736 | } 1737 | }, 1738 | { 1739 | "configuration": { 1740 | "enabled": true, 1741 | "level": "warning" 1742 | }, 1743 | "descriptor": { 1744 | "id": "C28234" 1745 | } 1746 | }, 1747 | { 1748 | "configuration": { 1749 | "enabled": true, 1750 | "level": "warning" 1751 | }, 1752 | "descriptor": { 1753 | "id": "C28235" 1754 | } 1755 | }, 1756 | { 1757 | "configuration": { 1758 | "enabled": true, 1759 | "level": "warning" 1760 | }, 1761 | "descriptor": { 1762 | "id": "C28236" 1763 | } 1764 | }, 1765 | { 1766 | "configuration": { 1767 | "enabled": true, 1768 | "level": "warning" 1769 | }, 1770 | "descriptor": { 1771 | "id": "C28237" 1772 | } 1773 | }, 1774 | { 1775 | "configuration": { 1776 | "enabled": true, 1777 | "level": "warning" 1778 | }, 1779 | "descriptor": { 1780 | "id": "C28238" 1781 | } 1782 | }, 1783 | { 1784 | "configuration": { 1785 | "enabled": true, 1786 | "level": "warning" 1787 | }, 1788 | "descriptor": { 1789 | "id": "C28239" 1790 | } 1791 | }, 1792 | { 1793 | "configuration": { 1794 | "enabled": true, 1795 | "level": "warning" 1796 | }, 1797 | "descriptor": { 1798 | "id": "C28240" 1799 | } 1800 | }, 1801 | { 1802 | "configuration": { 1803 | "enabled": true, 1804 | "level": "warning" 1805 | }, 1806 | "descriptor": { 1807 | "id": "C28241" 1808 | } 1809 | }, 1810 | { 1811 | "configuration": { 1812 | "enabled": true, 1813 | "level": "warning" 1814 | }, 1815 | "descriptor": { 1816 | "id": "C28243" 1817 | } 1818 | }, 1819 | { 1820 | "configuration": { 1821 | "enabled": true, 1822 | "level": "warning" 1823 | }, 1824 | "descriptor": { 1825 | "id": "C28244" 1826 | } 1827 | }, 1828 | { 1829 | "configuration": { 1830 | "enabled": true, 1831 | "level": "warning" 1832 | }, 1833 | "descriptor": { 1834 | "id": "C28245" 1835 | } 1836 | }, 1837 | { 1838 | "configuration": { 1839 | "enabled": true, 1840 | "level": "warning" 1841 | }, 1842 | "descriptor": { 1843 | "id": "C28246" 1844 | } 1845 | }, 1846 | { 1847 | "configuration": { 1848 | "enabled": true, 1849 | "level": "warning" 1850 | }, 1851 | "descriptor": { 1852 | "id": "C28250" 1853 | } 1854 | }, 1855 | { 1856 | "configuration": { 1857 | "enabled": true, 1858 | "level": "warning" 1859 | }, 1860 | "descriptor": { 1861 | "id": "C28251" 1862 | } 1863 | }, 1864 | { 1865 | "configuration": { 1866 | "enabled": true, 1867 | "level": "warning" 1868 | }, 1869 | "descriptor": { 1870 | "id": "C28252" 1871 | } 1872 | }, 1873 | { 1874 | "configuration": { 1875 | "enabled": true, 1876 | "level": "warning" 1877 | }, 1878 | "descriptor": { 1879 | "id": "C28253" 1880 | } 1881 | }, 1882 | { 1883 | "configuration": { 1884 | "enabled": true, 1885 | "level": "warning" 1886 | }, 1887 | "descriptor": { 1888 | "id": "C28254" 1889 | } 1890 | }, 1891 | { 1892 | "configuration": { 1893 | "enabled": true, 1894 | "level": "warning" 1895 | }, 1896 | "descriptor": { 1897 | "id": "C28262" 1898 | } 1899 | }, 1900 | { 1901 | "configuration": { 1902 | "enabled": true, 1903 | "level": "warning" 1904 | }, 1905 | "descriptor": { 1906 | "id": "C28263" 1907 | } 1908 | }, 1909 | { 1910 | "configuration": { 1911 | "enabled": true, 1912 | "level": "warning" 1913 | }, 1914 | "descriptor": { 1915 | "id": "C28267" 1916 | } 1917 | }, 1918 | { 1919 | "configuration": { 1920 | "enabled": true, 1921 | "level": "warning" 1922 | }, 1923 | "descriptor": { 1924 | "id": "C28272" 1925 | } 1926 | }, 1927 | { 1928 | "configuration": { 1929 | "enabled": true, 1930 | "level": "warning" 1931 | }, 1932 | "descriptor": { 1933 | "id": "C28273" 1934 | } 1935 | }, 1936 | { 1937 | "configuration": { 1938 | "enabled": true, 1939 | "level": "warning" 1940 | }, 1941 | "descriptor": { 1942 | "id": "C28275" 1943 | } 1944 | }, 1945 | { 1946 | "configuration": { 1947 | "enabled": true, 1948 | "level": "warning" 1949 | }, 1950 | "descriptor": { 1951 | "id": "C28279" 1952 | } 1953 | }, 1954 | { 1955 | "configuration": { 1956 | "enabled": true, 1957 | "level": "warning" 1958 | }, 1959 | "descriptor": { 1960 | "id": "C28280" 1961 | } 1962 | }, 1963 | { 1964 | "configuration": { 1965 | "enabled": true, 1966 | "level": "warning" 1967 | }, 1968 | "descriptor": { 1969 | "id": "C28282" 1970 | } 1971 | }, 1972 | { 1973 | "configuration": { 1974 | "enabled": true, 1975 | "level": "warning" 1976 | }, 1977 | "descriptor": { 1978 | "id": "C28285" 1979 | } 1980 | }, 1981 | { 1982 | "configuration": { 1983 | "enabled": true, 1984 | "level": "warning" 1985 | }, 1986 | "descriptor": { 1987 | "id": "C28286" 1988 | } 1989 | }, 1990 | { 1991 | "configuration": { 1992 | "enabled": true, 1993 | "level": "warning" 1994 | }, 1995 | "descriptor": { 1996 | "id": "C28287" 1997 | } 1998 | }, 1999 | { 2000 | "configuration": { 2001 | "enabled": true, 2002 | "level": "warning" 2003 | }, 2004 | "descriptor": { 2005 | "id": "C28288" 2006 | } 2007 | }, 2008 | { 2009 | "configuration": { 2010 | "enabled": true, 2011 | "level": "warning" 2012 | }, 2013 | "descriptor": { 2014 | "id": "C28289" 2015 | } 2016 | }, 2017 | { 2018 | "configuration": { 2019 | "enabled": true, 2020 | "level": "warning" 2021 | }, 2022 | "descriptor": { 2023 | "id": "C28290" 2024 | } 2025 | }, 2026 | { 2027 | "configuration": { 2028 | "enabled": true, 2029 | "level": "warning" 2030 | }, 2031 | "descriptor": { 2032 | "id": "C28291" 2033 | } 2034 | }, 2035 | { 2036 | "configuration": { 2037 | "enabled": true, 2038 | "level": "warning" 2039 | }, 2040 | "descriptor": { 2041 | "id": "C28300" 2042 | } 2043 | }, 2044 | { 2045 | "configuration": { 2046 | "enabled": true, 2047 | "level": "warning" 2048 | }, 2049 | "descriptor": { 2050 | "id": "C28301" 2051 | } 2052 | }, 2053 | { 2054 | "configuration": { 2055 | "enabled": true, 2056 | "level": "warning" 2057 | }, 2058 | "descriptor": { 2059 | "id": "C28302" 2060 | } 2061 | }, 2062 | { 2063 | "configuration": { 2064 | "enabled": true, 2065 | "level": "warning" 2066 | }, 2067 | "descriptor": { 2068 | "id": "C28303" 2069 | } 2070 | }, 2071 | { 2072 | "configuration": { 2073 | "enabled": true, 2074 | "level": "warning" 2075 | }, 2076 | "descriptor": { 2077 | "id": "C28304" 2078 | } 2079 | }, 2080 | { 2081 | "configuration": { 2082 | "enabled": true, 2083 | "level": "warning" 2084 | }, 2085 | "descriptor": { 2086 | "id": "C28305" 2087 | } 2088 | }, 2089 | { 2090 | "configuration": { 2091 | "enabled": true, 2092 | "level": "warning" 2093 | }, 2094 | "descriptor": { 2095 | "id": "C28306" 2096 | } 2097 | }, 2098 | { 2099 | "configuration": { 2100 | "enabled": true, 2101 | "level": "warning" 2102 | }, 2103 | "descriptor": { 2104 | "id": "C28307" 2105 | } 2106 | }, 2107 | { 2108 | "configuration": { 2109 | "enabled": true, 2110 | "level": "warning" 2111 | }, 2112 | "descriptor": { 2113 | "id": "C28308" 2114 | } 2115 | }, 2116 | { 2117 | "configuration": { 2118 | "enabled": true, 2119 | "level": "warning" 2120 | }, 2121 | "descriptor": { 2122 | "id": "C28309" 2123 | } 2124 | }, 2125 | { 2126 | "configuration": { 2127 | "enabled": true, 2128 | "level": "warning" 2129 | }, 2130 | "descriptor": { 2131 | "id": "C28350" 2132 | } 2133 | }, 2134 | { 2135 | "configuration": { 2136 | "enabled": true, 2137 | "level": "warning" 2138 | }, 2139 | "descriptor": { 2140 | "id": "C28351" 2141 | } 2142 | } 2143 | ] 2144 | } 2145 | ], 2146 | "artifacts": [ 2147 | { 2148 | "location": { 2149 | "uri": "file:///c:/users/rahul/desktop/dev_projects/applications/sudoku-solve-gui/sudoku_gui/source.cpp" 2150 | }, 2151 | "roles": [ 2152 | "analysisTarget", 2153 | "resultFile" 2154 | ] 2155 | } 2156 | ] 2157 | } 2158 | ] 2159 | } -------------------------------------------------------------------------------- /Sudoku_GUI/Debug/Source.nativecodeanalysis.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Sudoku_GUI/Debug/Source.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/Sudoku_GUI/Debug/Source.obj -------------------------------------------------------------------------------- /Sudoku_GUI/Debug/Sudoku_GUI.Build.CppClean.log: -------------------------------------------------------------------------------- 1 | c:\users\rahul\desktop\dev_projects\applications\sudoku-solve-gui\sudoku_gui\debug\vc142.pdb 2 | c:\users\rahul\desktop\dev_projects\applications\sudoku-solve-gui\sudoku_gui\debug\vc142.idb 3 | c:\users\rahul\desktop\dev_projects\applications\sudoku-solve-gui\sudoku_gui\debug\source.obj 4 | c:\users\rahul\desktop\dev_projects\applications\sudoku-solve-gui\sudoku_gui\debug\sudoku_solve.obj 5 | c:\users\rahul\desktop\dev_projects\applications\sudoku-solve-gui\sudoku_gui\debug\sudoku_gui.obj 6 | c:\users\rahul\desktop\dev_projects\applications\sudoku-solve-gui\debug\sudoku_gui.exe 7 | c:\users\rahul\desktop\dev_projects\applications\sudoku-solve-gui\debug\sudoku_gui.ilk 8 | c:\users\rahul\desktop\dev_projects\applications\sudoku-solve-gui\debug\sudoku_gui.pdb 9 | c:\users\rahul\desktop\dev_projects\applications\sudoku-solve-gui\sudoku_gui\debug\sudoku_gui.res 10 | c:\users\rahul\desktop\dev_projects\applications\sudoku-solve-gui\sudoku_gui\debug\sudoku_gui.obj.enc 11 | c:\users\rahul\desktop\dev_projects\applications\sudoku-solve-gui\sudoku_gui\debug\sudoku_solve.obj.enc 12 | c:\users\rahul\desktop\dev_projects\applications\sudoku-solve-gui\sudoku_gui\debug\sudoku_gui.tlog\cl.command.1.tlog 13 | c:\users\rahul\desktop\dev_projects\applications\sudoku-solve-gui\sudoku_gui\debug\sudoku_gui.tlog\cl.read.1.tlog 14 | c:\users\rahul\desktop\dev_projects\applications\sudoku-solve-gui\sudoku_gui\debug\sudoku_gui.tlog\cl.write.1.tlog 15 | c:\users\rahul\desktop\dev_projects\applications\sudoku-solve-gui\sudoku_gui\debug\sudoku_gui.tlog\link.command.1.tlog 16 | c:\users\rahul\desktop\dev_projects\applications\sudoku-solve-gui\sudoku_gui\debug\sudoku_gui.tlog\link.read.1.tlog 17 | c:\users\rahul\desktop\dev_projects\applications\sudoku-solve-gui\sudoku_gui\debug\sudoku_gui.tlog\link.write.1.tlog 18 | c:\users\rahul\desktop\dev_projects\applications\sudoku-solve-gui\sudoku_gui\debug\sudoku_gui.tlog\rc.command.1.tlog 19 | c:\users\rahul\desktop\dev_projects\applications\sudoku-solve-gui\sudoku_gui\debug\sudoku_gui.tlog\rc.read.1.tlog 20 | c:\users\rahul\desktop\dev_projects\applications\sudoku-solve-gui\sudoku_gui\debug\sudoku_gui.tlog\rc.write.1.tlog 21 | -------------------------------------------------------------------------------- /Sudoku_GUI/Debug/Sudoku_GUI.log: -------------------------------------------------------------------------------- 1 | <<<<<<< HEAD 2 |  Sudoku_solve.c 3 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\Sudoku_solve.c(162,98): warning C4047: 'function': 'LPARAM' differs in levels of indirection from 'Sudoku_Append_t *' 4 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\Sudoku_solve.c(162,98): warning C4024: 'SendMessageW': different types for formal and actual parameter 4 5 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\Sudoku_solve.c(298,54): warning C4047: 'function': 'WPARAM' differs in levels of indirection from 'void *' 6 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\Sudoku_solve.c(298,54): warning C4024: 'SendMessageW': different types for formal and actual parameter 3 7 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\Sudoku_solve.c(298,60): warning C4047: 'function': 'LPARAM' differs in levels of indirection from 'void *' 8 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\Sudoku_solve.c(298,60): warning C4024: 'SendMessageW': different types for formal and actual parameter 4 9 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\Sudoku_solve.c(323,94): warning C4047: 'function': 'LPARAM' differs in levels of indirection from 'Sudoku_Append_t *' 10 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\Sudoku_solve.c(323,94): warning C4024: 'SendMessageW': different types for formal and actual parameter 4 11 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\Sudoku_solve.c(337,98): warning C4047: 'function': 'LPARAM' differs in levels of indirection from 'Sudoku_Append_t *' 12 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\Sudoku_solve.c(337,98): warning C4024: 'SendMessageW': different types for formal and actual parameter 4 13 | Sudoku_GUI.vcxproj -> C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Debug\Sudoku_GUI.exe 14 | ======= 15 |  Sudoku_GUI.vcxproj -> D:\Rahul's Stuff\Developments\Applications\sudoku-solve-GUI\Debug\Sudoku_GUI.exe 16 | >>>>>>> 6cf18b8fa5f884ca243e367eb285c09506073178 17 | -------------------------------------------------------------------------------- /Sudoku_GUI/Debug/Sudoku_GUI.nativecodeanalysis.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 6 | Sudoku_GUI.c 7 | 37 8 | 13 9 | 10 | 28251 11 | Inconsistent annotation for 'WinMain': this instance has no annotations. See c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\winbase.h(933). 12 | WinMain 13 | WinMain@16 14 | 37 15 | 16 | 17 | 18 | 19 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 20 | Sudoku_GUI.c 21 | 157 22 | 31 23 | 24 | 6258 25 | Using TerminateThread does not allow proper thread clean up. 26 | WndProc 27 | WndProc@16 28 | 109 29 | 30 | 31 | 32 | 33 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 34 | Sudoku_GUI.c 35 | 196 36 | 31 37 | 38 | 6258 39 | Using TerminateThread does not allow proper thread clean up. 40 | WndProc 41 | WndProc@16 42 | 109 43 | 44 | 45 | 46 | 47 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 48 | Sudoku_GUI.c 49 | 247 50 | 30 51 | 52 | 6387 53 | '_Param_(3)' could be '0': this does not adhere to the specification for the function 'SetDlgItemTextW'. 54 | WndProc 55 | WndProc@16 56 | 109 57 | 1 58 | 4 59 | 60 | mspft 61 | 62 | 63 | 64 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 65 | Sudoku_GUI.c 66 | 111 67 | 12 68 | 69 | 70 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 71 | Sudoku_GUI.c 72 | 226 73 | 4 74 | 75 | 76 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 77 | Sudoku_GUI.c 78 | 228 79 | 16 80 | 81 | 82 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 83 | Sudoku_GUI.c 84 | 230 85 | 8 86 | 87 | 88 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 89 | Sudoku_GUI.c 90 | 233 91 | 24 92 | 93 | 94 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 95 | Sudoku_GUI.c 96 | 235 97 | 28 98 | 99 | 100 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 101 | Sudoku_GUI.c 102 | 236 103 | 16 104 | 105 | 106 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 107 | Sudoku_GUI.c 108 | 237 109 | 16 110 | 111 | 112 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 113 | Sudoku_GUI.c 114 | 238 115 | 16 116 | 117 | 118 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 119 | Sudoku_GUI.c 120 | 240 121 | 33 122 | 123 | 124 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 125 | Sudoku_GUI.c 126 | 245 127 | 38 128 | 129 | 130 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 131 | Sudoku_GUI.c 132 | 247 133 | 30 134 | 135 | 136 | 137 | 138 | 139 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 140 | Sudoku_GUI.c 141 | 138 142 | 29 143 | 144 | 6011 145 | Dereferencing NULL pointer 'sudokuData'. 146 | WndProc 147 | WndProc@16 148 | 109 149 | 1 150 | 4 151 | 152 | mspft 153 | 154 | 155 | 156 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 157 | Sudoku_GUI.c 158 | 111 159 | 12 160 | 161 | 162 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 163 | Sudoku_GUI.c 164 | 113 165 | 4 166 | 167 | 168 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 169 | Sudoku_GUI.c 170 | 115 171 | 12 172 | 173 | 174 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 175 | Sudoku_GUI.c 176 | 116 177 | 12 178 | 179 | 180 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 181 | Sudoku_GUI.c 182 | 119 183 | 16 184 | 185 | 186 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 187 | Sudoku_GUI.c 188 | 121 189 | 8 190 | 191 | 192 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 193 | Sudoku_GUI.c 194 | 123 195 | 16 196 | 197 | 198 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 199 | Sudoku_GUI.c 200 | 125 201 | 24 202 | 203 | 204 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 205 | Sudoku_GUI.c 206 | 126 207 | 18 208 | 209 | 210 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 211 | Sudoku_GUI.c 212 | 127 213 | 23 214 | 215 | 1 216 | declaration 217 | Essential 218 | 'sudokuData' may be NULL 219 | 220 | 221 | 222 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 223 | Sudoku_GUI.c 224 | 129 225 | 17 226 | 227 | 228 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 229 | Sudoku_GUI.c 230 | 132 231 | 21 232 | 233 | 234 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 235 | Sudoku_GUI.c 236 | 132 237 | 30 238 | 239 | 240 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 241 | Sudoku_GUI.c 242 | 134 243 | 30 244 | 245 | 246 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 247 | Sudoku_GUI.c 248 | 132 249 | 37 250 | 251 | 252 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 253 | Sudoku_GUI.c 254 | 132 255 | 30 256 | 257 | 258 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 259 | Sudoku_GUI.c 260 | 134 261 | 30 262 | 263 | 264 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 265 | Sudoku_GUI.c 266 | 132 267 | 37 268 | 269 | 270 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 271 | Sudoku_GUI.c 272 | 132 273 | 30 274 | 275 | 276 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 277 | Sudoku_GUI.c 278 | 138 279 | 29 280 | 281 | 2 282 | usage 283 | Essential 284 | 'sudokuData' is dereferenced, but may still be NULL 285 | 286 | 287 | 288 | 289 | 290 | 291 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 292 | Sudoku_GUI.c 293 | 422 294 | 16 295 | 296 | 6011 297 | Dereferencing NULL pointer 'grid'. 298 | addControls 299 | addControls 300 | 367 301 | 1 302 | 4 303 | 304 | mspft 305 | 306 | 307 | 308 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 309 | Sudoku_GUI.c 310 | 370 311 | 14 312 | 313 | 314 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 315 | Sudoku_GUI.c 316 | 371 317 | 14 318 | 319 | 320 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 321 | Sudoku_GUI.c 322 | 372 323 | 16 324 | 325 | 326 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 327 | Sudoku_GUI.c 328 | 375 329 | 8 330 | 331 | 332 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 333 | Sudoku_GUI.c 334 | 375 335 | 16 336 | 337 | 338 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 339 | Sudoku_GUI.c 340 | 375 341 | 24 342 | 343 | 344 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 345 | Sudoku_GUI.c 346 | 376 347 | 13 348 | 349 | 350 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 351 | Sudoku_GUI.c 352 | 376 353 | 22 354 | 355 | 356 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 357 | Sudoku_GUI.c 358 | 378 359 | 15 360 | 361 | 362 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 363 | Sudoku_GUI.c 364 | 379 365 | 15 366 | 367 | 368 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 369 | Sudoku_GUI.c 370 | 381 371 | 21 372 | 373 | 374 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 375 | Sudoku_GUI.c 376 | 382 377 | 18 378 | 379 | 380 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 381 | Sudoku_GUI.c 382 | 383 383 | 20 384 | 385 | 386 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 387 | Sudoku_GUI.c 388 | 376 389 | 28 390 | 391 | 392 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 393 | Sudoku_GUI.c 394 | 376 395 | 22 396 | 397 | 398 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 399 | Sudoku_GUI.c 400 | 378 401 | 15 402 | 403 | 404 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 405 | Sudoku_GUI.c 406 | 379 407 | 15 408 | 409 | 410 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 411 | Sudoku_GUI.c 412 | 381 413 | 21 414 | 415 | 416 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 417 | Sudoku_GUI.c 418 | 382 419 | 18 420 | 421 | 422 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 423 | Sudoku_GUI.c 424 | 383 425 | 20 426 | 427 | 428 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 429 | Sudoku_GUI.c 430 | 376 431 | 28 432 | 433 | 434 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 435 | Sudoku_GUI.c 436 | 376 437 | 22 438 | 439 | 440 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 441 | Sudoku_GUI.c 442 | 387 443 | 9 444 | 445 | 1 446 | declaration 447 | Essential 448 | 'grid' may be NULL 449 | 450 | 451 | 452 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 453 | Sudoku_GUI.c 454 | 388 455 | 8 456 | 457 | 458 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 459 | Sudoku_GUI.c 460 | 388 461 | 15 462 | 463 | 464 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 465 | Sudoku_GUI.c 466 | 388 467 | 22 468 | 469 | 470 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 471 | Sudoku_GUI.c 472 | 388 473 | 36 474 | 475 | 476 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 477 | Sudoku_GUI.c 478 | 388 479 | 51 480 | 481 | 482 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 483 | Sudoku_GUI.c 484 | 388 485 | 66 486 | 487 | 488 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 489 | Sudoku_GUI.c 490 | 388 491 | 90 492 | 493 | 494 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 495 | Sudoku_GUI.c 496 | 389 497 | 13 498 | 499 | 500 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 501 | Sudoku_GUI.c 502 | 389 503 | 22 504 | 505 | 2 506 | branch 507 | Full 508 | Enter this loop, (assume 'i<81') 509 | 510 | 511 | 512 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 513 | Sudoku_GUI.c 514 | 392 515 | 18 516 | 517 | 3 518 | branch 519 | Full 520 | Assume switch ( 'i%9' ) resolves to case 0: 521 | 522 | 523 | 524 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 525 | Sudoku_GUI.c 526 | 394 527 | 8 528 | 529 | 530 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 531 | Sudoku_GUI.c 532 | 395 533 | 20 534 | 535 | 536 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 537 | Sudoku_GUI.c 538 | 406 539 | 18 540 | 541 | 4 542 | branch 543 | Full 544 | Assume switch ( 'i/27' ) resolves to case 0: 545 | 546 | 547 | 548 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 549 | Sudoku_GUI.c 550 | 408 551 | 8 552 | 553 | 554 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 555 | Sudoku_GUI.c 556 | 409 557 | 20 558 | 559 | 560 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 561 | Sudoku_GUI.c 562 | 419 563 | 14 564 | 565 | 566 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 567 | Sudoku_GUI.c 568 | 420 569 | 14 570 | 571 | 572 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 573 | Sudoku_GUI.c 574 | 422 575 | 16 576 | 577 | 5 578 | usage 579 | Essential 580 | 'grid' is dereferenced, but may still be NULL 581 | 582 | 583 | 584 | 585 | 586 | 587 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 588 | Sudoku_GUI.c 589 | 490 590 | 22 591 | 592 | 6387 593 | '_Param_(3)' could be '0': this does not adhere to the specification for the function 'SetDlgItemTextW'. 594 | clearSudokuBoard 595 | clearSudokuBoard 596 | 484 597 | 1 598 | 4 599 | 600 | mspft 601 | 602 | 603 | 604 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 605 | Sudoku_GUI.c 606 | 486 607 | 13 608 | 609 | 610 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 611 | Sudoku_GUI.c 612 | 486 613 | 22 614 | 615 | 616 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 617 | Sudoku_GUI.c 618 | 488 619 | 12 620 | 621 | 622 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 623 | Sudoku_GUI.c 624 | 489 625 | 12 626 | 627 | 628 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 629 | Sudoku_GUI.c 630 | 490 631 | 22 632 | 633 | 634 | 635 | -------------------------------------------------------------------------------- /Sudoku_GUI/Debug/Sudoku_GUI.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/Sudoku_GUI/Debug/Sudoku_GUI.obj -------------------------------------------------------------------------------- /Sudoku_GUI/Debug/Sudoku_GUI.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/Sudoku_GUI/Debug/Sudoku_GUI.res -------------------------------------------------------------------------------- /Sudoku_GUI/Debug/Sudoku_GUI.tlog/CL.command.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/Sudoku_GUI/Debug/Sudoku_GUI.tlog/CL.command.1.tlog -------------------------------------------------------------------------------- /Sudoku_GUI/Debug/Sudoku_GUI.tlog/CL.read.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/Sudoku_GUI/Debug/Sudoku_GUI.tlog/CL.read.1.tlog -------------------------------------------------------------------------------- /Sudoku_GUI/Debug/Sudoku_GUI.tlog/CL.write.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/Sudoku_GUI/Debug/Sudoku_GUI.tlog/CL.write.1.tlog -------------------------------------------------------------------------------- /Sudoku_GUI/Debug/Sudoku_GUI.tlog/Sudoku_GUI.lastbuildstate: -------------------------------------------------------------------------------- 1 | PlatformToolSet=v142:VCToolArchitecture=Native32Bit:VCToolsVersion=14.25.28610:TargetPlatformVersion=10.0.18362.0: 2 | Debug|Win32|D:\Rahul's Stuff\Developments\Applications\sudoku-solve-GUI\| 3 | -------------------------------------------------------------------------------- /Sudoku_GUI/Debug/Sudoku_GUI.tlog/link.command.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/Sudoku_GUI/Debug/Sudoku_GUI.tlog/link.command.1.tlog -------------------------------------------------------------------------------- /Sudoku_GUI/Debug/Sudoku_GUI.tlog/link.read.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/Sudoku_GUI/Debug/Sudoku_GUI.tlog/link.read.1.tlog -------------------------------------------------------------------------------- /Sudoku_GUI/Debug/Sudoku_GUI.tlog/link.write.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/Sudoku_GUI/Debug/Sudoku_GUI.tlog/link.write.1.tlog -------------------------------------------------------------------------------- /Sudoku_GUI/Debug/Sudoku_GUI.tlog/rc.command.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/Sudoku_GUI/Debug/Sudoku_GUI.tlog/rc.command.1.tlog -------------------------------------------------------------------------------- /Sudoku_GUI/Debug/Sudoku_GUI.tlog/rc.read.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/Sudoku_GUI/Debug/Sudoku_GUI.tlog/rc.read.1.tlog -------------------------------------------------------------------------------- /Sudoku_GUI/Debug/Sudoku_GUI.tlog/rc.write.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/Sudoku_GUI/Debug/Sudoku_GUI.tlog/rc.write.1.tlog -------------------------------------------------------------------------------- /Sudoku_GUI/Debug/Sudoku_GUI.vcxproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/Sudoku_GUI/Debug/Sudoku_GUI.vcxproj.FileListAbsolute.txt -------------------------------------------------------------------------------- /Sudoku_GUI/Debug/Sudoku_solve.nativecodeanalysis.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Sudoku_GUI/Debug/Sudoku_solve.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/Sudoku_GUI/Debug/Sudoku_solve.obj -------------------------------------------------------------------------------- /Sudoku_GUI/Debug/vc.nativecodeanalysis.all.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 4 | Sudoku_GUI.c 5 | 37 6 | 13 7 | 8 | 28251 9 | Inconsistent annotation for 'WinMain': this instance has no annotations. See c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\winbase.h(933). 10 | WinMain 11 | WinMain@16 12 | 37 13 | 14 | 15 | 16 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 17 | Sudoku_GUI.c 18 | 157 19 | 31 20 | 21 | 6258 22 | Using TerminateThread does not allow proper thread clean up. 23 | WndProc 24 | WndProc@16 25 | 109 26 | 27 | 28 | 29 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 30 | Sudoku_GUI.c 31 | 196 32 | 31 33 | 34 | 6258 35 | Using TerminateThread does not allow proper thread clean up. 36 | WndProc 37 | WndProc@16 38 | 109 39 | 40 | 41 | 42 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 43 | Sudoku_GUI.c 44 | 247 45 | 30 46 | 47 | 6387 48 | '_Param_(3)' could be '0': this does not adhere to the specification for the function 'SetDlgItemTextW'. 49 | WndProc 50 | WndProc@16 51 | 109 52 | 1 53 | 4 54 | 55 | mspft 56 | 57 | 58 | 59 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 60 | Sudoku_GUI.c 61 | 111 62 | 12 63 | 64 | 65 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 66 | Sudoku_GUI.c 67 | 226 68 | 4 69 | 70 | 71 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 72 | Sudoku_GUI.c 73 | 228 74 | 16 75 | 76 | 77 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 78 | Sudoku_GUI.c 79 | 230 80 | 8 81 | 82 | 83 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 84 | Sudoku_GUI.c 85 | 233 86 | 24 87 | 88 | 89 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 90 | Sudoku_GUI.c 91 | 235 92 | 28 93 | 94 | 95 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 96 | Sudoku_GUI.c 97 | 236 98 | 16 99 | 100 | 101 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 102 | Sudoku_GUI.c 103 | 237 104 | 16 105 | 106 | 107 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 108 | Sudoku_GUI.c 109 | 238 110 | 16 111 | 112 | 113 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 114 | Sudoku_GUI.c 115 | 240 116 | 33 117 | 118 | 119 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 120 | Sudoku_GUI.c 121 | 245 122 | 38 123 | 124 | 125 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 126 | Sudoku_GUI.c 127 | 247 128 | 30 129 | 130 | 131 | 132 | 133 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 134 | Sudoku_GUI.c 135 | 138 136 | 29 137 | 138 | 6011 139 | Dereferencing NULL pointer 'sudokuData'. 140 | WndProc 141 | WndProc@16 142 | 109 143 | 1 144 | 4 145 | 146 | mspft 147 | 148 | 149 | 150 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 151 | Sudoku_GUI.c 152 | 111 153 | 12 154 | 155 | 156 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 157 | Sudoku_GUI.c 158 | 113 159 | 4 160 | 161 | 162 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 163 | Sudoku_GUI.c 164 | 115 165 | 12 166 | 167 | 168 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 169 | Sudoku_GUI.c 170 | 116 171 | 12 172 | 173 | 174 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 175 | Sudoku_GUI.c 176 | 119 177 | 16 178 | 179 | 180 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 181 | Sudoku_GUI.c 182 | 121 183 | 8 184 | 185 | 186 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 187 | Sudoku_GUI.c 188 | 123 189 | 16 190 | 191 | 192 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 193 | Sudoku_GUI.c 194 | 125 195 | 24 196 | 197 | 198 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 199 | Sudoku_GUI.c 200 | 126 201 | 18 202 | 203 | 204 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 205 | Sudoku_GUI.c 206 | 127 207 | 23 208 | 209 | 1 210 | declaration 211 | Essential 212 | 'sudokuData' may be NULL 213 | 214 | 215 | 216 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 217 | Sudoku_GUI.c 218 | 129 219 | 17 220 | 221 | 222 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 223 | Sudoku_GUI.c 224 | 132 225 | 21 226 | 227 | 228 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 229 | Sudoku_GUI.c 230 | 132 231 | 30 232 | 233 | 234 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 235 | Sudoku_GUI.c 236 | 134 237 | 30 238 | 239 | 240 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 241 | Sudoku_GUI.c 242 | 132 243 | 37 244 | 245 | 246 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 247 | Sudoku_GUI.c 248 | 132 249 | 30 250 | 251 | 252 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 253 | Sudoku_GUI.c 254 | 134 255 | 30 256 | 257 | 258 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 259 | Sudoku_GUI.c 260 | 132 261 | 37 262 | 263 | 264 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 265 | Sudoku_GUI.c 266 | 132 267 | 30 268 | 269 | 270 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 271 | Sudoku_GUI.c 272 | 138 273 | 29 274 | 275 | 2 276 | usage 277 | Essential 278 | 'sudokuData' is dereferenced, but may still be NULL 279 | 280 | 281 | 282 | 283 | 284 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 285 | Sudoku_GUI.c 286 | 422 287 | 16 288 | 289 | 6011 290 | Dereferencing NULL pointer 'grid'. 291 | addControls 292 | addControls 293 | 367 294 | 1 295 | 4 296 | 297 | mspft 298 | 299 | 300 | 301 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 302 | Sudoku_GUI.c 303 | 370 304 | 14 305 | 306 | 307 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 308 | Sudoku_GUI.c 309 | 371 310 | 14 311 | 312 | 313 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 314 | Sudoku_GUI.c 315 | 372 316 | 16 317 | 318 | 319 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 320 | Sudoku_GUI.c 321 | 375 322 | 8 323 | 324 | 325 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 326 | Sudoku_GUI.c 327 | 375 328 | 16 329 | 330 | 331 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 332 | Sudoku_GUI.c 333 | 375 334 | 24 335 | 336 | 337 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 338 | Sudoku_GUI.c 339 | 376 340 | 13 341 | 342 | 343 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 344 | Sudoku_GUI.c 345 | 376 346 | 22 347 | 348 | 349 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 350 | Sudoku_GUI.c 351 | 378 352 | 15 353 | 354 | 355 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 356 | Sudoku_GUI.c 357 | 379 358 | 15 359 | 360 | 361 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 362 | Sudoku_GUI.c 363 | 381 364 | 21 365 | 366 | 367 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 368 | Sudoku_GUI.c 369 | 382 370 | 18 371 | 372 | 373 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 374 | Sudoku_GUI.c 375 | 383 376 | 20 377 | 378 | 379 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 380 | Sudoku_GUI.c 381 | 376 382 | 28 383 | 384 | 385 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 386 | Sudoku_GUI.c 387 | 376 388 | 22 389 | 390 | 391 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 392 | Sudoku_GUI.c 393 | 378 394 | 15 395 | 396 | 397 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 398 | Sudoku_GUI.c 399 | 379 400 | 15 401 | 402 | 403 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 404 | Sudoku_GUI.c 405 | 381 406 | 21 407 | 408 | 409 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 410 | Sudoku_GUI.c 411 | 382 412 | 18 413 | 414 | 415 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 416 | Sudoku_GUI.c 417 | 383 418 | 20 419 | 420 | 421 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 422 | Sudoku_GUI.c 423 | 376 424 | 28 425 | 426 | 427 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 428 | Sudoku_GUI.c 429 | 376 430 | 22 431 | 432 | 433 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 434 | Sudoku_GUI.c 435 | 387 436 | 9 437 | 438 | 1 439 | declaration 440 | Essential 441 | 'grid' may be NULL 442 | 443 | 444 | 445 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 446 | Sudoku_GUI.c 447 | 388 448 | 8 449 | 450 | 451 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 452 | Sudoku_GUI.c 453 | 388 454 | 15 455 | 456 | 457 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 458 | Sudoku_GUI.c 459 | 388 460 | 22 461 | 462 | 463 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 464 | Sudoku_GUI.c 465 | 388 466 | 36 467 | 468 | 469 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 470 | Sudoku_GUI.c 471 | 388 472 | 51 473 | 474 | 475 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 476 | Sudoku_GUI.c 477 | 388 478 | 66 479 | 480 | 481 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 482 | Sudoku_GUI.c 483 | 388 484 | 90 485 | 486 | 487 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 488 | Sudoku_GUI.c 489 | 389 490 | 13 491 | 492 | 493 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 494 | Sudoku_GUI.c 495 | 389 496 | 22 497 | 498 | 2 499 | branch 500 | Full 501 | Enter this loop, (assume 'i<81') 502 | 503 | 504 | 505 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 506 | Sudoku_GUI.c 507 | 392 508 | 18 509 | 510 | 3 511 | branch 512 | Full 513 | Assume switch ( 'i%9' ) resolves to case 0: 514 | 515 | 516 | 517 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 518 | Sudoku_GUI.c 519 | 394 520 | 8 521 | 522 | 523 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 524 | Sudoku_GUI.c 525 | 395 526 | 20 527 | 528 | 529 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 530 | Sudoku_GUI.c 531 | 406 532 | 18 533 | 534 | 4 535 | branch 536 | Full 537 | Assume switch ( 'i/27' ) resolves to case 0: 538 | 539 | 540 | 541 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 542 | Sudoku_GUI.c 543 | 408 544 | 8 545 | 546 | 547 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 548 | Sudoku_GUI.c 549 | 409 550 | 20 551 | 552 | 553 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 554 | Sudoku_GUI.c 555 | 419 556 | 14 557 | 558 | 559 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 560 | Sudoku_GUI.c 561 | 420 562 | 14 563 | 564 | 565 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 566 | Sudoku_GUI.c 567 | 422 568 | 16 569 | 570 | 5 571 | usage 572 | Essential 573 | 'grid' is dereferenced, but may still be NULL 574 | 575 | 576 | 577 | 578 | 579 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 580 | Sudoku_GUI.c 581 | 490 582 | 22 583 | 584 | 6387 585 | '_Param_(3)' could be '0': this does not adhere to the specification for the function 'SetDlgItemTextW'. 586 | clearSudokuBoard 587 | clearSudokuBoard 588 | 484 589 | 1 590 | 4 591 | 592 | mspft 593 | 594 | 595 | 596 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 597 | Sudoku_GUI.c 598 | 486 599 | 13 600 | 601 | 602 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 603 | Sudoku_GUI.c 604 | 486 605 | 22 606 | 607 | 608 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 609 | Sudoku_GUI.c 610 | 488 611 | 12 612 | 613 | 614 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 615 | Sudoku_GUI.c 616 | 489 617 | 12 618 | 619 | 620 | C:\Users\rahul\Desktop\Dev_Projects\Applications\sudoku-solve-GUI\Sudoku_GUI\ 621 | Sudoku_GUI.c 622 | 490 623 | 22 624 | 625 | 626 | -------------------------------------------------------------------------------- /Sudoku_GUI/Debug/vc142.idb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/Sudoku_GUI/Debug/vc142.idb -------------------------------------------------------------------------------- /Sudoku_GUI/Debug/vc142.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/Sudoku_GUI/Debug/vc142.pdb -------------------------------------------------------------------------------- /Sudoku_GUI/Resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by Sudoku_GUI.rc 4 | // 5 | #define IDC_MYICON 2 6 | #define IDD_SUDOKUGUI_DIALOG 102 7 | #define IDS_APP_TITLE 103 8 | #define IDD_ABOUTBOX 103 9 | #define IDM_ABOUT 104 10 | #define IDM_EXIT 105 11 | #define IDI_SUDOKUGUI 107 12 | #define IDC_SUDOKUGUI 109 13 | #define IDR_MAINFRAME 128 14 | #define IDI_ICON1 130 15 | #define ID_FILE_LOADSUDOKU 32771 16 | #define IDC_STATIC -1 17 | 18 | // Next default values for new objects 19 | // 20 | #ifdef APSTUDIO_INVOKED 21 | #ifndef APSTUDIO_READONLY_SYMBOLS 22 | #define _APS_NO_MFC 1 23 | #define _APS_NEXT_RESOURCE_VALUE 131 24 | #define _APS_NEXT_COMMAND_VALUE 32772 25 | #define _APS_NEXT_CONTROL_VALUE 1000 26 | #define _APS_NEXT_SYMED_VALUE 110 27 | #endif 28 | #endif 29 | -------------------------------------------------------------------------------- /Sudoku_GUI/Source.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/Sudoku_GUI/Source.cpp -------------------------------------------------------------------------------- /Sudoku_GUI/Sudoku_GUI.aps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/Sudoku_GUI/Sudoku_GUI.aps -------------------------------------------------------------------------------- /Sudoku_GUI/Sudoku_GUI.c: -------------------------------------------------------------------------------- 1 | // Sudoku_GUI.cpp : Defines the entry point for the application. 2 | // 3 | 4 | #include "sudoku_GUI.h" 5 | #include "sudoku_macros.h" 6 | 7 | 8 | // Global Variables: 9 | HINSTANCE hInst; // current instance 10 | WCHAR szTitle[MAX_LOADSTRING]; // The title bar text 11 | WCHAR szWindowClass[MAX_LOADSTRING]; // the main window class name 12 | 13 | // Forward declarations of functions included in this code module: 14 | LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); 15 | INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM); 16 | 17 | // Control window handles 18 | HWND title, subTitle, speedBar, solveBtn, restartBtn, closeBtn, gridFrame, cellFrame[9], *grid; 19 | 20 | // Functions to render GUI 21 | void addControls(HWND hWnd); 22 | void addFonts(HWND hWnd); 23 | 24 | // Three locally stored sudokus for user to load 25 | uint8_t localSDKU1[81] = {0, 0, 6, 0, 0, 0, 0, 0, 3, 8, 2, 0, 0, 9, 6, 0, 0, 0, 9, 3, 0, 4, 0, 0, 0, 1, 0, 7, 8, 0, 0, 1, 0, 0, 0, 0, 0, 9, 0, 0, 4, 0, 0, 3, 0, 0, 0, 0, 0, 7, 0, 0, 6, 2, 0, 1, 0, 0, 0, 2, 0, 4, 6, 0, 0, 0, 7, 3, 0, 0, 9, 1, 2, 0, 0, 0, 0, 0, 3, 0, 0}; 26 | uint8_t localSDKU2[81] = {4, 7, 0, 0, 3, 2, 0, 0, 0, 0, 6, 2, 5, 9, 0, 0, 3, 0, 0, 3, 8, 7, 0, 4, 2, 0, 9, 8, 0, 1, 2, 5, 0, 4, 0, 3, 0, 4, 0, 0, 7, 1, 0, 0, 6, 7, 2, 0, 3, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 4, 0, 7, 5, 0, 8, 2, 0, 0, 0, 8, 0, 0, 9, 7}; 27 | uint8_t localSDKU3[81] = {2, 0, 0, 0, 7, 0, 3, 0, 0, 7, 0, 3, 9, 1, 6, 0, 0, 0, 0, 0, 6, 0, 8, 0, 1, 5, 0, 0, 0, 1, 0, 9, 4, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 8, 0, 0, 0, 6, 2, 0, 0, 0, 4, 0, 5, 0, 7, 0, 0, 6, 0, 0, 2, 8, 0, 8, 0, 0, 0, 9, 7, 6, 0}; 28 | 29 | // Handle for solver thread 30 | HANDLE sudokuSolveThread; 31 | 32 | 33 | // Main windows function 34 | int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow) 35 | { 36 | UNREFERENCED_PARAMETER(hPrevInstance); 37 | UNREFERENCED_PARAMETER(lpCmdLine); 38 | 39 | // Initialize global strings 40 | LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); 41 | LoadStringW(hInstance, IDC_SUDOKUGUI, szWindowClass, MAX_LOADSTRING); 42 | 43 | HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_SUDOKUGUI)); 44 | 45 | HWND hWnd = { 0 }; 46 | WNDCLASSEX wcex = { 0 }; 47 | MSG msg; 48 | 49 | // Create window class 50 | wcex.cbSize = sizeof(WNDCLASSEX); 51 | wcex.style = CS_HREDRAW | CS_VREDRAW; 52 | wcex.lpfnWndProc = WndProc; 53 | wcex.cbClsExtra = 0; 54 | wcex.cbWndExtra = 0; 55 | wcex.hInstance = hInstance; 56 | wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_SUDOKUGUI)); 57 | wcex.hCursor = LoadCursor(NULL, IDC_ARROW); 58 | wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 6); 59 | wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_SUDOKUGUI); 60 | wcex.lpszClassName = szWindowClass; 61 | wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SUDOKUGUI)); 62 | 63 | // Register window class 64 | if (!RegisterClassExW(&wcex)) 65 | { 66 | MessageBoxExW(hWnd, L"Window class registration failed!", L"Registration Error", MB_OK | MB_ICONERROR, MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL)); 67 | return 0; 68 | } 69 | 70 | // Create window 71 | hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT, 540, 750, NULL, NULL, hInstance, NULL); 72 | SetWindowTextA(hWnd, "Sudoku Solver"); 73 | 74 | if (!hWnd) 75 | { 76 | MessageBoxExW(hWnd, L"Create window failed!", L"Window Error", MB_OK | MB_ICONERROR, MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL)); 77 | return 0; 78 | } 79 | 80 | ShowWindow(hWnd, nCmdShow); 81 | UpdateWindow(hWnd); 82 | 83 | 84 | // Main message loop: 85 | while (GetMessage(&msg, NULL, 0, 0)) 86 | { 87 | if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) 88 | { 89 | TranslateMessage(&msg); 90 | DispatchMessage(&msg); 91 | } 92 | } 93 | 94 | return (int) msg.wParam; 95 | } 96 | 97 | /* 98 | * FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM) 99 | * 100 | * WM_COMMAND - process the application menu 101 | * WM_PAINT - Paint the main window 102 | * WM_DESTROY - post a quit message and return 103 | * 104 | * PURPOSE: Processes messages for the main window. 105 | * 106 | */ 107 | LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) 108 | { 109 | switch (message) 110 | { 111 | case WM_COMMAND: 112 | { 113 | int wp = LOWORD(wParam); 114 | int btnResp; 115 | 116 | // Parse the menu selections: 117 | switch (wp) 118 | { 119 | case SOLVE_BTN_CLICK: 120 | { 121 | int *userSudoku = (int*)malloc(81 * sizeof(int)); 122 | 123 | pSudokuData sudokuData; 124 | DWORD solverThreadID; 125 | sudokuData = (pSudokuData)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(SudokuData)); 126 | 127 | BOOL didGet = FALSE; 128 | 129 | // Get all values in grid which will be passed to solving function 130 | for (int i = 0; i < 81; i++) 131 | { 132 | userSudoku[i] = GetDlgItemInt(hWnd, (SUDOKU_CTRL_BASE_VALUE + i), &didGet, FALSE); 133 | } 134 | 135 | // Preparing data to send in new thread 136 | sudokuData->hWnd = hWnd; 137 | sudokuData->speedWnd = speedBar; 138 | sudokuData->sudoku = userSudoku; 139 | 140 | // Run function to solve sudoku in new thread 141 | sudokuSolveThread = CreateThread(NULL, NULL, sudokuSolveDriver, sudokuData, 0, &solverThreadID); 142 | 143 | if (sudokuSolveThread == NULL) 144 | { 145 | MessageBox(hWnd, L"Error! Failed so solve", L"Thread Failure", MB_ICONERROR); 146 | } 147 | } break; 148 | case RESTART_BTN_CLICK: 149 | { 150 | if (sudokuSolveThread) 151 | { 152 | LPDWORD exitCode; 153 | GetExitCodeThread(sudokuSolveThread, &exitCode); 154 | TerminateThread(sudokuSolveThread, exitCode); 155 | EnableWindow(solveBtn, true); 156 | } 157 | 158 | clearSudokuBoard(hWnd); 159 | } break; 160 | case CLOSE_BTN_CLICK: 161 | { 162 | SuspendThread(sudokuSolveThread); 163 | 164 | btnResp = MessageBox(hWnd, L"Are you sure you want to exit?", L"Exit", MB_YESNO | MB_ICONEXCLAMATION); 165 | 166 | if (btnResp == IDYES) 167 | { 168 | DestroyWindow(hWnd); 169 | } 170 | else 171 | { 172 | ResumeThread(sudokuSolveThread); 173 | } 174 | } break; 175 | case IDM_ABOUT: 176 | { 177 | DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); 178 | } break; 179 | case IDM_EXIT: 180 | { 181 | DestroyWindow(hWnd); 182 | } break; 183 | case ID_FILE_LOADSUDOKU: 184 | { 185 | // Load one of 3 puzzles from memory onto board 186 | if (sudokuSolveThread) 187 | { 188 | LPDWORD exitCode; 189 | GetExitCodeThread(sudokuSolveThread, &exitCode); 190 | TerminateThread(sudokuSolveThread, exitCode); 191 | EnableWindow(solveBtn, true); 192 | EnableWindow(speedBar, true); 193 | } 194 | 195 | clearSudokuBoard(hWnd); 196 | 197 | uint8_t* pLoadedPuzzle; 198 | static uint8_t puzzleSelect = 0; 199 | 200 | puzzleSelect = puzzleSelect % 3; 201 | switch (puzzleSelect) 202 | { 203 | case 0: pLoadedPuzzle = localSDKU1; break; 204 | case 1: pLoadedPuzzle = localSDKU2; break; 205 | case 2: pLoadedPuzzle = localSDKU3; break; 206 | default: pLoadedPuzzle = localSDKU1; 207 | } 208 | 209 | for (int i = 0; i < 81; i++) 210 | { 211 | if (pLoadedPuzzle[i] != 0) SetDlgItemInt(hWnd, SUDOKU_CTRL_BASE_VALUE + i, pLoadedPuzzle[i], FALSE); 212 | } 213 | 214 | puzzleSelect++; 215 | } break; 216 | default: 217 | return DefWindowProc(hWnd, message, wParam, lParam); 218 | } 219 | } break; 220 | case WM_NOTIFY: 221 | { 222 | switch (wParam) 223 | { 224 | case MSG_FROM_SDKU_SOLVE: 225 | { 226 | // Disable solve button from sending again 227 | EnableWindow(solveBtn, false); 228 | 229 | Sudoku_Append_t solveData = *((Sudoku_Append_t*)lParam); 230 | int row = solveData.row; 231 | int column = solveData.column; 232 | int boxAddr = SUDOKU_CTRL_BASE_VALUE + (row * 9) + column; 233 | 234 | // TODO - make placement box be coloured green or red background 235 | 236 | if (solveData.action == SDKU_NUMBER_PUT) 237 | { 238 | SetDlgItemInt(hWnd, boxAddr, solveData.number, FALSE); 239 | } 240 | else if (solveData.action == SDKU_NUMBER_RM) 241 | { 242 | SetDlgItemText(hWnd, boxAddr, NULL); 243 | } 244 | 245 | UpdateWindow(hWnd); 246 | RedrawWindow(hWnd, NULL, NULL, RDW_UPDATENOW); 247 | } break; 248 | case MSG_FROM_SDKU_DRIVER: 249 | { 250 | /* 251 | * Brief: Message from sudoku driver means puzzle has been processed 252 | * 253 | * Possible solve results: invalid user data, puzzle solved, puzzle has no solution 254 | */ 255 | 256 | // Enable frozen controls 257 | EnableWindow(solveBtn, true); 258 | 259 | switch (((LPNMHDR)lParam)->code) 260 | { 261 | case SOLVE_INPUT_INVALID: 262 | { 263 | MessageBox(hWnd, L"This puzzle does not meet sudku rules!", L"Puzzle Invalid", MB_OK | MB_ICONERROR); 264 | } break; 265 | case SOLVE_SUDOKU_SOLVED: 266 | { 267 | MessageBox(hWnd, L"Puzzle has been solved!", L"Solved", MB_OK | MB_ICONINFORMATION); 268 | } break; 269 | case SOLVE_SUDOKU_NO_SOLN: 270 | { 271 | MessageBox(hWnd, L"This puzzle has no solution!", L"No Solution", MB_OK | MB_ICONERROR); 272 | } 273 | } 274 | } 275 | } 276 | } break; 277 | case WM_CREATE: 278 | { 279 | addControls(hWnd); 280 | addFonts(hWnd); 281 | } break; 282 | case WM_PAINT: 283 | { 284 | PAINTSTRUCT ps; 285 | HDC hdc = BeginPaint(hWnd, &ps); 286 | HDC hdc_x = CreateCompatibleDC(NULL); 287 | // Add any drawing code that uses hdc here... 288 | 289 | // Background colour for window 290 | HBRUSH myBrush = CreateSolidBrush(RGB(145, 171, 199)); 291 | FillRect(hdc, &ps.rcPaint, myBrush); 292 | 293 | // Writing text to window 294 | RECT rectWnd; 295 | GetWindowRect(hWnd, &rectWnd); 296 | BitBlt(hdc, 0, 0, rectWnd.right - rectWnd.left, rectWnd.bottom, hdc_x, 0, 0, SRCCOPY); 297 | 298 | long lfHeight; 299 | HFONT hFont; 300 | 301 | // Write Title at top of window 302 | lfHeight = -MulDiv(24, GetDeviceCaps(hdc, LOGPIXELSY), 72); 303 | hFont = CreateFont(lfHeight, 0, 0, 0, FW_NORMAL, TRUE, 0, 0, 0, OUT_TT_ONLY_PRECIS, 0, ANTIALIASED_QUALITY, 0, L"Showcard Gothic"); 304 | SelectObject(hdc, hFont); 305 | SetTextColor(hdc, RGB(0, 0, 0)); 306 | SetBkMode(hdc, TRANSPARENT); 307 | TextOut(hdc, 130, 20, L"SUDOKU SOLVER", strlen("SUDOKU SOLVER")); 308 | 309 | // Write subtitle under main title 310 | lfHeight = -MulDiv(14, GetDeviceCaps(hdc, LOGPIXELSY), 72); 311 | hFont = CreateFont(lfHeight, 0, 0, 0, FW_NORMAL, TRUE, 0, 0, 0, OUT_TT_ONLY_PRECIS, 0, PROOF_QUALITY, 0, L"Calibri"); 312 | SelectObject(hdc, hFont); 313 | TextOut(hdc, 130, 60, L"Backtracking algorithm visualizer", strlen("Backtracking algorithm visualizer")); 314 | 315 | // Green colour "FAST" and red colour "SLOW" 316 | lfHeight = -MulDiv(20, GetDeviceCaps(hdc, LOGPIXELSY), 72); 317 | hFont = CreateFont(lfHeight, 0, 0, 0, FW_SEMIBOLD, TRUE, 0, 0, 0, OUT_TT_ONLY_PRECIS, 0, ANTIALIASED_QUALITY, 0, L"Bahnschrift Condensed"); 318 | SelectObject(hdc, hFont); 319 | SetTextColor(hdc, RGB(18, 105, 41)); 320 | SetBkMode(hdc, TRANSPARENT); 321 | TextOut(hdc, 35, 535, L"FAST!", strlen("FAST!")); 322 | 323 | SetTextColor(hdc, RGB(160, 0, 0)); 324 | TextOut(hdc, 412, 535, L"SLOW!", strlen("SLOW!")); 325 | 326 | ReleaseDC(hWnd, hdc); 327 | EndPaint(hWnd, &ps); 328 | } break; 329 | case WM_DESTROY: 330 | PostQuitMessage(0); 331 | break; 332 | default: 333 | return DefWindowProc(hWnd, message, wParam, lParam); 334 | } 335 | return 0; 336 | } 337 | 338 | 339 | // Message handler for about box. 340 | INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) 341 | { 342 | UNREFERENCED_PARAMETER(lParam); 343 | switch (message) 344 | { 345 | case WM_INITDIALOG: 346 | return (INT_PTR)TRUE; 347 | 348 | case WM_COMMAND: 349 | if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) 350 | { 351 | EndDialog(hDlg, LOWORD(wParam)); 352 | return (INT_PTR)TRUE; 353 | } 354 | break; 355 | } 356 | return (INT_PTR)FALSE; 357 | } 358 | 359 | 360 | /* 361 | * Adding sudoku grid controls, static titles and buttons 362 | */ 363 | void addControls(HWND hWnd) 364 | { 365 | // Creating a static control to act as frame for the sudoku 366 | gridFrame = CreateWindowEx(WS_EX_CLIENTEDGE, L"STATIC", NULL, WS_CHILD | WS_VISIBLE | WS_THICKFRAME, 55, 95, 415, 415, hWnd, (HMENU)STATIC_GRID_FRAME, NULL, NULL); 367 | ShowWindow(gridFrame, 1); 368 | UpdateWindow(gridFrame); 369 | 370 | // Create 3x3 grid cells 371 | int xFrame, yFrame, framePitch = 135; 372 | for (int i = 0; i < 9; i++) 373 | { 374 | xFrame = 60 + ((i % 3) * framePitch); 375 | yFrame = 100 + ((i / 3) * framePitch); 376 | 377 | cellFrame[i] = CreateWindowEx(WS_EX_CLIENTEDGE, L"STATIC", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, xFrame, yFrame, framePitch, framePitch, hWnd, (HMENU)STATIC_CELL_FRAME, NULL, NULL); 378 | ShowWindow(cellFrame[i], 1); 379 | UpdateWindow(cellFrame[i]); 380 | } 381 | 382 | // Creating 9x9 edit controls to act as sudoku boxes 383 | grid = (HWND*)calloc(81, sizeof(HWND)); 384 | int xCell, yCell, xOffset = 65, yOffset = 105, boxPitch = 42, spacing = boxPitch + 1, offset = 2; 385 | for (int i = 0; i < 81; i++) 386 | { 387 | // space each 3x3 cell apart in x-dimension 388 | switch (i % 9) 389 | { 390 | case 0: 391 | xOffset = 64; 392 | break; 393 | case 3: 394 | xOffset = 70; 395 | break; 396 | case 6: 397 | xOffset = 74; 398 | break; 399 | } 400 | 401 | // space each 3x3 cell in y-dimension 402 | switch (i / 27) 403 | { 404 | case 0: 405 | yOffset = 104; 406 | break; 407 | case 1: 408 | yOffset = 110; 409 | break; 410 | case 2: 411 | yOffset = 114; 412 | break; 413 | } 414 | 415 | xCell = xOffset + ((i % 9) * spacing); 416 | yCell = yOffset + ((i / 9) * spacing); 417 | 418 | grid[i] = CreateWindowExW(0, L"EDIT", 0, WS_CHILD | WS_VISIBLE | ES_CENTER | ES_NUMBER | WS_BORDER, xCell, yCell, boxPitch, boxPitch, hWnd, (HMENU)(SUDOKU_CTRL_BASE_VALUE + i), NULL, NULL); 419 | ShowWindow(grid[i], 1); 420 | UpdateWindow(grid[i]); 421 | } 422 | 423 | // Create speed set slider (window handle created global) 424 | speedBar = CreateWindowEx(0, TRACKBAR_CLASS, L"SPEED", WS_CHILD | WS_VISIBLE | TBS_HORZ | TBS_AUTOTICKS, 105, 535, 300, 40, hWnd, (HMENU)SPEED_TRACKBAR, NULL, NULL); 425 | SendMessage(speedBar, TBM_SETRANGE, (WPARAM)TRUE, (LPARAM)MAKELONG(0, 10)); 426 | ShowWindow(speedBar, 1); 427 | UpdateWindow(speedBar); 428 | 429 | // Solve button control 430 | solveBtn = CreateWindowExW(WS_EX_CLIENTEDGE, L"BUTTON", L"SOLVE", WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON | BS_CENTER, 60, 605, 110, 40, hWnd, (HMENU)SOLVE_BTN_CLICK, NULL, NULL); 431 | ShowWindow(solveBtn, 1); 432 | UpdateWindow(solveBtn); 433 | 434 | // Restart button control 435 | restartBtn = CreateWindowExW(WS_EX_CLIENTEDGE, L"BUTTON", L"RESTART", WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON | BS_CENTER, 210, 605, 110, 40, hWnd, (HMENU)RESTART_BTN_CLICK, NULL, NULL); 436 | ShowWindow(restartBtn, 1); 437 | UpdateWindow(restartBtn); 438 | 439 | // Close button control 440 | closeBtn = CreateWindowExW(WS_EX_CLIENTEDGE, L"BUTTON", L"CLOSE", WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON | BS_CENTER, 360, 605, 110, 40, hWnd, (HMENU)CLOSE_BTN_CLICK, NULL, NULL); 441 | ShowWindow(closeBtn, 1); 442 | UpdateWindow(closeBtn); 443 | } 444 | 445 | 446 | /* 447 | * Adds the desired fonts to title, sudoku cells and buttons 448 | */ 449 | void addFonts(HWND hWnd) 450 | { 451 | // Create fonts for controls 452 | HFONT controlFont; 453 | HDC hdc; 454 | long lfHeight; 455 | hdc = GetDC(NULL); 456 | 457 | // Create font for the number cells 458 | lfHeight = -MulDiv(20, GetDeviceCaps(hdc, LOGPIXELSY), 72); 459 | controlFont = CreateFont(lfHeight, 0, 0, 0, FW_NORMAL, TRUE, 0, 0, 0, OUT_TT_ONLY_PRECIS, 0, ANTIALIASED_QUALITY, 0, L"Calibri"); 460 | 461 | for (int i = 0; i < 81; i++) 462 | { 463 | SendDlgItemMessage(hWnd, (SUDOKU_CTRL_BASE_VALUE + i), WM_SETFONT, (WPARAM)controlFont, TRUE); 464 | } 465 | 466 | // Create font for buttons 467 | lfHeight = -MulDiv(14, GetDeviceCaps(hdc, LOGPIXELSY), 72); 468 | controlFont = CreateFont(lfHeight, 0, 0, 0, FW_NORMAL, TRUE, 0, 0, 0, OUT_TT_ONLY_PRECIS, 0, ANTIALIASED_QUALITY, 0, L"Arial"); 469 | 470 | for (int i = SOLVE_BTN_CLICK; i < CLOSE_BTN_CLICK + 1; i++) 471 | { 472 | SendDlgItemMessage(hWnd, i, WM_SETFONT, (WPARAM)controlFont, TRUE); 473 | } 474 | 475 | ReleaseDC(NULL, hdc); 476 | } 477 | 478 | 479 | /* 480 | * Driver function to solve sudoku - processed in new thread when 'Solve' clicked 481 | */ 482 | DWORD WINAPI sudokuSolveDriver(LPVOID lpParam) 483 | { 484 | pSudokuData inputSudoku = (pSudokuData)(lpParam); 485 | 486 | // Allocate memory for 2D sudoku array 487 | int sudoku[9][9] = { 0 }; 488 | 489 | for (int i = 0; i < 81; i++) 490 | { 491 | uint8_t row = i / 9; 492 | uint8_t column = i % 9; 493 | sudoku[row][column] = inputSudoku->sudoku[i]; 494 | } 495 | 496 | // Free memory allocated to input structure 497 | free(inputSudoku->sudoku); 498 | 499 | // Prepare notify message to send upon thread completion 500 | NMHDR callback; 501 | callback.hwndFrom = inputSudoku->hWnd; 502 | callback.idFrom = MSG_FROM_SDKU_DRIVER; 503 | 504 | // Validate sudoku and set all squares 0 for blank, or 1 - 9 505 | valuesCheck(inputSudoku->hWnd, sudoku); 506 | 507 | // Check rows, columns, cells for validity 508 | bool validPuzzle = isValidColumns(sudoku) && isValidRows(sudoku) && isValidCells(sudoku); 509 | 510 | if (!validPuzzle) 511 | { 512 | // Send message that solve function has completed 513 | callback.code = SOLVE_INPUT_INVALID; 514 | SendMessage(callback.hwndFrom, WM_NOTIFY, callback.idFrom, &callback); 515 | 516 | // Exit this thread 517 | LPDWORD ExitCode; 518 | GetExitCodeThread(sudokuSolveThread, &ExitCode); 519 | ExitThread(ExitCode); 520 | } 521 | 522 | // Calling to recursive backtracking solver 523 | bool isSolved = solveSudoku(inputSudoku->hWnd, inputSudoku->speedWnd, sudoku); 524 | 525 | // Send message that indicates if puzzle has been solved 526 | callback.code = (isSolved) ? SOLVE_SUDOKU_SOLVED : SOLVE_SUDOKU_NO_SOLN; 527 | SendMessage(callback.hwndFrom, WM_NOTIFY, callback.idFrom, &callback); 528 | } -------------------------------------------------------------------------------- /Sudoku_GUI/Sudoku_GUI.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "framework.h" 4 | #include "resource.h" 5 | 6 | #ifndef SUDOKU_HEADER 7 | #define SUDOKU_HEADER 8 | 9 | 10 | 11 | 12 | 13 | /****************************** SUDOKU SOLVE FUNCTIONS ******************************************/ 14 | 15 | // Solver thread function 16 | DWORD WINAPI sudokuSolveDriver(LPVOID lpParam); 17 | 18 | /* 19 | * Void function that takes sudoku input and validates values to all be 0 (for blank) or 1-9 20 | */ 21 | void valuesCheck(HWND hWnd, int sudoku[9][9]); 22 | 23 | /* 24 | * Print the full sudoku as it is 25 | */ 26 | void printSoln(int sudoku[9][9]); 27 | 28 | /* 29 | * Clears all values on active sudoku board 30 | */ 31 | void clearSudokuBoard(HWND hWnd); 32 | 33 | 34 | /* 35 | * Checks if a specified number can be placed in the specified row 36 | * 37 | * Inputs: uint8_t sudoku[9][9] - sudoku grid 38 | * uint8_t row - row number to check 39 | * uint8_t number - number propsed to be placed 40 | * 41 | * Return: bool valid - tell if valid 42 | */ 43 | bool rowCheck(int sudoku[9][9], int row, int number); 44 | 45 | 46 | /* 47 | * Checks if a specified number can be placed in the specified column 48 | * 49 | * Inputs: uint8_t sudoku[9][9] - sudoku grid 50 | * uint8_t column - column number to check 51 | * uint8_t number - number propsed to be placed 52 | * 53 | * Return: bool valid - tell if valid 54 | */ 55 | bool columnCheck(int sudoku[9][9], int column, int number); 56 | 57 | 58 | /* 59 | * Checks if a specified number can be placed in the cell 60 | * 61 | * Inputs: uint8_t sudoku[9][9] - sudoku grid 62 | * uint8_t row - row where number is to be placed 63 | * uint8_t column - column where number is to be placed 64 | * uint8_t number - number propsed to be placed 65 | * 66 | * Return: bool valid - tell if valid 67 | */ 68 | bool boxCheck(int sudoku[9][9], int row, int column, int number); 69 | 70 | 71 | /* 72 | * Calls rowCheck, columnCheck and cellCheck to see if all are valid -> number can be placed here 73 | * 74 | * Inputs: uint8_t sudoku[9][9] - sudoku grid 75 | * uint8_t row - row where number is to be placed 76 | * uint8_t column - column where number is to be placed 77 | * uint8_t number - number propsed to be placed 78 | * 79 | * Return: bool isValid - tell if valid 80 | */ 81 | bool isValid(int sudoku[9][9], int row, int column, int number); 82 | 83 | 84 | /* 85 | * Searches sudoku for a blank value. Returns a boolean value to tell if puzzle is complete or if blanks remain 86 | * 87 | * Inputs: uint8_t sudoku[9][9] - sudoku grid 88 | * uint8_t* row - pointer to variable to store row of next blank 89 | * uint8_t* column - pointer to variable to store column of next blank 90 | * 91 | * Return: bool isValid - tell if blank found or not (meaning puzzle is solved) 92 | */ 93 | bool findBlank(int sudoku[9][9], int* pRow, int* pColumn); 94 | 95 | 96 | /* 97 | * Checks all values in sudoku column for duplicates (must already be validated for numbers 0 - 9) 98 | * 99 | * Inputs: uint8_t sudoku[9][9] - sudoku grid 100 | * 101 | * Return: bool isValid - tell if all columns are valid 102 | */ 103 | bool isValidColumns(int sudoku[9][9]); 104 | 105 | 106 | /* 107 | * Checks all values in sudoku row for duplicates (must already be validated for numbers 0 - 9) 108 | * 109 | * Inputs: uint8_t sudoku[9][9] - sudoku grid 110 | * 111 | * Return: bool isValid - tell if all rows are valid 112 | */ 113 | bool isValidRows(int sudoku[9][9]); 114 | 115 | 116 | /* 117 | * Checks all values in each sudoku cell for duplicates (must already be validated for numbers 0 - 9) 118 | * 119 | * Inputs: uint8_t sudoku[9][9] - sudoku grid 120 | * 121 | * Return: bool isValid - tell if all cells are valid 122 | */ 123 | bool isValidCells(int sudoku[9][9]); 124 | 125 | /* 126 | * Driver function to solve sudoku. Makes calls directly to isValid, findBlank and printSoln 127 | * 128 | * Inputs: uint8_t sudoku[9][9] - sudoku grid 129 | */ 130 | bool solveSudoku(HWND hWnd, int sudoku[9][9], int delayMultiplier); 131 | 132 | 133 | #endif 134 | 135 | -------------------------------------------------------------------------------- /Sudoku_GUI/Sudoku_GUI.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/Sudoku_GUI/Sudoku_GUI.rc -------------------------------------------------------------------------------- /Sudoku_GUI/Sudoku_GUI.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | 16.0 23 | {14EB037F-0917-4955-9474-D2ADB99B9792} 24 | Win32Proj 25 | SudokuGUI 26 | 10.0 27 | 28 | 29 | 30 | Application 31 | true 32 | v142 33 | Unicode 34 | 35 | 36 | Application 37 | false 38 | v142 39 | true 40 | Unicode 41 | 42 | 43 | Application 44 | true 45 | v142 46 | Unicode 47 | 48 | 49 | Application 50 | false 51 | v142 52 | true 53 | Unicode 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | true 75 | 76 | 77 | true 78 | 79 | 80 | false 81 | 82 | 83 | false 84 | 85 | 86 | 87 | 88 | 89 | Level3 90 | true 91 | WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) 92 | true 93 | 94 | 95 | Windows 96 | true 97 | 98 | 99 | 100 | 101 | 102 | 103 | Level3 104 | true 105 | _DEBUG;_WINDOWS;%(PreprocessorDefinitions) 106 | true 107 | 108 | 109 | Windows 110 | true 111 | 112 | 113 | 114 | 115 | 116 | 117 | Level3 118 | true 119 | true 120 | true 121 | WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) 122 | true 123 | MultiThreadedDebugDLL 124 | 125 | 126 | Windows 127 | true 128 | true 129 | true 130 | 131 | 132 | 133 | 134 | 135 | 136 | Level3 137 | true 138 | true 139 | true 140 | NDEBUG;_WINDOWS;%(PreprocessorDefinitions) 141 | true 142 | 143 | 144 | Windows 145 | true 146 | true 147 | true 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | -------------------------------------------------------------------------------- /Sudoku_GUI/Sudoku_GUI.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;c++;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Header Files 20 | 21 | 22 | Header Files 23 | 24 | 25 | Header Files 26 | 27 | 28 | Header Files 29 | 30 | 31 | Header Files 32 | 33 | 34 | 35 | 36 | Resource Files 37 | 38 | 39 | 40 | 41 | Source Files 42 | 43 | 44 | Source Files 45 | 46 | 47 | Source Files 48 | 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /Sudoku_GUI/Sudoku_GUI.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | true 5 | 6 | -------------------------------------------------------------------------------- /Sudoku_GUI/Sudoku_solve.c: -------------------------------------------------------------------------------- 1 | #include "framework.h" 2 | #include "sudoku_macros.h" 3 | 4 | 5 | /******************************************************** HELPER FUNCTIONS *************************************************************/ 6 | 7 | // Static sorting function 8 | static int ascendSort(const void* a, const void* b) { 9 | return (*(int*)a - *(int*)b); 10 | } 11 | 12 | 13 | /************************************************************ GUI MANAGEMENT ************************************************************/ 14 | 15 | /* 16 | * Clears all values on active sudoku board 17 | */ 18 | void clearSudokuBoard(HWND hWnd) 19 | { 20 | for (int i = 0; i < 81; i++) 21 | { 22 | int row = i / 9; 23 | int column = i % 9; 24 | SetDlgItemText(hWnd, (SUDOKU_CTRL_BASE_VALUE + i), NULL); 25 | } 26 | } 27 | 28 | 29 | /******************************************************* USER INPUT VALIDATION FUNCTIONS ************************************************/ 30 | 31 | /* 32 | * Checks each column entered by user is valid by sudoku rules 33 | */ 34 | bool isValidColumns(int sudoku[9][9]) 35 | { 36 | int column[9], countNums = 0; 37 | 38 | // For each column 39 | for (int i = 0; i < 9; i++) 40 | { 41 | // For each row 42 | for (int j = 0; j < 9; j++) 43 | { 44 | // Add to array if non-0 45 | if (sudoku[j][i] > 0) 46 | { 47 | column[countNums] = sudoku[j][i]; 48 | countNums++; 49 | } 50 | } 51 | 52 | // Check the column array for duplicates 53 | qsort(column, (size_t)countNums, sizeof(int), ascendSort); 54 | for (int n = 0; n < countNums - 1; n++) 55 | { 56 | if (column[n] == column[n + 1]) return false; 57 | } 58 | 59 | // Reset before checking next column 60 | countNums = 0; 61 | } 62 | 63 | return true; 64 | } 65 | 66 | /* 67 | * Checks each row entered by user is valid by sudoku rules 68 | */ 69 | bool isValidRows(int sudoku[9][9]) 70 | { 71 | int row[9], countNums = 0; 72 | 73 | // For each row 74 | for (int i = 0; i < 9; i++) 75 | { 76 | // For each column 77 | for (int j = 0; j < 9; j++) 78 | { 79 | // Add to array if non-0 80 | if (sudoku[i][j] > 0) 81 | { 82 | row[countNums] = sudoku[i][j]; 83 | countNums++; 84 | } 85 | } 86 | 87 | // Check the row array for duplicates 88 | qsort(row, (size_t)countNums, sizeof(int), ascendSort); 89 | for (int n = 0; n < countNums - 1; n++) 90 | { 91 | if (row[n] == row[n + 1]) return false; 92 | } 93 | 94 | // Reset before checking next row 95 | countNums = 0; 96 | } 97 | 98 | return true; 99 | } 100 | 101 | /* 102 | * Check each cell given by user for validity 103 | */ 104 | bool isValidCells(int sudoku[9][9]) 105 | { 106 | int cell[9], startColumn, startRow, countNums = 0; 107 | 108 | // For each cell 109 | for (int i = 0; i < 9; i++) 110 | { 111 | // Move to upper left of next cell 112 | startColumn = (i / 3) * 3; 113 | startRow = i % 3 * 3; 114 | 115 | // Check each value in cell 116 | for (int j = 0; j < 9; j++) 117 | { 118 | if (sudoku[startRow + j / 3][startColumn + (j % 3)] > 0) 119 | { 120 | cell[countNums] = sudoku[startRow + j / 3][startColumn + (j % 3)]; 121 | countNums++; 122 | } 123 | } 124 | 125 | // Check the cell for duplicates 126 | qsort(cell, (size_t)countNums, sizeof(int), ascendSort); 127 | for (int n = 0; n < countNums - 1; n++) 128 | { 129 | if (cell[n] == cell[n + 1]) return false; 130 | } 131 | 132 | // Reset before checking next row 133 | countNums = 0; 134 | } 135 | 136 | return true; 137 | } 138 | 139 | /* 140 | * Validates that all numbers are 1 - 9 or else sets to 0 141 | */ 142 | void valuesCheck(HWND hWnd, int sudoku[9][9]) 143 | { 144 | Sudoku_Append_t sudokuData; 145 | 146 | // Check that all numbers are correct 147 | for (int i = 0; i < 9; i++) 148 | { 149 | for (int j = 0; j < 9; j++) 150 | { 151 | if (sudoku[i][j] > 9 || sudoku[i][j] < 0) 152 | { 153 | // Invalid entry - append value in array to 0 154 | sudoku[i][j] = 0; 155 | 156 | // Send message to main WNDPROC to remove value on GUI 157 | sudokuData.row = i; 158 | sudokuData.column = j; 159 | sudokuData.nmh.idFrom = MSG_FROM_SDKU_SOLVE; 160 | sudokuData.nmh.hwndFrom = hWnd; 161 | sudokuData.action = SDKU_NUMBER_RM; 162 | SendMessage(hWnd, WM_NOTIFY, sudokuData.nmh.idFrom, (Sudoku_Append_t*)&sudokuData); 163 | } 164 | } 165 | } 166 | } 167 | 168 | 169 | /************************************** SOLVER FUNCTIONS ******************************************************/ 170 | 171 | void delay(int milli_seconds) 172 | { 173 | // Storing start time 174 | clock_t start_time = clock(); 175 | 176 | // looping till required time is not achieved 177 | while (clock() < start_time + milli_seconds); 178 | } 179 | 180 | /* 181 | * Print out the sudoku grid. 182 | * This function is called only after puzzle is solved. 183 | */ 184 | void printSoln(int sudoku[9][9]) 185 | { 186 | for (int i = 0; i < 9; i++) 187 | { 188 | for (int j = 0; j < 9; j++) 189 | { 190 | printf("%i ", sudoku[i][j]); 191 | } 192 | printf("\n"); 193 | } 194 | } 195 | 196 | /* 197 | * Check if placing the value will break the row 198 | */ 199 | bool rowCheck(int sudoku[9][9], int row, int number) 200 | { 201 | for (int i = 0; i < 9; i++) 202 | { 203 | if (sudoku[row][i] == number) 204 | { 205 | return false; 206 | } 207 | } 208 | 209 | return true; 210 | } 211 | 212 | /* 213 | * Check if placing the value will break the column 214 | */ 215 | bool columnCheck(int sudoku[9][9], int column, int number) 216 | { 217 | for (int i = 0; i < 9; i++) 218 | { 219 | if (sudoku[i][column] == number) 220 | { 221 | return false; 222 | } 223 | } 224 | 225 | return true; 226 | } 227 | 228 | /* 229 | * Check if placing the value will break the cell 230 | */ 231 | bool boxCheck(int sudoku[9][9], int row, int column, int number) 232 | { 233 | int cellRow = (row / 3) * 3; 234 | int cellColumn = (column / 3) * 3; 235 | 236 | for (int i = 0; i < 3; i++) 237 | { 238 | for (int j = 0; j < 3; j++) 239 | { 240 | if (sudoku[cellRow + i][cellColumn + j] == number) 241 | { 242 | return false; 243 | } 244 | } 245 | } 246 | 247 | return true; 248 | } 249 | 250 | /* 251 | * Checks row, column and cell to determine if number can be placed in a position 252 | */ 253 | bool isValid(int sudoku[9][9], int row, int column, int number) 254 | { 255 | if (rowCheck(sudoku, row, number) && columnCheck(sudoku, column, number) && boxCheck(sudoku, row, column, number)) 256 | { 257 | return true; 258 | } 259 | else 260 | { 261 | return false; 262 | } 263 | } 264 | 265 | /* 266 | * Find blank point in sudoku 267 | */ 268 | bool findBlank(int sudoku[9][9], int* pRow, int* pColumn) 269 | { 270 | for (int i = 0; i < 9; i++) 271 | { 272 | for (int j = 0; j < 9; j++) 273 | { 274 | if (sudoku[i][j] == 0) 275 | { 276 | *pRow = i; 277 | *pColumn = j; 278 | return false; 279 | } 280 | } 281 | } 282 | return true; 283 | } 284 | 285 | /* 286 | * Main function for solving sudoku 287 | * 288 | * Makes recursive calls using backtracking algorithm to solve 289 | */ 290 | bool solveSudoku(HWND hWnd, HWND speedBar, int sudoku[9][9]) 291 | { 292 | // Variables to send application data 293 | Sudoku_Append_t sudokuData; 294 | 295 | int blankRow, blankColumn; 296 | 297 | // Delay according to speed setting 298 | Sleep(20 * SendMessage(speedBar, TBM_GETPOS, NULL, NULL)); 299 | 300 | // Search for unsolved box in sudoku 301 | bool isSolved = findBlank(sudoku, &blankRow, &blankColumn); 302 | 303 | // Return if no unsolved boxes found 304 | if (isSolved) 305 | { 306 | return true; 307 | } 308 | 309 | // Decision space for each box is 1 to 9 - try these values in the unsolved box 310 | for (int i = 1; i <= 9; i++) 311 | { 312 | if (isValid(sudoku, blankRow, blankColumn, i)) 313 | { 314 | sudoku[blankRow][blankColumn] = i; 315 | 316 | //Send application data to place number 317 | sudokuData.row = blankRow; 318 | sudokuData.column = blankColumn; 319 | sudokuData.number = i; 320 | sudokuData.nmh.idFrom = MSG_FROM_SDKU_SOLVE; 321 | sudokuData.nmh.hwndFrom = hWnd; 322 | sudokuData.action = SDKU_NUMBER_PUT; 323 | SendMessage(hWnd, WM_NOTIFY, sudokuData.nmh.idFrom, (Sudoku_Append_t*)&sudokuData); 324 | 325 | // Recursive backtracking 326 | if (solveSudoku(hWnd, speedBar, sudoku)) 327 | { 328 | return true; 329 | } 330 | else 331 | { 332 | // backtrack (might need this to be NULL) 333 | sudoku[blankRow][blankColumn] = 0; 334 | 335 | // Send application data to remove number 336 | sudokuData.action = SDKU_NUMBER_RM; 337 | SendMessage(hWnd, WM_NOTIFY, sudokuData.nmh.idFrom, (Sudoku_Append_t*)&sudokuData); 338 | } 339 | } 340 | } 341 | 342 | return false; 343 | } -------------------------------------------------------------------------------- /Sudoku_GUI/framework.h: -------------------------------------------------------------------------------- 1 | // header.h : include file for standard system include files, 2 | // or project specific include files 3 | // 4 | 5 | #pragma once 6 | 7 | #include "targetver.h" 8 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 9 | // Windows Header Files 10 | #include 11 | #include 12 | // C RunTime Header Files 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | -------------------------------------------------------------------------------- /Sudoku_GUI/sudoku_macros.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifndef SUDOKU_MACRO_HEADER 4 | #define SUDOKU_MACRO_HEADER 5 | 6 | #define MAX_LOADSTRING 100 7 | 8 | /* 9 | * HMENU IDs for static, editable and button controls 10 | */ 11 | #define SUDOKU_CTRL_BASE_VALUE 1 12 | #define STATIC_TITLE_HEADER 87 13 | #define STATIC_SUBTITLE 88 14 | #define STATIC_GRID_FRAME 89 15 | #define STATIC_CELL_FRAME 90 16 | #define SPEED_TRACKBAR 91 17 | #define SOLVE_BTN_CLICK 92 18 | #define RESTART_BTN_CLICK 93 19 | #define CLOSE_BTN_CLICK 94 20 | 21 | /* 22 | * Messages from sudoku solver to place and remove numbers from GUI 23 | */ 24 | #define MSG_FROM_SDKU_SOLVE 95 25 | #define SDKU_NUMBER_PUT 96 26 | #define SDKU_NUMBER_RM 97 27 | 28 | /* 29 | * Messages sent from sudoku solver to main window procedure 30 | */ 31 | #define MSG_FROM_SDKU_DRIVER 98 32 | #define SOLVE_INPUT_INVALID 99 33 | #define SOLVE_SUDOKU_SOLVED 100 34 | #define SOLVE_SUDOKU_NO_SOLN 101 35 | 36 | /* 37 | * Stored sudoku puzzles 38 | */ 39 | #define TEST_COLOUR 200 40 | 41 | 42 | /**************** STRUCTS *********************/ 43 | 44 | /* 45 | * For sending initial data from main window to solver 46 | */ 47 | typedef struct { 48 | HWND hWnd; 49 | HWND speedWnd; 50 | int *sudoku; 51 | } SudokuData, *pSudokuData; 52 | 53 | /* 54 | * For message sending from solver thread to main window procedure 55 | */ 56 | typedef struct { 57 | NMHDR nmh; 58 | UINT row; 59 | UINT column; 60 | UINT action; 61 | UINT number; 62 | } Sudoku_Append_t; 63 | 64 | #endif // !SUDOKU_MACRO_HEADER 65 | -------------------------------------------------------------------------------- /Sudoku_GUI/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // // Including SDKDDKVer.h defines the highest available Windows platform. 4 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 5 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 6 | #include 7 | -------------------------------------------------------------------------------- /images/sudoku_gui_screen.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/images/sudoku_gui_screen.JPG -------------------------------------------------------------------------------- /images/sudoku_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esyywar/sudoku-solve-GUI/630d6ec575324c41defe7750eddb2fc51cb63d0c/images/sudoku_icon.ico --------------------------------------------------------------------------------