main.cpp
来自「一个语言识别引擎」· C++ 代码 · 共 63 行
CPP
63 行
// -*- mode:C++; tab-width:4; c-basic-offset:4; indent-tabs-mode:nil -*-
#include <stdio.h>
#include <yarp/os/all.h>
using namespace yarp::os;
int main(int argc, char *argv[]) {
Network::init();
// port name of "..." means "I don't care, just give me a free name"
const char *name = "...";
if (argc>=2) {
name = argv[1];
}
printf("Creating port\n");
Port port;
printf("Registering port\n");
port.open(name);
printf("Connecting with game server\n");
Network::connect(port.getName(),"/game");
Bottle cmd;
Bottle response;
cmd.addString("look");
printf("Sending command %s\n", cmd.toString().c_str());
port.write(cmd,response);
printf("Raw response: %s\n", response.toString().c_str());
// pick out map part
Bottle& map = response.findGroup("look").findGroup("map");
printf("Here's your local view:\n");
int i;
for (i=1; i<map.size(); i++) {
printf("%s\n", map.get(i).asString().c_str());
}
// pick out and print player information
Bottle& players = response.findGroup("look").findGroup("players");
for (i=1; i<players.size(); i++) {
Bottle *player = players.get(i).asList();
if (player!=NULL) {
Bottle& location = player->findGroup("location");
Value& life = player->find("life");
ConstString playerName = player->get(0).asString();
printf("PLAYER %s is at (%d,%d) with lifeforce %d\n",
playerName.c_str(),
location.get(1).asInt(),
location.get(2).asInt(),
life.asInt());
printf("Logging out\n");
}
}
port.close();
Network::fini();
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?