leela zero, 用mfc做个界面-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 1235530
  • 博文数量: 76
  • 博客积分: 1959
  • 博客等级: 上尉
  • 技术积分: 2689
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-19 12:07
个人简介

樽中酒不空

文章分类

全部博文(76)

文章存档

2020年(4)

2019年(1)

2017年(2)

2016年(2)

2015年(7)

2014年(11)

2013年(13)

2012年(18)

2011年(2)

2010年(16)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: c/c

2019-05-20 16:41:59

leela zero是一个开源围棋项目,。
编译很容易,根据官方文档:

example of compiling - windows

# clone github repo
git clone 
cd leela-zero
git submodule update --init --recursive
cd msvc
double-click the leela-zero2015.sln or leela-zero2017.sln corresponding
to the visual studio version you have.
# build from visual studio 2015 or 2017
唯一遇到的麻烦就是github有时下载非常慢。 leela zero本身是基于gtp协议的程序,如果不使用第三方客户端的话,启动后需要在命令行下手动输入命令下棋。出于调试和移植的目的,这里用mfc改写了一下,增加了一个简单的ui,然后调用leelaapp.c里面的代码,整合成了一个独立的demo程序,见:
目前简单实现了人机对弈和悔棋两个功能。
主要功能在leelaapp这个class中,比如:

void leelaapp::init()
{ // set up engine parameters gtp::setup_default_parameters(); cfg_cpu_only = true; cfg_num_threads = std::min(smp::get_num_cpus(), size_t{ max_cpus }); cfg_num_threads = 2; cfg_allow_pondering = false; cfg_max_playouts = 100; cfg_timemanage = timemanagement::fast; cfg_timemanage = timemanagement::off; cfg_max_visits = uctsearch::unlimited_playouts; //cfg_max_visits = 3200; // default to self-play and match values. //cfg_fpu_root_reduction = cfg_noise ? 0.0f : cfg_fpu_reduction; cfg_fpu_root_reduction = 0.25; //parse_commandline(argc, argv); // disable io buffering as much as possible std::cout.setf(std::ios::unitbuf); std::cerr.setf(std::ios::unitbuf); std::cin.setf(std::ios::unitbuf); setbuf(stdout, nullptr); setbuf(stderr, nullptr); init_global_objects(); maingame = std::make_unique(); /* set board limits */ maingame->init_game(board_size, komi); time_settings("0 10 1");
}
基本都是leela-zero的原始代码,只是改用mfc界面下调用。

根据这个demo程序,界面再优化一下,完善一下功能,可以做一个简单的围棋客户端了。
这里最大的问题是:leela-zero每次启动加载权重文件,如果有时间把权重文件分析好,放到内存缓存起来,这样每次启动客户端会节省很多时间。

这个程序是用vc2017写的,只是在leela zero的源码上增加啊界面,同样道理,使用qt,c#等开发工具一样能实现同样效果。同样也可以在android和ios实现。
                                   
阅读(1505) | 评论(1) | 转发(0) |
0

上一篇:berkeley db简单使用

下一篇:c 工程

给主人留下些什么吧!~~

sxcong2019-05-20 16:44:15

cu的内容怎么不换行?编辑功能越来越差,难怪没人来了

|
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图