void InputConfig::loadFromXML(pugi::xml_node node, int playerNum)
{
	this->clear();

	setPlayerNum(playerNum);

	for(pugi::xml_node input = node.child("input"); input; input = input.next_sibling("input"))
	{
		std::string name = input.attribute("name").as_string();
		std::string type = input.attribute("type").as_string();
		InputType typeEnum = stringToInputType(type);

		if(typeEnum == TYPE_COUNT)
		{
			std::cout << "ERROR - input type \"" << type << "\" is invalid! Skipping input \"" << name << "\".\n";
			continue;
		}

		int id = input.attribute("id").as_int();
		int value = input.attribute("value").as_int();

		if(value == 0)
			std::cout << "WARNING: InputConfig value is 0 for " << type << " " << id << "!\n";

		mNameMap[toLower(name)] = Input(mDeviceId, typeEnum, id, value, true);
	}
}
//初始化函数
void BackgroundEngine::initial()
{
    this->pile.clear();
    this->discardPile.clear();
    this->discardPileCovered.clear();
    //读入卡牌文件
    QFile log("./log.txt");
    log.open(QIODevice::WriteOnly);
    QTextStream out(&log);

    out << "try to open ";

    QFile fp("./cardDB.txt");

    QTextStream in(&fp);
    QTextCodec *codec=QTextCodec::codecForName("GBK");
    in.setCodec(codec);

    if (!fp.open(QIODevice::ReadOnly)) {
            out << "Cannot open file for reading. ";
    }

    out << "ready to read";

    QStringList cardEntry;
    while (!in.atEnd())
    {
        cardEntry=in.readLine().split("\t");
        cardList<<new CardEntity(&cardEntry);       
    }

    out << cardList.length();
    log.close();
    //洗牌
    this->shuffle(false);
    fp.close();
    setPlayerNum(playerSum);

}
Exemple #3
0
void Field::initializeField(int player_num) {
  setPlayerNum(player_num);
  makeInfomationArrays();
  determinePanelsOrder();
  shuffleDeck();
}