如何实现python程序和C++程序的交互? 5C

现在有一个项目的程序是用C++写的,它是一个游戏,这部分的代码比较多,有很多类和函数,然后我想用python训练神经网络作为这个游戏的AI。训练过程怎么说实现和C++游戏的数据通信呢?
如果用python调用C++,网上的一些方法只能调用一些简单的函数,调用类还会很复杂,而且我需要的不是调用一些写死的模块,是要连接两个程序。比如说,C++这边的游戏输出一个盘面状态的矩阵,python网络接受这些数据输出一个Action的矩阵,C++游戏接受这个Action矩阵之后程序内部进行裁决改变盘面状态的矩阵再输给python程序。
我需要实现的就是这么一个数据交互,而且希望速度比较快。
将神经网络用于强化学习和一些决策问题的时候,是不是模型都得用python来写呢?如果编程语言不同,训练起来是不是很慢?

0

3个回答

直接用PYTHON调用dll

0
u014390617
Saku16 哪有那么简单,调用.dll需要在C++程序里改很多东西,而且调用之后也不能使用类,python和C++的兼容好像比较差。我需要的是两个程序的交互,不是一个程序和一个写死的模块或者函数的交互啊
一年多之前 回复

我觉得可以创一个文件,C++游戏输出的盘面状态的矩阵重定向到文件中,python程序提取文件内容后经神经网络分析结果存到另一个文件,
主游戏再通过这些结果做出裁决。
C++也可以做机器学习吧,Caffe就有C++的API

0

