Esempio n. 1
0
GTPWrapper::GTPWrapper(int bs, bool isp, double iovalue, 
		     double ikomi, int ilvl, int ieyesize, int tsteps)
{
  //  unstuckgnugno = true;
  //  headingsupport = iheadingsupport;
  fheading = new int; sheading = new int;
  *fheading = 0; *sheading=0;
  thinksteps = tsteps;
  eyesize = ieyesize;
  ovalue = iovalue;
  pos1 = new int[2];
  pos2 = new int[2];

  sp = isp;
  komi = ikomi;
  lvl = ilvl;
  // for pure gnugo(production)
  //   p1 = "--mode gtp --boardsize ";
  //with logging enabled, for debugging
  //  p1 = "--input-log gnugo_log_i.txt --output-log gnugo_log_o.txt --error-log gnugo_log_e.txt gnugo --mode gtp --boardsize ";
  p1 = "--mode gtp --boardsize ";
  //dunno :P boyes test code
  //   p1 = "-i /dev/ttyp6 -o /dev/ttyp6 -e /dev/ttyp6 gnugo --mode gtp --boardsize ";
  stringstream ss1;
  ss1 << p1;
  //setting up the cmdline for right boardsize.
  ss1 << bs << " --level " << lvl << " --komi " << komi;
  p1 = ss1.str();
  bsize = bs;
  resetPos();
  cout << "bsize: "<<bsize<<" pos1-0:"<<pos1[0]<<" pos2-0:" << pos2[0]<<endl;
  //board.insert(board.begin(),(bsize*bsize),0);
  board = state((int)pow(bsize,2)*2);
  //   for(int i=0;i<(bsize*bsize);i++)//setting up the board..
  //     board.push_back(0);
  pipe(nPipeIn);
  pipe(nPipeOut);
  //  runit();
  toGnugo = new fdostream();
  fromGnugo = new fdistream();

  nChildFds = new int[3];
  //  string file = "logio";
  //   if (ConnectProcess("gnugo", p1, &fraGnugo, &tilGnugo, 0, 0, 0))
  pid_t * nPid = new pid_t();
  if (ConnectProcess(string("gnugo"), p1, toGnugo, fromGnugo, NULL, nPid, nChildFds))
    {
      cerr << "Failed to change process image (execvp) in parent process to " 
	   << "gnugo" << ". System error message: " << strerror(errno) << "\n.";
      //return 1;
    }

}
Esempio n. 2
0
int main(int argc, char* argv[]){
    int sockfd;
    struct sockaddr_in servaddr;

    sockfd = socket(AF_INET, SOCK_DGRAM, 0);
    bzero(&servaddr, sizeof(servaddr));
    servaddr.sin_family = AF_INET;
    servaddr.sin_port = htons(atoi(argv[2]));
    inet_pton(AF_INET, argv[1], &servaddr.sin_addr);

    //dg_cli(stdin, sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr));
    ConnectProcess(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr));
    return 0;
}