--- /dev/null
+========================================================================
+ MICROSOFT FOUNDATION CLASS LIBRARY : sudoku
+========================================================================
+
+
+AppWizard has created this sudoku application for you. This application
+not only demonstrates the basics of using the Microsoft Foundation classes
+but is also a starting point for writing your application.
+
+This file contains a summary of what you will find in each of the files that
+make up your sudoku application.
+
+sudoku.dsp
+ This file (the project file) contains information at the project level and
+ is used to build a single project or subproject. Other users can share the
+ project (.dsp) file, but they should export the makefiles locally.
+
+sudoku.h
+ This is the main header file for the application. It includes other
+ project specific headers (including Resource.h) and declares the
+ CSudokuApp application class.
+
+sudoku.cpp
+ This is the main application source file that contains the application
+ class CSudokuApp.
+
+sudoku.rc
+ This is a listing of all of the Microsoft Windows resources that the
+ program uses. It includes the icons, bitmaps, and cursors that are stored
+ in the RES subdirectory. This file can be directly edited in Microsoft
+ Visual C++.
+
+sudoku.clw
+ This file contains information used by ClassWizard to edit existing
+ classes or add new classes. ClassWizard also uses this file to store
+ information needed to create and edit message maps and dialog data
+ maps and to create prototype member functions.
+
+res\sudoku.ico
+ This is an icon file, which is used as the application's icon. This
+ icon is included by the main resource file sudoku.rc.
+
+res\sudoku.rc2
+ This file contains resources that are not edited by Microsoft
+ Visual C++. You should place all resources not editable by
+ the resource editor in this file.
+
+
+
+
+/////////////////////////////////////////////////////////////////////////////
+
+AppWizard creates one dialog class:
+
+sudokuDlg.h, sudokuDlg.cpp - the dialog
+ These files contain your CSudokuDlg class. This class defines
+ the behavior of your application's main dialog. The dialog's
+ template is in sudoku.rc, which can be edited in Microsoft
+ Visual C++.
+
+
+/////////////////////////////////////////////////////////////////////////////
+Other standard files:
+
+StdAfx.h, StdAfx.cpp
+ These files are used to build a precompiled header (PCH) file
+ named sudoku.pch and a precompiled types file named StdAfx.obj.
+
+Resource.h
+ This is the standard header file, which defines new resource IDs.
+ Microsoft Visual C++ reads and updates this file.
+
+/////////////////////////////////////////////////////////////////////////////
+Other notes:
+
+AppWizard uses "TODO:" to indicate parts of the source code you
+should add to or customize.
+
+If your application uses MFC in a shared DLL, and your application is
+in a language other than the operating system's current language, you
+will need to copy the corresponding localized resources MFC42XXX.DLL
+from the Microsoft Visual C++ CD-ROM onto the system or system32 directory,
+and rename it to be MFCLOC.DLL. ("XXX" stands for the language abbreviation.
+For example, MFC42DEU.DLL contains resources translated to German.) If you
+don't do this, some of the UI elements of your application will remain in the
+language of the operating system.
+
+/////////////////////////////////////////////////////////////////////////////
--- /dev/null
+// stdafx.cpp : source file that includes just the standard includes
+// sudoku.pch will be the pre-compiled header
+// stdafx.obj will contain the pre-compiled type information
+
+#include "stdafx.h"
+
+
+
--- /dev/null
+// stdafx.h : include file for standard system include files,
+// or project specific include files that are used frequently, but
+// are changed infrequently
+//
+
+#if !defined(AFX_STDAFX_H__FCDE560B_D028_4F32_A27D_09437C0491DC__INCLUDED_)
+#define AFX_STDAFX_H__FCDE560B_D028_4F32_A27D_09437C0491DC__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
+
+#include <afxwin.h> // MFC core and standard components
+#include <afxext.h> // MFC extensions
+#include <afxdisp.h> // MFC Automation classes
+#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
+#ifndef _AFX_NO_AFXCMN_SUPPORT
+#include <afxcmn.h> // MFC support for Windows Common Controls
+#endif // _AFX_NO_AFXCMN_SUPPORT
+
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
+
+#endif // !defined(AFX_STDAFX_H__FCDE560B_D028_4F32_A27D_09437C0491DC__INCLUDED_)
--- /dev/null
+//
+// SUDOKU.RC2 - resources Microsoft Visual C++ does not edit directly
+//
+
+#ifdef APSTUDIO_INVOKED
+ #error this file is not editable by Microsoft Visual C++
+#endif //APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+// Add manually edited resources here...
+
+/////////////////////////////////////////////////////////////////////////////
--- /dev/null
+0
+3
+0
+0
+0
+0
+0
+0
+0
+0
+5
+1
+8
+0
+0
+0
+6
+0
+0
+6
+0
+5
+7
+0
+3
+8
+9
+6
+0
+0
+2
+4
+0
+0
+0
+3
+0
+9
+0
+3
+0
+0
+0
+0
+1
+8
+0
+0
+9
+1
+0
+0
+0
+6
+1
+0
+0
+0
+8
+2
+0
+0
+5
+0
+7
+0
+0
+5
+0
+1
+0
+0
+5
+0
+6
+0
+0
+3
+7
+0
+2
\ No newline at end of file
--- /dev/null
+0
+0
+0
+0
+4
+0
+6
+8
+9
+0
+8
+0
+0
+6
+0
+0
+0
+0
+6
+4
+5
+2
+8
+9
+3
+7
+1
+4
+0
+3
+8
+1
+6
+5
+2
+7
+5
+1
+7
+9
+2
+3
+8
+6
+4
+8
+0
+6
+0
+0
+0
+9
+1
+0
+0
+0
+0
+0
+7
+0
+1
+9
+0
+7
+0
+1
+6
+9
+0
+0
+3
+0
+0
+6
+0
+1
+0
+4
+0
+0
+2
\ No newline at end of file
--- /dev/null
+1
+0
+2
+0
+4
+5
+6
+8
+9
+3
+8
+9
+7
+6
+1
+2
+4
+5
+6
+4
+5
+2
+8
+9
+3
+7
+1
+4
+9
+3
+8
+1
+6
+5
+2
+7
+5
+1
+7
+9
+2
+3
+8
+6
+4
+8
+2
+6
+4
+5
+7
+9
+1
+3
+2
+3
+4
+5
+7
+8
+1
+9
+6
+7
+5
+1
+6
+9
+2
+4
+3
+8
+9
+6
+8
+1
+3
+4
+7
+5
+2
\ No newline at end of file
--- /dev/null
+8
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3
+6
+0
+0
+0
+0
+0
+0
+7
+0
+0
+9
+0
+2
+0
+0
+0
+5
+0
+0
+0
+7
+0
+0
+0
+0
+0
+0
+0
+4
+5
+7
+0
+0
+0
+0
+0
+1
+0
+0
+0
+3
+0
+0
+0
+1
+0
+0
+0
+0
+6
+8
+0
+0
+8
+5
+0
+0
+0
+1
+0
+0
+9
+0
+0
+0
+0
+4
+0
+0
\ No newline at end of file
--- /dev/null
+//{{NO_DEPENDENCIES}}
+// Microsoft Developer Studio generated include file.
+// Used by sudoku.rc
+//
+#define IDM_ABOUTBOX 0x0010
+#define IDD_ABOUTBOX 100
+#define IDS_ABOUTBOX 101
+#define IDD_SUDOKU_DIALOG 102
+#define IDR_MAINFRAME 128
+#define IDC_BUTTON1 1000
+#define IDC_BUTTON2 1001
+#define IDC_BUTTON3 1002
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 129
+#define _APS_NEXT_COMMAND_VALUE 32771
+#define _APS_NEXT_CONTROL_VALUE 1003
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
--- /dev/null
+; CLW file contains information for the MFC ClassWizard
+
+[General Info]
+Version=1
+LastClass=CSudokuDlg
+LastTemplate=CDialog
+NewFileInclude1=#include "stdafx.h"
+NewFileInclude2=#include "sudoku.h"
+
+ClassCount=3
+Class1=CSudokuApp
+Class2=CSudokuDlg
+Class3=CAboutDlg
+
+ResourceCount=3
+Resource1=IDD_ABOUTBOX
+Resource2=IDR_MAINFRAME
+Resource3=IDD_SUDOKU_DIALOG
+
+[CLS:CSudokuApp]
+Type=0
+HeaderFile=sudoku.h
+ImplementationFile=sudoku.cpp
+Filter=N
+
+[CLS:CSudokuDlg]
+Type=0
+HeaderFile=sudokuDlg.h
+ImplementationFile=sudokuDlg.cpp
+Filter=D
+BaseClass=CDialog
+VirtualFilter=dWC
+LastObject=IDC_BUTTON2
+
+[CLS:CAboutDlg]
+Type=0
+HeaderFile=sudokuDlg.h
+ImplementationFile=sudokuDlg.cpp
+Filter=D
+
+[DLG:IDD_ABOUTBOX]
+Type=1
+Class=CAboutDlg
+ControlCount=4
+Control1=IDC_STATIC,static,1342177283
+Control2=IDC_STATIC,static,1342308480
+Control3=IDC_STATIC,static,1342308352
+Control4=IDOK,button,1342373889
+
+[DLG:IDD_SUDOKU_DIALOG]
+Type=1
+Class=CSudokuDlg
+ControlCount=3
+Control1=IDC_BUTTON1,button,1342242816
+Control2=IDC_BUTTON2,button,1342242816
+Control3=IDC_BUTTON3,button,1342242816
+
--- /dev/null
+// sudoku.cpp : Defines the class behaviors for the application.
+//
+
+#include "stdafx.h"
+#include "sudoku.h"
+#include "sudokuDlg.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#undef THIS_FILE
+static char THIS_FILE[] = __FILE__;
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+// CSudokuApp
+
+BEGIN_MESSAGE_MAP(CSudokuApp, CWinApp)
+ //{{AFX_MSG_MAP(CSudokuApp)
+ // NOTE - the ClassWizard will add and remove mapping macros here.
+ // DO NOT EDIT what you see in these blocks of generated code!
+ //}}AFX_MSG
+ ON_COMMAND(ID_HELP, CWinApp::OnHelp)
+END_MESSAGE_MAP()
+
+/////////////////////////////////////////////////////////////////////////////
+// CSudokuApp construction
+
+CSudokuApp::CSudokuApp()
+{
+ // TODO: add construction code here,
+ // Place all significant initialization in InitInstance
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// The one and only CSudokuApp object
+
+CSudokuApp theApp;
+
+/////////////////////////////////////////////////////////////////////////////
+// CSudokuApp initialization
+
+BOOL CSudokuApp::InitInstance()
+{
+ AfxEnableControlContainer();
+
+ // Standard initialization
+ // If you are not using these features and wish to reduce the size
+ // of your final executable, you should remove from the following
+ // the specific initialization routines you do not need.
+
+#ifdef _AFXDLL
+ Enable3dControls(); // Call this when using MFC in a shared DLL
+#else
+ Enable3dControlsStatic(); // Call this when linking to MFC statically
+#endif
+
+ CSudokuDlg dlg;
+ m_pMainWnd = &dlg;
+ int nResponse = dlg.DoModal();
+ if (nResponse == IDOK)
+ {
+ // TODO: Place code here to handle when the dialog is
+ // dismissed with OK
+ }
+ else if (nResponse == IDCANCEL)
+ {
+ // TODO: Place code here to handle when the dialog is
+ // dismissed with Cancel
+ }
+
+ // Since the dialog has been closed, return FALSE so that we exit the
+ // application, rather than start the application's message pump.
+ return FALSE;
+}
--- /dev/null
+# Microsoft Developer Studio Project File - Name="sudoku" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Application" 0x0101
+
+CFG=sudoku - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "sudoku.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "sudoku.mak" CFG="sudoku - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "sudoku - Win32 Release" (based on "Win32 (x86) Application")
+!MESSAGE "sudoku - Win32 Debug" (based on "Win32 (x86) Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "sudoku - Win32 Release"
+
+# PROP BASE Use_MFC 6
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 6
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x804 /d "NDEBUG" /d "_AFXDLL"
+# ADD RSC /l 0x804 /d "NDEBUG" /d "_AFXDLL"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386
+# ADD LINK32 /nologo /subsystem:windows /machine:I386
+
+!ELSEIF "$(CFG)" == "sudoku - Win32 Debug"
+
+# PROP BASE Use_MFC 6
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 6
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x804 /d "_DEBUG" /d "_AFXDLL"
+# ADD RSC /l 0x804 /d "_DEBUG" /d "_AFXDLL"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "sudoku - Win32 Release"
+# Name "sudoku - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\StdAfx.cpp
+# ADD CPP /Yc"stdafx.h"
+# End Source File
+# Begin Source File
+
+SOURCE=.\sudoku.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\sudoku.rc
+# End Source File
+# Begin Source File
+
+SOURCE=.\sudokuDlg.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\Resource.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\StdAfx.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\sudoku.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\sudokuDlg.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# Begin Source File
+
+SOURCE=.\res\sudoku.ico
+# End Source File
+# Begin Source File
+
+SOURCE=.\res\sudoku.rc2
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=.\ReadMe.txt
+# End Source File
+# End Target
+# End Project
--- /dev/null
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# ¾¯¸æ: ²»Äܱ༻òɾ³ý¸Ã¹¤×÷ÇøÎļþ£¡
+
+###############################################################################
+
+Project: "sudoku"=.\sudoku.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
--- /dev/null
+// sudoku.h : main header file for the SUDOKU application
+//
+
+#if !defined(AFX_SUDOKU_H__0F260610_30CF_46EF_96D1_8A86E5F952CD__INCLUDED_)
+#define AFX_SUDOKU_H__0F260610_30CF_46EF_96D1_8A86E5F952CD__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#ifndef __AFXWIN_H__
+ #error include 'stdafx.h' before including this file for PCH
+#endif
+
+#include "resource.h" // main symbols
+
+/////////////////////////////////////////////////////////////////////////////
+// CSudokuApp:
+// See sudoku.cpp for the implementation of this class
+//
+
+class CSudokuApp : public CWinApp
+{
+public:
+ CSudokuApp();
+
+// Overrides
+ // ClassWizard generated virtual function overrides
+ //{{AFX_VIRTUAL(CSudokuApp)
+ public:
+ virtual BOOL InitInstance();
+ //}}AFX_VIRTUAL
+
+// Implementation
+
+ //{{AFX_MSG(CSudokuApp)
+ // NOTE - the ClassWizard will add and remove member functions here.
+ // DO NOT EDIT what you see in these blocks of generated code !
+ //}}AFX_MSG
+ DECLARE_MESSAGE_MAP()
+};
+
+
+/////////////////////////////////////////////////////////////////////////////
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
+
+#endif // !defined(AFX_SUDOKU_H__0F260610_30CF_46EF_96D1_8A86E5F952CD__INCLUDED_)
--- /dev/null
+<html>
+<body>
+<pre>
+<h1>Build Log</h1>
+<h3>
+--------------------Configuration: sudoku - Win32 Debug--------------------
+</h3>
+<h3>Command Lines</h3>
+
+
+
+<h3>Results</h3>
+sudoku.exe - 0 error(s), 0 warning(s)
+</pre>
+</body>
+</html>
--- /dev/null
+//Microsoft Developer Studio generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// Chinese (Öйú) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
+#ifdef _WIN32
+LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
+#pragma code_page(936)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
+ "#define _AFX_NO_OLE_RESOURCES\r\n"
+ "#define _AFX_NO_TRACKER_RESOURCES\r\n"
+ "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
+ "\r\n"
+ "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)\r\n"
+ "#ifdef _WIN32\r\n"
+ "LANGUAGE 4, 2\r\n"
+ "#pragma code_page(936)\r\n"
+ "#endif //_WIN32\r\n"
+ "#include ""res\\sudoku.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
+ "#include ""l.chs\\afxres.rc"" // Standard components\r\n"
+ "#endif\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDR_MAINFRAME ICON DISCARDABLE "res\\sudoku.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 235, 55
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "¹ØÓÚ sudoku"
+FONT 9, "ËÎÌå"
+BEGIN
+ ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20
+ LTEXT "sudoku 1.0 °æ",IDC_STATIC,40,10,119,8,SS_NOPREFIX
+ LTEXT "°æȨËùÓÐ (C) 2015",IDC_STATIC,40,25,119,8
+ DEFPUSHBUTTON "È·¶¨",IDOK,178,7,50,14,WS_GROUP
+END
+
+IDD_SUDOKU_DIALOG DIALOGEX 0, 0, 369, 265
+STYLE WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
+ WS_SYSMENU | WS_THICKFRAME
+EXSTYLE WS_EX_APPWINDOW
+CAPTION "Êý¶À"
+FONT 9, "ËÎÌå"
+BEGIN
+ PUSHBUTTON "ÌâÄ¿",IDC_BUTTON1,291,17,50,14
+ PUSHBUTTON "Çó½â",IDC_BUTTON2,291,39,50,14
+ PUSHBUTTON "ÏÂÒ»¸ö",IDC_BUTTON3,291,62,50,14
+END
+
+
+#ifndef _MAC
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,0,0,1
+ PRODUCTVERSION 1,0,0,1
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x1L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "080404B0"
+ BEGIN
+ VALUE "CompanyName", "\0"
+ VALUE "FileDescription", "sudoku Microsoft »ù´¡ÀàÓ¦ÓóÌÐò\0"
+ VALUE "FileVersion", "1, 0, 0, 1\0"
+ VALUE "InternalName", "sudoku\0"
+ VALUE "LegalCopyright", "°æȨËùÓÐ (C) 2015\0"
+ VALUE "LegalTrademarks", "\0"
+ VALUE "OriginalFilename", "sudoku.EXE\0"
+ VALUE "ProductName", "sudoku Ó¦ÓóÌÐò\0"
+ VALUE "ProductVersion", "1, 0, 0, 1\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x804, 1200
+ END
+END
+
+#endif // !_MAC
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO DISCARDABLE
+BEGIN
+ IDD_ABOUTBOX, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 228
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 48
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_ABOUTBOX "¹ØÓÚ sudoku(&A)..."
+END
+
+#endif // Chinese (Öйú) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+#define _AFX_NO_SPLITTER_RESOURCES
+#define _AFX_NO_OLE_RESOURCES
+#define _AFX_NO_TRACKER_RESOURCES
+#define _AFX_NO_PROPERTY_RESOURCES
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
+#ifdef _WIN32
+LANGUAGE 4, 2
+#pragma code_page(936)
+#endif //_WIN32
+#include "res\sudoku.rc2" // non-Microsoft Visual C++ edited resources
+#include "l.chs\afxres.rc" // Standard components
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
--- /dev/null
+// sudokuDlg.cpp : implementation file
+//
+
+#include "stdafx.h"
+#include "sudoku.h"
+#include "sudokuDlg.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#undef THIS_FILE
+static char THIS_FILE[] = __FILE__;
+#endif
+
+int i_1,j_1;
+int i=1,j=1,i_i,j_j;
+int i_txt=0;
+double a[10][10];
+double b[10][10];
+double c[10][10];
+int t,n,k=0;
+int times=0;
+
+/////////////////////////////////////////////////////////////////////////////
+// CAboutDlg dialog used for App About
+
+class CAboutDlg : public CDialog
+{
+public:
+ CAboutDlg();
+
+// Dialog Data
+ //{{AFX_DATA(CAboutDlg)
+ enum { IDD = IDD_ABOUTBOX };
+ //}}AFX_DATA
+
+ // ClassWizard generated virtual function overrides
+ //{{AFX_VIRTUAL(CAboutDlg)
+ protected:
+ virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
+ //}}AFX_VIRTUAL
+
+// Implementation
+protected:
+ //{{AFX_MSG(CAboutDlg)
+ //}}AFX_MSG
+ DECLARE_MESSAGE_MAP()
+};
+
+CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
+{
+ //{{AFX_DATA_INIT(CAboutDlg)
+ //}}AFX_DATA_INIT
+}
+
+void CAboutDlg::DoDataExchange(CDataExchange* pDX)
+{
+ CDialog::DoDataExchange(pDX);
+ //{{AFX_DATA_MAP(CAboutDlg)
+ //}}AFX_DATA_MAP
+}
+
+BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
+ //{{AFX_MSG_MAP(CAboutDlg)
+ // No message handlers
+ //}}AFX_MSG_MAP
+END_MESSAGE_MAP()
+
+/////////////////////////////////////////////////////////////////////////////
+// CSudokuDlg dialog
+
+CSudokuDlg::CSudokuDlg(CWnd* pParent /*=NULL*/)
+ : CDialog(CSudokuDlg::IDD, pParent)
+{
+ //{{AFX_DATA_INIT(CSudokuDlg)
+ // NOTE: the ClassWizard will add member initialization here
+ //}}AFX_DATA_INIT
+ // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
+ m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
+}
+
+void CSudokuDlg::DoDataExchange(CDataExchange* pDX)
+{
+ CDialog::DoDataExchange(pDX);
+ //{{AFX_DATA_MAP(CSudokuDlg)
+ // NOTE: the ClassWizard will add DDX and DDV calls here
+ //}}AFX_DATA_MAP
+}
+
+BEGIN_MESSAGE_MAP(CSudokuDlg, CDialog)
+ //{{AFX_MSG_MAP(CSudokuDlg)
+ ON_WM_SYSCOMMAND()
+ ON_WM_PAINT()
+ ON_WM_QUERYDRAGICON()
+ ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
+ ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
+ ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
+ //}}AFX_MSG_MAP
+END_MESSAGE_MAP()
+
+/////////////////////////////////////////////////////////////////////////////
+// CSudokuDlg message handlers
+
+BOOL CSudokuDlg::OnInitDialog()
+{
+ CDialog::OnInitDialog();
+
+ // Add "About..." menu item to system menu.
+
+ // IDM_ABOUTBOX must be in the system command range.
+ ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
+ ASSERT(IDM_ABOUTBOX < 0xF000);
+
+ CMenu* pSysMenu = GetSystemMenu(FALSE);
+ if (pSysMenu != NULL)
+ {
+ CString strAboutMenu;
+ strAboutMenu.LoadString(IDS_ABOUTBOX);
+ if (!strAboutMenu.IsEmpty())
+ {
+ pSysMenu->AppendMenu(MF_SEPARATOR);
+ pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
+ }
+ }
+
+ // Set the icon for this dialog. The framework does this automatically
+ // when the application's main window is not a dialog
+ SetIcon(m_hIcon, TRUE); // Set big icon
+ SetIcon(m_hIcon, FALSE); // Set small icon
+
+ // TODO: Add extra initialization here
+
+ return TRUE; // return TRUE unless you set the focus to a control
+}
+
+void CSudokuDlg::OnSysCommand(UINT nID, LPARAM lParam)
+{
+ if ((nID & 0xFFF0) == IDM_ABOUTBOX)
+ {
+ CAboutDlg dlgAbout;
+ dlgAbout.DoModal();
+ }
+ else
+ {
+ CDialog::OnSysCommand(nID, lParam);
+ }
+}
+
+// If you add a minimize button to your dialog, you will need the code below
+// to draw the icon. For MFC applications using the document/view model,
+// this is automatically done for you by the framework.
+
+void CSudokuDlg::OnPaint()
+{
+ if (IsIconic())
+ {
+ CPaintDC dc(this); // device context for painting
+
+ SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
+
+ // Center icon in client rectangle
+ int cxIcon = GetSystemMetrics(SM_CXICON);
+ int cyIcon = GetSystemMetrics(SM_CYICON);
+ CRect rect;
+ GetClientRect(&rect);
+ int x = (rect.Width() - cxIcon + 1) / 2;
+ int y = (rect.Height() - cyIcon + 1) / 2;
+
+ // Draw the icon
+ dc.DrawIcon(x, y, m_hIcon);
+ }
+ else
+ {
+ CDialog::OnPaint();
+ }
+
+
+ CClientDC dc(this);
+
+ for(i_1=0;i_1<10;i_1++)
+ {
+ dc.MoveTo(20,20+40*i_1);
+ dc.LineTo(380,20+40*i_1);
+ if(i_1%3==0)
+ {
+ dc.MoveTo(20,20+40*i_1+1);
+ dc.LineTo(380,20+40*i_1+1);
+ }
+ }
+ for(j_1=0;j_1<10;j_1++)
+ {
+ dc.MoveTo(20+40*j_1,20);
+ dc.LineTo(20+40*j_1,380);
+ if(j_1%3==0)
+ {
+ dc.MoveTo(20+40*j_1+1,20);
+ dc.LineTo(20+40*j_1+1,380);
+ }
+ }
+
+ if(i<1)
+ TextOut(dc,460,150,"ÎÞ½â",4);
+ else
+ {
+ CString cs;
+ for(i_1=1;i_1<10;i_1++)
+ {
+ for(j_1=1;j_1<10;j_1++)
+ {
+ if(a[i_1][j_1]!=0)
+ {
+ cs.Format("%.0f",a[i_1][j_1]);
+ TextOut(dc,40*j_1-10,40*i_1-10,cs,cs.GetLength());
+ }
+ }
+ }
+ }
+
+}
+
+// The system calls this to obtain the cursor to display while the user drags
+// the minimized window.
+HCURSOR CSudokuDlg::OnQueryDragIcon()
+{
+ return (HCURSOR) m_hIcon;
+}
+
+void CSudokuDlg::OnButton1()
+{
+ // TODO: Add your control notification handler code here
+
+ CFileDialog fileDlg(TRUE);
+ fileDlg.m_ofn.lpstrTitle = "OpenFile";
+ fileDlg.m_ofn.lpstrFilter = "Txt(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0";
+
+ CClientDC paDC(this);
+ CString strLine;
+
+ i_txt=1;
+ if(IDOK == fileDlg.DoModal())
+ {
+ CStdioFile file(fileDlg.GetFileName(),CFile::modeRead);
+ while(file.ReadString(strLine))
+ {
+ //AfxMessageBox(strLine);
+
+ float st=atof(strLine);
+ a[(i_txt-1)/9+1][(i_txt-1)%9+1]=st;
+ i_txt++;
+ if(i_txt==820) break;
+ }
+
+ file.Close();
+ Invalidate();
+ }
+
+ for(i_1=1;i_1<10;i_1++)
+ {
+ for(j_1=1;j_1<10;j_1++)
+ {
+ b[i_1][j_1]=a[i_1][j_1];
+ }
+ }
+ for(i_1=1;i_1<10;i_1++)
+ {
+ for(j_1=1;j_1<10;j_1++)
+ {
+ c[i_1][j_1]=a[i_1][j_1];
+ }
+ }
+ i=1;j=1;i_i=1;j_j=1;
+}
+
+void CSudokuDlg::OnButton2()
+{
+ // TODO: Add your control notification handler code here
+
+ if( times!=0 && c[i][j]==0 ) b[i][j]--;
+ times=0;
+
+ i=i_i;
+ j=j_j;
+ for(i;i<10;i++)
+ {
+ // if(j==9) j=1;
+ for(j;j<10;j++)
+ {
+ if(c[i][j]==0)
+ {
+ for(t=b[i][j]+1;t<10;t++)
+ {
+ b[i][j]=t;
+ k=0;
+ for(n=0;n<9;n++)
+ {
+ if(k) break;
+ if( b[(i-1)/3*3+1+n/3][(j-1)/3*3+1+n%3]==b[i][j] && (i-1)/3*3+1+n/3!=i && (j-1)/3*3+1+n%3!=j )
+ k=1;
+ }
+ for(n=1;n<10;n++)
+ {
+ if(k) break;
+ if( b[i][n]==b[i][j] && n!=j )
+ k=1;
+ }
+ for(n=1;n<10;n++)
+ {
+ if(k) break;
+ if( b[n][j]==b[i][j] && n!=i )
+ k=1;
+ }
+ if(!k) break;
+ }
+ if( b[i][j]==9 && k!=0 )
+ {
+ b[i][j]=0;
+
+ if(j==1) {i--;j=9;}
+ else j--;
+
+ while(c[i][j]!=0)
+ {
+ if(j==1) {i--;j=9;}
+ else j--;
+ }
+
+ if(j==1) {i--;j=9;}
+ else j--;
+ }
+ }
+ times++;
+ if(times==100000)
+ {
+ if( b[i][j]==9 && k!=0 )
+ {
+ if(j==9) {i++;j=1;}
+ else j++;
+ }
+ break;
+ }
+ }
+ if(times==100000) break;
+ j=1;
+ }
+ i_i=i;
+ j_j=j;
+
+ for(i_1=1;i_1<10;i_1++)
+ {
+ for(j_1=1;j_1<10;j_1++)
+ {
+ a[i_1][j_1]=b[i_1][j_1];
+ }
+ }
+
+ Invalidate();
+
+}
+
+void CSudokuDlg::OnButton3()
+{
+ // TODO: Add your control notification handler code here
+ b[9][9]++;
+ i_i=9;j_j=9;
+ i=9;j=9;
+}
--- /dev/null
+// sudokuDlg.h : header file
+//
+
+#if !defined(AFX_SUDOKUDLG_H__EE3D72D0_BFD8_4DB1_9290_B789D918D4EC__INCLUDED_)
+#define AFX_SUDOKUDLG_H__EE3D72D0_BFD8_4DB1_9290_B789D918D4EC__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+/////////////////////////////////////////////////////////////////////////////
+// CSudokuDlg dialog
+
+class CSudokuDlg : public CDialog
+{
+// Construction
+public:
+ CSudokuDlg(CWnd* pParent = NULL); // standard constructor
+
+// Dialog Data
+ //{{AFX_DATA(CSudokuDlg)
+ enum { IDD = IDD_SUDOKU_DIALOG };
+ // NOTE: the ClassWizard will add data members here
+ //}}AFX_DATA
+
+ // ClassWizard generated virtual function overrides
+ //{{AFX_VIRTUAL(CSudokuDlg)
+ protected:
+ virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
+ //}}AFX_VIRTUAL
+
+// Implementation
+protected:
+ HICON m_hIcon;
+
+ // Generated message map functions
+ //{{AFX_MSG(CSudokuDlg)
+ virtual BOOL OnInitDialog();
+ afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
+ afx_msg void OnPaint();
+ afx_msg HCURSOR OnQueryDragIcon();
+ afx_msg void OnButton1();
+ afx_msg void OnButton2();
+ afx_msg void OnButton3();
+ //}}AFX_MSG
+ DECLARE_MESSAGE_MAP()
+};
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
+
+#endif // !defined(AFX_SUDOKUDLG_H__EE3D72D0_BFD8_4DB1_9290_B789D918D4EC__INCLUDED_)