python 算好的结果存数据库中,c++读数据库。
python 直接使用 c++ 代码用 cython。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
python与C C++的交互(一)
一.概述Python是目前“大火“的编程语言,一种作为“胶水”的脚本语言,能得到如此的应用,确实有它独到之处。C/C++是一种“性能”编程语言,较为古老且经典,因与unix,linux,windows这些底层操作系统相关,而得到广泛应用。Python从一开始就支持C语言的“嵌入”,这是python为弥补性能不足的一种措施,其实python的库就是用C编写的。两种不同编程语言的应用之间的数据传递,可...
python与c交互相关文档收集
python与c交互相关文档收集 python与C程序互调
初识C程序与Linux交互
Linux下程序的返回值要开发能在Linux下运行的C程序工具,对C程序与Linux的基本交互方式的认识是必不可少的。首先需要了解到,在Linux终端中,程序的运行都会有一个返回值,若该返回值是0,则代表该程序运行成功,若返回值是其他数值,则表示该程序的运行出错了,而这个数值一般是代表其错误码。使用echo $?命令可以查看上一条命令执行后返回的值。ls cworkspace Documents
python与C C++的交互(三)
六.在C/C++环境中调用python代码在这种情况下,C/C++代码是主程序,按复杂度,分几个例子说明。1.最简单情况,无参数传递int run_simple_py() { char const *script="def hello():\n\tprint(\"hello world!\")\nhello()"; int res; Py_Initialize(); res=PyR...
双向管道的,两个程序之间的交互
/******* 1、设置sa安全属性,利用sa建立两个管道(CreatePipe()), 2、设置si、pi属性,利用si、pi属性来创建进程(CreateProcess()) 3、连接两个管道与进程标准输出的相连 4、在两个管道进出口读取数据显示到自己的pc ********/ HANDLE hInWrite,hOutRead; SECURITY_ATTRIBUTES sa={0
实现服务器和客户机的交互
计算机网络实验: 要求: 实现服务器和客户机的交互 服务器显示:服务器、学号、姓名 客户机显示:客户机、学号、姓名程序分析:实现服务器和客户机的交互 • 实现服务器和客户机的交互需要分别在服务器和服务器上执行程序。 • 服务器上程序负责开启并监听一个端口。 • 客户机上的程序负责连接到该端口并与之通信。 此实验使用python语言实现socket通信。py
小程序与后端交互
目录 1 后端交互时序图 2 不校验域名 3 点击小程序的功能 4 request请求 5返回结果 6更新视图层 7使用案例 7.1 WXML文件 7.2 WXSS文件 7.3 JS文件 8 GitHub地址 1 后端交互时序图 2 不校验域名 如果我们没有备案好的域名的话,在开发过程中我们可开启不校验域名模式,等项目开发好后再到小程序后...
Socket通信,实现单客户端和服务器交互的C/S结构
首先创建客户端程序: package FirstPackages; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; public class
如何使用C与Mysql进行数据交互
ArthurSlog SLog-2 Year·1 Guangzhou·China July 8th 2018 微信扫描二维码,关注我的公众号 想让别人拉你一把,你的手在哪?别想着拉别人一把,否则你也会被拖垮。 开发环境MacOS Mac自带的编译器,可以直接编译C语言的代码。所以现在,打开你的手机,计时5分钟,编译器了解一下 有点常识 最原始的信息一般都是最有效的信息 如果...
【自制编程语言】1. 实现一个简单的交互界面
实现简单的交互先实现一个简单的交互界面,Windows下主要用到了puts,gets,printf,这三个函数实现输入和输出。在linux或者mac下,则要用到readline这个函数。可以使用预处理实现跨平台编码,具体代码如下:#include <stdio.h> #include <stdlib.h>#ifdef _WIN32 #include<string.h> static char buf
尝试——交互式程序编写
关于交互式程序,简单明了的说,就是允许与用户进行交互的程序,或说允许用户进行输入操作。这种程序的好处在于对于一些变量可以依据用户需要进行改变,而不用重新编写一个程序或对程序进行修改,变得更加方便。     而实际上交互程序并不难实现。在通过对书本的研究,发现其实交互式程序不过就是一个scanf()的运用罢了,这是一个输入函数,与之相对的便是输出函数,就是我们都熟悉的printf()。实践才是检验
C语言学习第二课:数据处理与交互式输入
先上一张知识结构图一:类型转换1、隐式类型转换(系统自动进行类型转换)当赋值发生时,如果两边数据类型不一致,C语言中会将等号右边的数据自动转换为等号左边变量的数据类型 double d = 40; //整型数据赋给双精度浮点型变量 //C系统将整型数据转变为double型数据然后赋值给变量 int i = 3.14; //double型数据赋给int型变量 //C系统将double数据转变为in
python与C#交互
1.python调用C#的dll C#代码 //放在py文件同级目录下 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace simple { public class Class1 ...
记录 python flask 与微信小程序交互
一、小程序向flask传递参数1.小程序将请求数据转换为JSON格式 wx.request({ url: 'http://127.0.0.1:8080/query_user', data: { goodsname:JSON.stringify(inputTyping)  //将数据格式转为JSON }, method: &quot;POS...
利用树莓派3 实现简单的人机交互程序
利用树莓派3 实现简单的人机交互程序 在看本章前,建议先看一下前面博客: http://blog.csdn.net/wangdamingll/article/details/77479682 http://blog.csdn.net/wangdamingll/article/details/77427126 一、硬件配置 一个麦克风,一个音箱,当然还有树莓派 树莓派支持
python 简单的人机交互
近来写脚本,通过svn list命令获取结果,却发现在处理返回结果的时候,有时候会报错,发现是因为在svn list的时候,Linux系统有这个提示:ATTENTION!  Your password for authentication realm:   &amp;lt;https://ch3p-gen-ias-vcs001.ch3.syniverse.com:443&amp;gt; SVN HK Repoca...
微信小程序+Django—登录界面交互
&amp;amp;nbsp; &amp;amp;nbsp; 最近有一个项目是做微信小程序的开发,由于也是刚刚学习了django,所以准备用django来做微信小程序的后台。 &amp;amp;nbsp; &amp;amp;nbsp;由于没有系统的学习过小程序的开发,有些坑要自己慢慢地爬,特此将自己爬过的坑记录下来。 1、小程序登陆界面 getinto.wxml &amp;amp;lt;!--pages/getinto.wxml--&amp;amp;gt; &amp;amp;lt;view clas
Python与cmd终端交互,使用argparse示例.py
Python与cmd终端交互,使用argparse示例.py parser = argparse.ArgumentParser() parser.add_argument('-v', '--verbose', help='run with verbose', action='store_true') parser.add_argument('-d', '--debug', help='build debug version', action='store_true')
交互选择界面(c语言)
选择交互式界面 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一个交互式界面是用户和终端交流的形式。是以用户为中心的设计流程,关注用户的使用流畅度和方便性,符合用户使用习惯的解决方案。交互不一定需要很华丽的界面,但是使用过程肯定是很人性化,减少用户思考返回的次数。 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...
Lua与宿主语言(C/C++)交互原理
Lua语言可研究的东西真是多,各种机制原理:与宿主语言(下文均指C/C++)的交互、内存管理(垃圾回收)、虚拟机实现、协程、闭包、异常捕获机制等。如取其一进行研究,要吃透还是需要点时间和精力。相信只要一点点慢慢啃,终究还是会将其吸收。 以下的相关原理介绍是基于Lua-5.1.5版本的源码,不排除与之后版本的源码中有少部分差异存在,但基本原理应该相同。
人脸识别代码(用HTML调用Python)
这是一段人脸识别人脸检测等的python代码,包含了多个检测算法,并且做了一个HTML的网页交互界面。如果有问题,可以联系我。
C语言实现TCP服务端与客户端交互
基于C语言socket编写的服务端和客户端,实现了两者之间的信息传输
【微信小程序】微信小程序与后台的交互
js onLoad: function (options) { var that = this; var list = that.data.list; var currentPage = that.data.currentPage; wx.showNavigationBarLoading(); //在标题栏中显示加载 //调用读取数据库的方法 this...
python与C C++的交互(二)
五.在python环境中调用C/C++代码前面是两点基础,这节说明在python环境中调用C/C++代码。大致有两种方式:1.       将c/c++代码编译成(操作系统)标准的动态库,在python中“引用”后调用2.       将c/c++代码写成python扩展库,就如同python的内置的标准库一样,正常引用后调用第一种方式比较简单,下面是一个简单示例。C/C++代码(文件名为mm.c...
python-简单用户交互小程序
1、第一种方式: root@kali:~/python# vim userinput.py #!/usr/bin/python #--*-- coding:utf-8 --*-- Name = raw_input('please your name:\n') Age = raw_input('please your age:\n') Sex = raw_input('please
Python-客户端、服务器交互模板
参考链接 比较简单的一个例子,不过还是记录一下。 参考链接里的我不知道为什么我的运行不了,下面是经过一些改动后能在本地跑的例子。 1.Server.py import socket import time import threading message=[] def tcplink(sock,addr): print('欢迎来自%s:%s的大佬'%addr) sock....
shell加python实现程序自动化控制
为做到数据的实时传输(实时:当前时间传输上一个小时的数据),shell用于控制整个流程,python用于处理数据。 shell代码如下: #bin/bash ######### ## 学车运行脚本 ## 编写者:zqm ## 日期:2018-04-04 ## 调用方式:nohup sh duduxueche.sh day/hour &gt; ../log/duduxu...
C#网络应用|理解Scoket协议 |新手教程
///自己看书总结的,希望对刚接触者有所帮助。 ///套接字(Scoket)是在TCP/IP协议之上的网络通信协议。 ///套接字可以看做是通信主机之间的端点,构成了单个主机内及整个网络间的编程界面。 ///套接字存在于通信域(通信域是为了处理一般的线程通过套接字通信而引进的一种抽象概念)中。 ///同一域中,不同的套接字是可以互相通信的。 ///套接字分为两种类型:同步套接字和异步
python3交互界面的编程
环境: python3.4.3, tkinker from tkinter import * #图形界面编程需要导入Tkinter模块 from PIL import ImageTk,Image # ImageTk模块支持从图片中创建和修改Tkinter位图图像和PhotoImage对象 import pythonsoft as ps #导入其他python的子程序 root = Tk(...
【游戏程序设计】鼠标交互
鼠标控制多边形移动与射击。 运行结果: 源代码: #include &amp;lt;windows.h&amp;gt; #include &amp;lt;tchar.h&amp;gt; #pragma comment(lib, &quot;winmm.lib&quot;) //调用PlaySound函数所需库文件t #pragma comment(lib, &quot;Msimg32.lib&quot;) #define WINDOW_W...
微信小程序前后端交互流程
(近期有时间,也饿,接点小型微信小程序私活填肚子) 建议封装自己的HTTP请求,使用方便并且多少可以减少代码量: function HttpRequst(loading, url, sessionChoose, sessionId, params, method, ask, callBack) { if (loading == true) { wx.showToast({ ...
Python之程序交互
交互式程序: name=input("请输入您的名字:") kemu1=input("请输入考试科目:") score1=float(input("请输入该科成绩:")) kemu2=input("请输入考试科目:") score2=float(input("请输入该科成绩:")) kemu3=input("请输入考试科目:") score3=float(input("请输入该科成绩:")) ...
第三部分 程序间交互和通信
10章 11章 12章 全部关于Linux,在Linux高级编程和Unix网络编程详细介绍。再次跳过
PHP中调用python程序
php在很多方面远没有python强大,但是在web开发过程中,有很多需要实施计算的数据,我们希望他们能够实时的显示在网页上。 这就需要在PHP中调用python程序。具体实现步骤如下: 1, 将php文件,python文件放在通过一个目录下。或者写明python程序绝对路径。 2,注意文件的可读写或执行权限 3,修改php位置文件:php.ini sudo vim /etc/ph
Sublime text 3实现交互环境
最近用Sublime text 3学习python , 发现输入没有交互功能,百度一番,解决了交互问题 解决办法:     安装一个插件sublimeREPL解决      在已经安装了包管理器的前提下,按ctrl+shift+p快捷键出现输入框,     输入Install Package,回车,     在新出现的输入框里输入SublimeREPL,     在下面的选择列表中
python的用户交互
在python3中的input会将用户输入的任何内容都存成字符串类型 name=input(&quot;请输入您的姓名:&quot;) #name='egon' pwd=input(&quot;请输入您的密码:&quot;) #pwd='123' print(name,type(name)) print(pwd,type(pwd)) print('=========&amp;gt;1') print('=========&amp;gt;2') pri...
命令行下运行 Python 程序与使用 Python 交互式环境(补)
在 编程入门必知——Windows命令提示符启动与使用 文章中已经详细说明了命令提示符的使用,但仍然在网上不时看到有新手搞不清如何运行Python程序,所以这里再补一篇。1.使用Python交互式环境(注意配置环境变量后才可以直接运行,否则运行时要使用Python.exe的完整路径)如下图所示,这里启动的是Python的3.6版本,并执行了一个Python的语句:print('Hello Pyth...
java与c/c++之间的数据交互
java与c/c++之间的数据交互有这样几种情况:java和c/c++之间基本数据类型的交互,java向c/c++传递对象类型,c/c++向java返回对象类型,c/c++调用java类。 1、java和c/c++之间基本数据类型的交互 对于基本数据类型,java和c是相互对应的,所以可以直接使用。它们的对应关系为 Java类型 C/C++类型 字节(bit) boolean ...
Qt与C语言交互探讨
0、背景 界面线程由Qt实现,底层数据处理主要由C语言实现,此时C和Qt的数据交互不可避免。   1.1、Qt信号与槽   使用信号与槽的机制进行C与Qt的多线程通信。 1、定义一个用于发射信号的类SysCourier,并创建其对象sysCourier; 2、把该对象a与Qt的界面对象使用connect连接相应的信号与槽 3、在cpp文件中,定义全局函数,该全局函数调用对象a的函数
python调用C++,并在C++代码执行时,实时返回信息到pyqt的控件上显示
这是一个实现python调用C++,并在C++代码执行时,实时返回信息到pyqt的控件上显示的方案。 该方案的流程略微复杂,但思路相当简单:先在python中将print函数调用的stdout重定向到pyqt控件显示,调用C++,在C++执行过程中,调用python的print函数。