Day 1 Mar.3 2015

工作中一年多的AI经验,总结下来如果真正希望做到智能,那游戏AI就是个工作量巨大而且麻烦的东西,应对各种不同情况需要做分别的处理,如果不建立简便的测试环境更是容易留下隐患。
一般AI都是根据现有数据,依照预定的逻辑判断,在一个或一系列消息到来的时候做出一个或一系列的决策。优秀的AI系统对于消息和数据的处理不应该是独立的,往往多个消息到来以后才能做出一个决策。
所以Bragi项目里有这么几点是比较重要的:
1. 简单而健壮的消息处理机制
2. 良好的数据共享机制
3. 利用脚本完成的逻辑判断
4. 可动态修改的配置
5. 方便自动化测试的接口
6. 修改到预测型AI的空间

目前工作中使用到的消息处理机制是有限状态机,并且还不能算是一个优秀的状态机。不同状态之间是互相独立的,不仅仅数据无法共享,一个状态机退出时的结果也不能很迅速的反馈到上一层,所以这是一套很失败的系统,勉强维护下去只会越来越难。但并不是说有限状态机不好,至少在状态比较少的时候非常简便,在一定程度上也容易扩展。不过考虑到Bragi项目是希望成为一个AI框架而设计的,所以应该会使用行为树或是其他的机制作为核心模块。这块内容需要以后多多学习,还要记录下学习经验。

不过在此之前我想先把一些基础依赖完成,比如脚本语言和C/C++交互的模块。一是Lua,二是Python,可能还会看一下JavaScript。选Lua是因为游戏中Lua应用最广;Python是因为使用比较多,自己写可能会比较顺手;至于JavaScript,Cocos都在用,并且google V8引擎的关系,速度上不亚于Lua,甚至会更快。

后面的工作就先从脚本语言入手吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
保留原本功能优化以下代码import pandas as pd import numpy as np import matplotlib.pyplot as plt # 1.读取并查看数据 bike_day = pd.read_csv("C:/Users/15020/Desktop/26.bike_day.csv") print(bike_day.head(5)) # 前5行 print(bike_day.tail(2)) #后2行 #2.处理数据并导出到文件 bike_day_user = bike_day[['instant','dteday','yr', 'casual', 'registered']].dropna() bike_day_user.to_csv('bike_day_user.txt', sep=' ',index=False, header=False) #3.读取数据并添加新列并导出到新文件 bike_day_user = pd.read_csv('bike_day_user.txt', sep=' ', header=None, names=['instant','dteday','yr', 'casual',"registered"]) bike_day_user['cnt'] = bike_day_user['casual'] + bike_day_user['registered'] bike_day_user.to_excel('bike_day_user_cnt.xlsx', index=False) #4.读取数据并进行统计 bike_day_user_cnt = pd.read_excel('bike_day_user_cnt.xlsx') print('cnt最大值:',bike_day_user_cnt['cnt'].max()) print('ent最小值:',bike_day_user_cnt['cnt'].min()) print('2011号cnt年平均值:',bike_day_user_cnt[bike_day_user_cnt['yr'] == 0]['cnt'].mean()) print('2012年cnt年平均值:',bike_day_user_cnt[bike_day_user_cnt['yr'] == 1]['cnt'].mean()) print('2011年月严始值:', bike_day_user_cnt[bike_day_user_cnt['yr'] == 0].groupby('mnth')['cnt'].mean()) print('2022年月平均值:', bike_day_user_cnt[bike_day_user_cnt['yr'] == 1].groupby('mnth')['cnt'].mean()) # 5.可视化并保存图像 fig, ax = plt.subplots() ax.barh(bike_day_user_cnt['mnth'], bike_day_user_cnt[bike_day_user_cnt['yr'] == 0].groupby('mnth')['cnt'].mean(), color='blue', label='2011') ax.barh(bike_day_user_cnt['mnth'], bike_day_user_cnt[bike_day_user_cnt['yr'] == 1].groupby('mnth')['cnt'].mean(), color='lightblue', label='2012') ax.set_yticks(np.arange(1,13)) ax.set_yticklabels(['Jan','Feb','Mar', 'Apr', 'May','Jun','Jul','Aug', 'sep', 'Oct','Nov','Dec']) ax.set_xlabel('Average number of shared bike users') ax.set_title('Monthly Average Number of Shared Bike Users in 2011-2012') ax.legend() fig.savefig('bike_day_user_cnt.png', dpi=300)
06-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值