void ChessClockWidget::repaintClock() { // Set picture if( getStatus() == Running || getStatus() == Paused) pictureLabel_->setPixmap( picActive_); else pictureLabel_->setPixmap(picPassive_); timeUsedLabel_->setText( timeString( getTimePlayed() )); // Time average per turn int timeAverage; if( getTurn() == 0) timeAverage = 0; else timeAverage = getTimePlayed() / getTurn(); timeAverageLabel_->setText( tr("Avg %1").arg( timeString( timeAverage ) ) ); turnLabel_->setText( tr("Turn %1").arg(getTurn())); // Current turn played // Extra time of this turn is shown in green. if( currentTurnPlayed() < greenTime_ ) turnTimeLabel_->setText( QString("<font color=green> %1 </font>") .arg(timeString( currentTurnPlayed()) ) ); else turnTimeLabel_->setText( timeString( currentTurnPlayed() ) ); // Loser flag loserLabel_->setVisible( isLoser()); leftLabel_->setText( timeString(getTimeAvailable())); }
void Game::configure(GameConfiguration config) { if (!config.isValid()) { throw std::invalid_argument("Invalid configuration: " + config.str()); } config.clean(); reset(); curTurn = config.getTurn(); FOR_POSITION_64(pos) { setPieceAt(pos, config.getPieceAt(pos)); if (config.getPieceAt(pos) != Piece::EMPTY()) { toggleBit(config.getOwnerAt(pos), pos, config.getPieceAt(pos)); } } cur = Game_UndoData(); cur.halfMoveClock = config.getHalfMoveClock(); fullMoveCount = config.getMoveNumber(); cur.check = posAttackedBy(getKingPosition(getTurn()), !getTurn()); cur.hash = Game_Hash(config); integrityCheck(); }
void Calendar::save( QTextStream * ts, int indent ) { indentation( ts, indent ); *ts << "<calendar>" << endl; for( uint i = 0; i < 5; i++ ) { indentation( ts, indent + 1 ); *ts << "<value type=\"" << i << "\">"; *ts << getDateByType( i ) << "</value>" << endl; } indentation( ts, indent + 1 ); *ts << "<startcalendar>" << endl; for( uint i = 0; i < 5; i++ ) { indentation( ts, indent + 2 ); *ts << "<value type=\"" << i << "\">"; *ts << getInitialDateByType( i ) << "</value>" << endl; } indentation( ts, indent + 1 ); *ts << "</startcalendar>" << endl; indentation( ts, indent + 1 ); *ts << "<turn>" << getTurn() << "</turn>" << endl; indentation( ts, indent ); *ts << "</calendar>" << endl; *ts << flush; }
const int& _TimeManager::prevTurn() { pause(); setTurn(m_turn - 1); return getTurn(); } // _TimeManager::prevTurn()
const int& _TimeManager::nextTurn() { pause(); setTurn(m_turn + 1); return getTurn(); } // _TimeManager::nextTurn()
bool PlayerIntention::operator == (const PlayerIntention &other) const { return getAccel() == other.getAccel() && getTurn() == other.getTurn() && getJump() == other.getJump() && getReset() == other.getReset() && getPaint() == other.getPaint() && getErase() == other.getErase(); }
void UsiClient::search() { OUT(info) << "search thread is started. tid=" << std::this_thread::get_id(); auto pos = generatePosition(record_, -1); auto config = searcher_->getConfig(); if (isInfinite_) { config.maximumTimeMs = SearchConfig::InfinityTime; config.optimumTimeMs = SearchConfig::InfinityTime; } else { bool isBlack = pos.getTurn() == Turn::Black; TimeType remainingTimeMs = isBlack ? blackTimeMs_ : whiteTimeMs_; config.maximumTimeMs = remainingTimeMs + byoyomiMs_ - options_.marginMs; config.optimumTimeMs = std::max(remainingTimeMs / 50, std::min(remainingTimeMs, byoyomiMs_/* + incrementMs*/)) + byoyomiMs_; if (options_.snappy) { config.optimumTimeMs /= 3; } if (!options_.snappy && remainingTimeMs == 0/* && incrementMs == 0*/) { config.optimumTimeMs = SearchConfig::InfinityTime; } } searcher_->setConfig(config); searcher_->idsearch(pos, Searcher::DepthInfinity, &record_); if (isInfinite_) { waitForStopCommand(); } const auto& result = searcher_->getResult(); const auto& info = searcher_->getInfo(); bool canPonder = !result.move.isNone() && result.pv.size() >= 2; // send the result of search if (canPonder) { send("bestmove", result.move.toStringSFEN(), "ponder", result.pv.getMove(1).toStringSFEN()); } else if (!result.move.isNone()) { send("bestmove", result.move.toStringSFEN()); } else { send("bestmove", "resign"); } // print the result of search printSearchInfo(OUT(info), info, result.elapsed); // notify to receiver breakReceive(); OUT(info) << "search thread is stopped. tid=" << std::this_thread::get_id(); }
int wallerFireDmg() { // aumentar potencia de daño si la vida es igual o inferior al porcentaje indicado int FURY_PERCENT = 15; int dmg; int opponents = getOpponents(); if (opponents > 2) { // 3 o 4 oponentes -> daño = 3 dmg = 3; } else { // 1 o 2 oponentes -> daño = 4 dmg = 4; } if (LAST_TURN_FIRE != -1 && LAST_TURN_FIRE != getTurn()) { // 4 (o más) turnos sin disparar -> aumentar en +2 el daño // 3 (o más) turnos sin disparar -> aumentar en +1 el daño if ((getTurn() - LAST_TURN_FIRE) >= 4) { dmg += 2; } else if ((getTurn() - LAST_TURN_FIRE) >= 3) { dmg += 1; } } // aumentar potencia de daño si la vida es inferior a FURY_PERCENT% if (getLife() <= (FURY_PERCENT * DEFAULT_LIFE / 100)) { // si está en 1 vs 1 -> aumentar en +2 el daño // aumentar en +1 en cualquier otro caso. if (opponents == 1) { dmg += 2; } else { dmg += 1; } } return dmg; }
int CvTalkingHeadMessage::getExpireTurn() { int iExpireTurn = getTurn(); switch (m_eMessageType) { case MESSAGE_TYPE_INFO: iExpireTurn += 2; break; case MESSAGE_TYPE_LOG_ONLY: iExpireTurn += 1; break; case MESSAGE_TYPE_CHAT: iExpireTurn += 20; break; case MESSAGE_TYPE_COMBAT_MESSAGE: iExpireTurn += 20; break; case MESSAGE_TYPE_MINOR_EVENT: iExpireTurn += 20; break; case MESSAGE_TYPE_QUEST: case MESSAGE_TYPE_TUTORIAL: case MESSAGE_TYPE_MAJOR_EVENT: // never expires iExpireTurn = GC.getGameINLINE().getGameTurn() + 1; break; case MESSAGE_TYPE_DISPLAY_ONLY: // never saved iExpireTurn = GC.getGameINLINE().getGameTurn() - 1; break; default: FAssert(false); break; } return (iExpireTurn); }
TurnInformation* FischerAfterClock::endTurn() { if( getTurn() % perTurns_ == 0) addTime( addition_ ); return ChessClock::endTurn() ; }
int main(void) { char * name=loadFile("name.txt"); char * buf= init(name); //get starting message int sockfd, numbytes; struct addrinfo hints, *servinfo, *p; int rv; char s[INET6_ADDRSTRLEN]; memset(&hints, 0, sizeof hints); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; if ((rv = getaddrinfo(HOST, PORT, &hints, &servinfo)) != 0) { fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(rv)); return 1; } // loop through all the results and connect to the first we can for(p = servinfo; p != NULL; p = p->ai_next) { if ((sockfd = socket(p->ai_family, p->ai_socktype, p->ai_protocol)) == -1) { perror("client: socket"); continue; } if (connect(sockfd, p->ai_addr, p->ai_addrlen) == -1) { close(sockfd); perror("client: connect"); continue; } break; } if (p == NULL) { fprintf(stderr, "client: failed to connect\n"); return 2; } inet_ntop(p->ai_family, get_in_addr((struct sockaddr *)p->ai_addr), s, sizeof s); freeaddrinfo(servinfo); // all done with this structure send(sockfd, buf, strlen(buf)+1, 0); char str[MAXDATASIZE]; if ((numbytes = recv(sockfd, str, MAXDATASIZE-1, 0)) == -1) { perror("recv"); exit(1); } str[numbytes] = '\0'; //Determine my player token char * temptok = strstr(strstr(strstr(str, "playerToken"), ":"), "\"")+1; char * tempend = strstr(temptok, "\""); tempend[0]=0; char * token=malloc(tempend-temptok+1); strcpy(token, temptok); tempend[0]='\"'; int res; while(1){ res=getTurn(buf, token, responseCode(str), resources(str), ships(str), errors(str), hits(str), actionResponses(str), pings(str)); if(res==1) break; if(res==2) { send(sockfd, buf, strlen(buf)+1, 0); } if ((numbytes = recv(sockfd, str, MAXDATASIZE-1, 0)) == -1) { perror("recv"); exit(1); } str[numbytes] = '\0'; } close(sockfd); free(buf); free(token); free(name); return 0; }
void wallerFire(int dir, int dmg) { doFire(dir, wallerFireDmg()); LAST_TURN_FIRE = getTurn(); }
bool ShieldDiceDragHandler::dragEnded(ActionDiceDragData* data, GameplayLayer* layer, DockableContainer* dockableContainer) { auto docked = false; auto sprite = data->getSprite(); auto touch = data->getTouch(); for (auto node : layer->getChildren()) { if (IS(node, ActionDiceSprite)) { auto diceSprite = (ActionDiceSprite*) node; auto dice = diceSprite->getDice(); if (DiceUtil::isSwordDice(dice)) { auto rect = node->getBoundingBox(); if (rect.containsPoint(touch->getLocation())) { node->setColor(Color3B::WHITE); auto swordAndShield = DiceFace::create(IMG_DICE_ACTION_SWORD_AND_SHIELD); dice->setSelectedFace(swordAndShield, false); docked = true; break; } } } } auto game = Game::getInstance(); if (game->getDamageTaken() > 0) { auto character = game->getPlayer()->getCharacter(); auto characterSprite = character->getSprite(); auto rect = characterSprite->getBoundingBox(); if (rect.containsPoint(touch->getLocation())) { auto turn = game->getTurn(); if (IS(turn, PlayerTurn)) { auto playerTurn = (PlayerTurn*) turn; playerTurn->protectDamage(1); } docked = true; } auto scene = (GameplayScene*) layer->getScene(); auto dungeonLayer = scene->getDungeonLayer(); auto dungeonRoom = dungeonLayer->getRoomSpriteForCharacterCoordinate(); characterSprite->setLocalZOrder(CHARACTER_DICE_Z_ORDER); characterSprite->setColor(Color3B::WHITE); auto position = characterSprite->getPosition() + Vec2(TILE_DIMENSION / 2, TILE_DIMENSION / 2) - dungeonRoom->getPosition() - dungeonLayer->getParent()->getPosition(); characterSprite->setPosition(position); characterSprite->retain(); characterSprite->removeFromParent(); dungeonRoom->addChild(characterSprite); characterSprite->release(); } if (docked) { layer->dockActionDice(sprite); } return docked; }
UserColor UserColor::operator++() { ++turn; getTurn(); return *this; }