コード例 #1
0
ファイル: poliz.cpp プロジェクト: yura603/game-manager
PolizElem* PolizBuild::EvaluateFun(PolizItem **stack) const {
	char cmd[8] = "build\n";
	printf("cmd_build\n");
	server.send_message(cmd);
	robot.begin_constructing();
	return 0;
}
コード例 #2
0
ファイル: poliz.cpp プロジェクト: yura603/game-manager
PolizElem* PolizProd::EvaluateFun(PolizItem **stack) const {
	int amount;
	PolizElem *operand1 = Pop(stack);
	PolizInt *i1 = dynamic_cast<PolizInt*>(operand1);
	if (!i1) throw PolizExNotInt(operand1);
	amount = i1->Get();
	char cmd[16] = "prod ", str1[9];
	sprintf(str1, "%d\n", amount);
	strcat(cmd, str1);
	printf("cmd_prod = %s", cmd);
	server.send_message(cmd);
	delete operand1;
	return 0;
}
コード例 #3
0
ファイル: poliz.cpp プロジェクト: yura603/game-manager
PolizElem* PolizEndTurn::EvaluateFun(PolizItem **stack) const {
	char cmd0[32] = "# Trading results";
	char cmd[16] = "& ENDTURN";
	char cmd2[16] = "turn\n";
	char *str;
	int t = 0;
	robot.set_auct();
	server.send_message(cmd2);
	for (;;) {
		str = server.read_message();
		if (strncmp(str, cmd0, 16)==0) { //in auction table
			for (;;) {
				delete str;
				str = server.read_message();
				if ((strncmp(str, "& BOUGHT", 8)==0)||
					(strncmp(str, "& SOLD", 6)==0)){
					t = 1;
					robot.add_new_elem(str);
				}
				else {
					if (t==1) {
						break;
					}
				}
			}
		} // out auction table
		if (strncmp(str, "# You are a bankrupt, sorry.", 28)==0) {
			printf("%s", str);
			delete str;
			robot.free_auct_list();
			exit(0);
		}
		if (strncmp(str, cmd, 9)==0) {
			delete str;
			break;
		}
		delete str;
	}
	return 0;
}
コード例 #4
0
ファイル: poliz.cpp プロジェクト: yura603/game-manager
PolizElem* PolizBuy::EvaluateFun(PolizItem **stack) const {
	int amount, price;
	PolizElem *operand1 = Pop(stack);
	PolizInt *i1 = dynamic_cast<PolizInt*>(operand1);
	if (!i1) throw PolizExNotInt(operand1);
	PolizElem *operand2 = Pop(stack);
	PolizInt *i2 = dynamic_cast<PolizInt*>(operand2);
	if (!i2) throw PolizExNotInt(operand2);
	price = i1->Get();
	amount = i2->Get();
	robot.expected_raw_sold = amount;
	robot.expected_raw_price = price;
	char cmd[32] = "buy ";
	char str1[9], str2[9];
	sprintf(str1, "%d\n", price);
	sprintf(str2, "%d ", amount);
	strcat(cmd, str2);
	strcat(cmd, str1);
	printf("cmd_buy = %s", cmd);
	server.send_message(cmd);
	delete operand1;
	delete operand2;
	return 0;
}