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; } }
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; }