TilePuzzle Sample: Demonstrates Interoperability Between C# and C++
The TilePuzzle sample demonstrates several major Visual C++ features:
The sample is comprised of components implemented with several new technologies: C++, C#, and the new COM-related attributes.
The sample demonstrates interoperability between managed components (written with C++ and C#) and native components (written with C++ using COM attributes).
The sample implements a basic puzzle game called the Tile Puzzle. The sample loads a bitmap, splits the bitmap into any number of tiles (determined by the user), and randomizes the individual tiles. The user then solves the puzzle by sliding individual tiles around until the original picture is displayed. In addition to these features, the sample has the ability to solve the puzzle using heuristic search algorithms written in C++ and the .NET Framework classes.
Security Note |
|---|
|
This sample code is intended to illustrate a concept, and it shows only the code that is relevant to that concept. It may not meet the security requirements for a specific environment, and it should not be used exactly as shown. We recommend that you add security and error-handling code to make your projects more secure and robust. Microsoft provides this sample code "AS IS" with no warranties. |
To get samples and instructions for installing them:
To access samples from Visual Studio
-
On the Help menu, click Samples.
By default, these samples are installed in drive:\Program Files\Microsoft Visual Studio 10.0\Samples\.
For the most recent version of this sample and a list of other samples, see Visual Studio Samples on the MSDN Web site.
To build and run TilePuzzle using Visual Studio
In the Visual Studio IDE, load the solution file PUZZLE.sln.
In Solution Explorer, right-click the PUZZLE solution.
On the shortcut menu, click Build Solution.
On the Debug menu, click Start.
After the project builds successfully, try to solve the puzzle yourself.
The sample demonstrates the following classes:
System.Windows.Forms::Form – Implements the AboutForm object found in the PUZZLE project.
System::Object – Implements the GameLevelEnum object found in the PUZZLE project.
System::Delegate – Implements the SolveThreadProcDlg object found in the PUZZLE project.
Security Note