資源簡介
這次程序使用C#語言,使用了人工智能中的模擬退火算法解決了八皇后的問題,界面也很完整,可以給出很完整的數據。

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Data;
using?System.Drawing;
using?System.Linq;
using?System.Text;
using?System.Windows.Forms;
namespace?QueenFinal
{
????public?partial?class?Form1?:?Form
????{
????????public?Form1()
????????{
????????????InitializeComponent();
????????}
????????private?void?button4_Click(object?sender?EventArgs?e)
????????{
????????????Application.Exit();
????????}
????????private?void?button2_Click(object?sender?EventArgs?e)
????????{
????????????MessageBox.Show(“1.請輸入皇后個數\n2.點擊開始按鈕進行計算\n3.點擊退出退出程序“);
????????}
????????private?void?button3_Click(object?sender?EventArgs?e)
????????{
????????????MessageBox.Show(“it?is?love“);
????????}?
????????private?void?button1_Click(object?sender?EventArgs?e)
????????{
????????????QueenNum?=?int.Parse(this.textBox1.Text);
????????????if?(QueenNum?==?1)?richTextBox1.Text?+=?“解為1即只有一個皇后!“;
????????????else?if?(QueenNum?>?3)
????????????{
????????????????init(QueenNum);
????????????????str?=?“Board?dimension:?“?+?dim?+?“\n“;
????????????????this.richTextBox1.Text?+=?str;
????????????????str?=?“Initial?Conflicts:?“?+?getConflicts()?+?“\n“;
????????????????this.richTextBox1.Text?+=?str;
????????????????solve(1000?0.99);
????????????}
????????????else?this.richTextBox1.Text?+=?“輸入的皇后數無解!\n“;
????????}
????????public?void?init(int?dimension)
????????{
????????????dim?=?dimension;
????????????internalIter?=?0;
????????????conflictPosition?=?0;
????????????ran?=?new?Random();?
????????????board?=?new?int[dim];
????????????test?=?new?int[dim];
????????????for?(int?i?=?0;?i?????????????????{??
????????????????????board[i]?=?i;?????????????????//把所有皇后初始化在對角線上
????????????????}
????????????for?(int?i?=?0;?i?????????????????test[i]?=?board[i];
????????????????initialConflicts?=?currentConflicts?=?this.getConflicts();
????????}
????????public?void?solve(double?inInitialTemperature?double?inCoolingCoefficient)
????????{
????????????currentTemperature?=?inInitialTemperature;
????????????coolingCoefficient?=?inCoolingCoefficient;
????????????testQueen();
????????????if?(dim?<=?20)
????????????{
????????????????display();
????????????}
????????????else
????????????{
????????????????this.richTextBox1.Text?+=“\nSolution?found!?Too?large?to?print!\n“;
????????????}
????????}
????????private?void?testQueen()
????????{
????????????int?swap1?swap2;
????????????while(true)
????????????{?//控制溫度
????????????????while(true)
????????????????{?//尋找一個合理的解
????????????????????swap1?=?findConflictPosition();?//first?swap?position:?a?conflict?position
????????????????????swap2?=?ran.Next(dim);?//second?swap?position:?a?random?position
????????????????????swap(swap1?swap2);?//swap?in?array?test[]
????????????????????conflictsDifference?=?getConflictsDifference(swap1?swap2);?//the?differece?after?and?before?swap?by?comparing?board[]?and?test
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????12800??2010-12-08?21:30??QueenFinal\bin\Debug\QueenFinal.exe
?????文件??????30208??2010-12-08?21:30??QueenFinal\bin\Debug\QueenFinal.pdb
?????文件??????14848??2010-12-29?19:35??QueenFinal\bin\Debug\QueenFinal.vshost.exe
?????文件????????490??2009-06-11?05:14??QueenFinal\bin\Debug\QueenFinal.vshost.exe.manifest
?????文件???????8816??2010-12-29?19:36??QueenFinal\Form1.cs
?????文件???????5485??2010-12-08?21:30??QueenFinal\Form1.Designer.cs
?????文件???????5817??2010-12-08?21:30??QueenFinal\Form1.resx
?????文件???????4440??2010-12-08?21:30??QueenFinal\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache
?????文件???????6163??2010-12-08?21:30??QueenFinal\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件????????172??2010-12-08?21:30??QueenFinal\obj\x86\Debug\GenerateResource.read.1.tlog
?????文件????????454??2010-12-08?21:30??QueenFinal\obj\x86\Debug\GenerateResource.write.1.tlog
?????文件????????692??2010-12-29?19:35??QueenFinal\obj\x86\Debug\QueenFinal.csproj.FileListAbsolute.txt
?????文件??????12800??2010-12-08?21:30??QueenFinal\obj\x86\Debug\QueenFinal.exe
?????文件????????180??2010-12-08?21:30??QueenFinal\obj\x86\Debug\QueenFinal.Form1.resources
?????文件??????30208??2010-12-08?21:30??QueenFinal\obj\x86\Debug\QueenFinal.pdb
?????文件????????180??2010-12-08?21:30??QueenFinal\obj\x86\Debug\QueenFinal.Properties.Resources.resources
?????文件???????7897??2010-12-08?21:30??QueenFinal\obj\x86\Debug\ResolveAssemblyReference.cache
?????文件????????491??2010-12-08?21:30??QueenFinal\Program.cs
?????文件???????1352??2010-12-08?21:30??QueenFinal\Properties\AssemblyInfo.cs
?????文件???????2868??2010-12-08?21:30??QueenFinal\Properties\Resources.Designer.cs
?????文件???????5612??2010-12-08?21:30??QueenFinal\Properties\Resources.resx
?????文件???????1093??2010-12-08?21:30??QueenFinal\Properties\Settings.Designer.cs
?????文件????????249??2010-12-08?21:30??QueenFinal\Properties\Settings.settings
?????文件???????3679??2010-12-08?21:30??QueenFinal\QueenFinal.csproj
?????文件????????861??2010-12-08?21:30??QueenFinal\QueenFinal.sln
????..A..H.?????18432??2010-12-29?19:35??QueenFinal\QueenFinal.suo
?????目錄??????????0??2010-12-08?21:30??QueenFinal\obj\x86\Debug\TempPE
?????目錄??????????0??2010-12-08?21:30??QueenFinal\obj\x86\Debug
?????目錄??????????0??2010-12-08?21:30??QueenFinal\bin\Debug
?????目錄??????????0??2010-12-08?21:30??QueenFinal\obj\x86
............此處省略7個文件信息
- 上一篇:WPF DataGrid綁定DataTable demo
- 下一篇:C#網絡版斗地主
評論
共有 條評論