• 大小: 241KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2023-02-06
  • 语言: C#
  • 标签: 8  puzzle  问题  C#  代码  

资源简介

8 puzzle问题, C# 代码,算法设计与分析课程作业,实现简单的8 puzzle游戏,适合初学者

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace ALG_eight_puzzle
{
    /// 
    /// MainWindow.xaml 的交互逻辑
    /// 

    public partial class MainWindow : Window
    {
        public const int MAX = 10000000;
        //public static int[] st = new int[MAX 9];
        //public static int[] goal = new int[9];
        //public static int[] dist = new int[MAX];
        //public static int[] fa = new int[MAX];
        //public static int[] vis = new int[362881];
        public static int[] st = null;
        public static int[] goal = null;
        public static int[] dist = null;
        public static int[] fa = null;
        public static int[] vis = null;
        public static int[] fact = new int[9];
        public static int[] dx = { -1 1 0 0 };
        public static int[] dy = { 0 0 -1 1 };
        public static int result;
        public static string ans;

        static void init_lookup()
        {
            fact[0] = 1;
            for (int i = 1; i < 9; i++)
            {
                fact[i] = fact[i - 1] * i;
            }
        }
        static int can_insert(int t)
        {
            int c = 0;
            for (int i = 0; i < 9; i++)
            {
                int cnt = 0;
                for (int j = i + 1; j < 9; j++)
                    if (st[t j] < st[t i]) cnt++;
                c += fact[8 - i] * cnt;
            }
            Console.WriteLine(“hash function :“ + c);
            if (vis[c] == 1) return 0;
            else return vis[c] = 1;
        }
        static int bfs()
        {
            init_lookup();
            int front = 1 rear = 2;
            fa[front] = 0;
            while (front < rear)
            {
                bool flag = true;
                for (int i = 0; i < 9; i++)
                {
                    if (st[front i] != goal[i])
                    {
                        flag = false; break;
                    }
                }
                if (flag) return front;
                int z;
                for (z = 0; z < 9; z++)
                    if (0 == st[front z]) break;
                int x = z / 3 y = z % 3;
                for (int i = 0; i < 4; i++)
                {
                    int nx = x + dx[i];
                    int ny = y + dy[i];
                    int nz = nx * 3 + ny;
                    if (nx >= 0 && nx < 3 && ny >= 0 && ny < 3)
                    {
                        for (int k = 0; k < 9; k++) st[rear k] = st[front k];
                        st[rear nz] = st[front z];
                        st[rear z] = s

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-06-21 10:43  C#源代码\
     目录           0  2012-06-13 01:29  C#源代码\ALG_eight_puzzle\
     目录           0  2012-06-26 00:14  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\
     文件        4537  2012-06-17 21:04  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\ALG_eight_puzzle.csproj
     文件         227  2012-06-17 21:26  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\ALG_eight_puzzle.csproj.user
     文件         327  2012-06-13 01:28  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\App.xaml
     文件         312  2012-06-13 01:28  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\App.xaml.cs
     文件        3452  2012-06-18 02:12  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\MainWindow.xaml
     文件        6126  2012-06-18 02:50  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\MainWindow.xaml.cs
     目录           0  2012-06-13 01:28  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\Properties\
     文件        2197  2012-06-13 01:28  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\Properties\AssemblyInfo.cs
     文件        2882  2012-06-13 01:28  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\Properties\Resources.Designer.cs
     文件        5612  2012-06-13 01:28  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\Properties\Resources.resx
     文件        1101  2012-06-13 01:28  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\Properties\Settings.Designer.cs
     文件         201  2012-06-13 01:28  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\Properties\Settings.settings
     目录           0  2012-06-18 02:50  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\bin\
     目录           0  2012-06-13 01:56  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\bin\Debug\
     文件       18944  2012-06-18 02:42  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\bin\Debug\ALG_eight_puzzle.exe
     文件       42496  2012-06-18 02:42  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\bin\Debug\ALG_eight_puzzle.pdb
     文件       11600  2012-06-18 00:38  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\bin\Debug\ALG_eight_puzzle.vshost.exe
     文件         490  2010-03-17 22:39  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\bin\Debug\ALG_eight_puzzle.vshost.exe.manifest
     目录           0  2012-06-18 02:51  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\bin\Release\
     文件       16384  2012-06-18 02:51  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\bin\Release\ALG_eight_puzzle.exe
     文件       34304  2012-06-18 02:51  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\bin\Release\ALG_eight_puzzle.pdb
     文件       11600  2012-06-18 02:50  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\bin\Release\ALG_eight_puzzle.vshost.exe
     文件         490  2010-03-17 22:39  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\bin\Release\ALG_eight_puzzle.vshost.exe.manifest
     目录           0  2012-06-13 01:28  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\obj\
     目录           0  2012-06-18 02:50  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\obj\x86\
     目录           0  2012-06-18 02:50  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\obj\x86\Debug\
     文件         180  2012-06-18 01:39  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\obj\x86\Debug\ALG_eight_puzzle.Properties.Resources.resources
     文件        1826  2012-06-18 02:12  C#源代码\ALG_eight_puzzle\ALG_eight_puzzle\obj\x86\Debug\ALG_eight_puzzle.csproj.FileListAbsolute.txt
............此处省略53个文件信息

评论

共有 条评论