• 大小: 15KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: 其他
  • 标签: A*算法  

资源简介

人工智能课程资源,用A*算法实现的滑动积木块小游戏,2D界面,有助于加深了解A*算法的基本原理。

资源截图

代码片段和文件信息

package ouc;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class AppMain {
public static Status initialStatus(){
@SuppressWarnings(“resource“)
Scanner reader = new Scanner(System.in);
int size;
Status firstStat = new Status();

System.out.println(“请输入单色木块的数目:“);
size = reader.nextInt();     
if( size < 2 )
return null;     
Status.setSize(size);
int[] s =new int[Status.SIZE*2+1];     
int k;
//初始化状态数组
for( k = 0; k < Status.SIZE; k ++ )
s[k] = 1;
for( k = 0; k < Status.SIZE; k ++ )
s[Status.SIZE+k] = -1;
s[Status.SIZE+k] = 0;
firstStat = new Status(s0);
return firstStat;
}

public static void main(String args[]){
Status firstStat = initialStatus();

while(firstStat != null){
int i = 0;
Move move = new Move();
List statList = new ArrayList();//状态链表
statList.add(i++firstStat);
Status curStat1curStat2printStat;
do {
curStat2 = statList.get(i-1);
curStat1 = move.GetBestNextStatus(curStat2);
statList.add(i++ curStat1);
}while ( curStat1.hn != 0);

System.out.println(“在下面打印走步:“);
//调整输出的格式
int len=Status.SIZE*8;
for( int ii = 0; ii < len-Status.SIZE; ii ++ )
System.out.print(“  “);
System.out.print(“棋局状态“);
for( int ii = 0; ii < len; ii ++ )
System.out.print(“  “);
System.out.println(“耗散值      评估函数 “);

for ( int j = 0; j < statList.size(); j ++ ){
printStat = statList.get(j);
printStat.PrintStatus();
}
System.out.println(“  共走了“+(statList.size()-1)+“步,最少耗散值为“+statList.get(statList.size()-1).gn+“。“);
System.out.println(“ “);
firstStat = initialStatus();
}
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-05-05 12:14  AI\
     文件         301  2013-05-05 12:14  AI\.classpath
     文件         378  2013-05-05 12:14  AI\.project
     目录           0  2013-05-05 12:14  AI\.settings\
     文件         629  2013-05-05 12:14  AI\.settings\org.eclipse.jdt.core.prefs
     目录           0  2013-05-05 12:14  AI\bin\
     目录           0  2013-05-05 12:18  AI\bin\ouc\
     文件        2602  2013-05-05 12:18  AI\bin\ouc\AppMain.class
     文件         433  2013-05-05 12:18  AI\bin\ouc\BoxMove.class
     文件        1865  2013-05-05 12:18  AI\bin\ouc\DynamicShow$HitTestAdapter.class
     文件        3106  2013-05-05 12:18  AI\bin\ouc\DynamicShow.class
     文件        3002  2013-05-05 12:18  AI\bin\ouc\Move.class
     文件        1778  2013-05-05 12:18  AI\bin\ouc\Status.class
     目录           0  2013-05-05 12:14  AI\src\
     目录           0  2013-05-05 12:18  AI\src\ouc\
     文件        1830  2013-05-05 12:18  AI\src\ouc\AppMain.java
     文件         168  2013-05-05 12:18  AI\src\ouc\BoxMove.java
     文件        3044  2013-05-05 12:18  AI\src\ouc\DynamicShow.java
     文件        2871  2013-05-05 12:18  AI\src\ouc\Move.java
     文件        1321  2013-05-05 12:18  AI\src\ouc\Status.java

评论

共有 条评论