“中兴·图灵杯”实例教程
为了方便缺乏相关基础的同学参加比赛,我们整理了演示的demo,在这里写下一篇编写图灵杯AI的教程。
在这里先给出完整的代码,有一定基础的同学可以直接看代码,后面会分Update、getMap、move三个函数进行讲解。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HackerInterface;
using ljqLog;
namespace AI1
{
public class Controller : HackerInterface.IControl
{
Log logger = new Log("1");
private int[] mapStatus = new int[4]; //身周地图信息
private int[] selfPosition = new int[3]; //自身位置信息
private int[] keyPosition = new int[3]; //钥匙位置信息
private int[] exitPosition = new int[3]; //出口位置信息
private int[] liftPosition = new int[2]; //电梯位置信息
//队名录入位置
public string GetTeamName()
{
return "easy AI";
}
/// <summary>
/// 获取自身周围地图信息
/// </summary>
/// <param name="hacker">调用接口实例</param>
/// <param name="selfPosition">自身位置</param>
private void getMap(Hacker hacker)
{
int?[] temp = new int?[4]; //临时储存地图信息
temp[0] = hacker.GetMapType(selfPosition[0], selfPosition[1], selfPosition[2] + 1);
temp[1] = hacker.GetMapType(selfPosition[0], selfPosition[1], selfPosition[2] - 1);
temp[2] = hacker.GetMapType(selfPosition[0] - 1, selfPosition[1], selfPosition[2]);
temp[3] = hacker.GetMapType(selfPosition[0] + 1, selfPosition[1], selfPosition[2]);
//int? 转化 int
for (int i = 0; i < 4; i++)
{
if (temp[i].HasValue)