
lua
文章平均质量分 72
松阳
我在路上走着,遇到了你,大家点头微笑,结伴一程
缘深缘浅,缘聚缘散,该分手时分手,该重逢时重逢
惜缘即可,不必攀缘
同路人而已
能不远不近地彼此陪伴着,不是已经很好了吗?
展开
-
Lua 在 windows上的环境配置
环境:luafor windows (lfW)主页:http://luaforwindows.luaforge.net/lua for windows其实是一整套Lua的开发环境,它包括:Lua Interpreter(Lua解释器)Lua Reference Manual(Lua参考手册) Quick Lua Tour (Lua快速入门)Examples (Lua原创 2011-11-17 17:43:45 · 22217 阅读 · 1 评论 -
Dota2 AI开发(一)环境配置
最近打Dota2,发现人机对战电脑AI,特别的傻。过了30分钟,友军又不带线,又不打野,来来回来闲逛;敌军5人抱团满图抓我。这种1V5经常以被控到死收场,真是伤感。忽然想起V社似乎开放了AI接口,身为游戏开发者,拯救万民于水火义不容辞啊。树枝吃喝买起来,就有了这个系列的文章。由于平时破事一堆,尽量保证不太监吧...原创 2017-02-27 00:45:00 · 9180 阅读 · 4 评论 -
google ProtoBuf 简介入门
1 概览 欢迎来到protocol buffer的开发者指南文档,一种语言无关、平台无关、扩展性好的用于通信协议、数据存储的结构化数据串行化方法。 本文档面向希望使用protocol buffer的Java、C++或Python开发者。这个概览介绍了protocol buffer,并告诉你如何开始,你随后可以跟随编程指导( http://code.google.com/apis/pro原创 2011-12-23 10:07:05 · 3859 阅读 · 0 评论 -
Lua编程(六)C对Lua函数的调用
C++端: #include "stdafx.h"lua_State *L;void load_lua(lua_State **L,char *filename){ *L=luaL_newstate(); luaL_openlibs(*L); if(luaL_loadfile(*L,filename) || lua_pcall(*L,0,0,0)){ luaL原创 2011-11-28 11:54:14 · 2202 阅读 · 0 评论 -
Lua编程(八)协同程序的高级用法——生产者-消费者问题
这个问题是比较经典的啦,基本所有语言的多线程都会涉及到,但是没想到Lua的这个这么复杂 看了好长时间才算看明白,先上个逻辑图: 开始时调用消费者,当消费者需要值时,再调用生产者生产值,生产者生产值后停止,直到消费者再次请求。设计为消费者驱动的设计。 图画的不太好,可以先将Filter遮住,它是过滤器对两个程序之间传递的信息进行处理。去掉Filter逻辑就更清晰原创 2011-11-29 14:55:38 · 4335 阅读 · 0 评论 -
Lua编程(七)协同程序基础逻辑
co=coroutine.create(function() print("hi")end)print(coroutine.status(co))coroutine.resume(co)print(coroutine.status(co))print()co=coroutine.create(function() for i=1,2 do print("c原创 2011-11-28 18:30:55 · 1904 阅读 · 0 评论 -
Lua编程(五) C对Lua表的读取和添加
C端代码:#include "stdafx.h"lua_State *L;void load_lua(char *filename){ L=luaL_newstate(); luaL_openlibs(L); if((luaL_loadfile(L,filename) || lua_pcall(L,0,0,0))!= 0){ luaL_error(L,"l原创 2011-11-24 19:19:58 · 7121 阅读 · 0 评论 -
Lua编程(四) Lua标准库:表库、字符串库、系统库
tb1 = { "alpha","log","gamme"}print(table.concat(tb1," , "))print(table.concat(tb1,"\n",nil,2))print()tb1[88.99] = 'aaa'--返回索引值最大的值,并且计算小数print(table.maxn(tb1))print()--默认删除索引最大的原创 2011-11-24 17:56:43 · 2674 阅读 · 0 评论 -
Lua编程(三) 稀疏表、双端队列、格式化输出、表和循环表的格式化输出
a={}for i=1,10 do a[i]={} for j=0,10 do if(i%2==0) then a[i][j]=0 end endendprint(a[9][10])print(a[10][10])print()--双端队列List={}function List.new() return {fir原创 2011-11-24 11:41:18 · 4433 阅读 · 0 评论 -
Lua编程(二) 表面向对象、metatable对表进行扩展
counter = { count = 0}function counter.get(self) return self.countendfunction counter:inc() self.count=self.count+1endprint(counter.get(counter))counter.inc(counter)print(cou原创 2011-11-23 17:56:29 · 2446 阅读 · 0 评论 -
Lua编程(一) select、debug、可变参数、table操作、error
function test_print(...) for i=1,select("#",...) do print(i,select(i,...)) endendtest_print(11,12,13,14)print()print(debug.traceback())print()function test(...) for i=1,arg原创 2011-11-23 17:50:22 · 7566 阅读 · 0 评论 -
VS2008 Lua项目配置
在VS2008中配置路径 1、项目属性->配置属性->c/c++->常规->附加包含目录->将lua的includ文件夹位置填入 2、项目属性->配置属性->链接器->常规->附加到库目录->将lua的lib文件夹位置填入 3、项目属性->配置属性->链接器->输入->lua51.lib lua5.1.lib原创 2011-11-21 16:13:17 · 3096 阅读 · 0 评论 -
Lua 函数用法探究
在Lua 基本语法快速入门 中有涉及到函数的用法,但只是普通的应用,并没有深成次的研究一下,介于函数用的还是比较多的就专门做个专题研究一下~ 一、函数、变量的用法 函数的定义用关键字function 。然后加函数名和变量。注意后面没有do。最后以end结束。 在函数中的变量默认是全局变量,但通常情况下函数中的变量都是在函数中有效原创 2011-11-21 13:57:12 · 5506 阅读 · 0 评论 -
在Lua中调用C函数
Lua当然也能够调用C中定义的函数。一个平均数的例子,解释一下。 下面给出的C++函数average()演示了如何接受多个参数且返回超过一个值。 lua_gettop函数返回栈顶的索引值。因为在Lua中栈是从1开始编号的,因此该函数获得的值就是参数的个数。 在for循环中计算所有参数之和。 调用lua_pushnumber()将参数的平均值压栈。原创 2011-11-18 18:07:57 · 5458 阅读 · 0 评论 -
Lua 基本语法快速入门
Lua语法与C语言有些相似也不太一样,写了语句学一下 --begina = --[[explain]] "ha";print(a)if a == "ha" then print("if test passed")else print("if used wrong")endb,c=2,3print(b,c)b,c=c,bi原创 2011-11-17 17:56:41 · 5044 阅读 · 0 评论 -
在C中调用Lua作配置文件和响应函数
Lua是脚本语言,最大的优势就是轻巧灵便,不用编译。当C的框架写好,只要更改lua的相应处理即可以更改功能,并且不用重新编译。以下是在C中调用Lua资源方法的示例程序: C++端: // Lua1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#includeextern "C" { //如不用extern会出现连接错误原创 2011-11-18 17:12:07 · 4543 阅读 · 0 评论 -
Dota2 AI 开发 (二)定制AI阵容 配置英雄出装
在Dota2 AI 开发(一)环境配置 中介绍了如何搭建 Dota2 AI 的开发环境,但这是远远不够的,在这篇文章中,主要介绍Dota2中AI的常规控制方式,并介绍如何在人机比赛中配置一个裸跳刀的Sven。原创 2017-04-17 10:50:58 · 7020 阅读 · 1 评论