コード例 #1
0
// recursive adding queens
void addQueens ( int newCol ) {
    
    boardLoc newMove;
    newMove.c = newCol;
    
    for ( int i = 0; i < numRows; i++ ) {
        newMove.r = i;
        if ( isMoveValid(newMove) ) {
            queenLoc[numQueenLoc] = newMove;
            numQueenLoc++;
            
            if ( numQueenLoc == 8 )
                printQueenLoc();
            else
                addQueens( newCol+1 );
            
            numQueenLoc--;
        }
    }
}
コード例 #2
0
ファイル: CombatLogic.cpp プロジェクト: kemichar/homm3-clone
void CombatLogic::move(intp targetPos, intp direction) {
	if (!isMoveValid(targetPos)) {
		return;
	}

	creatures[currentCreature]->combatPos = targetPos;
	intp lookAt = targetPos + direction;
	for (int i = 0; i < (int)creatures.size(); i++) {
		if (creatures[i] != nullptr && creatures[i]->count > 0 && creatures[i]->combatPos == lookAt &&
			creatures[i]->getFactionId() != creatures[currentCreature]->getFactionId()) {
			creatures[i]->takeDamageFrom(creatures[currentCreature]);
			std::cout << "	" << creatures[currentCreature]->plural << " attacked "<< creatures[i]->plural << ". " << creatures[i]->count << " survived the attack." << std::endl;

			if (creatures[i]->count <= 0) {
				if (creatures[i]->getFactionId() == attackerFaction) {
					attackerStacks--;
					std::cout << "	Attacker lost a stack, stacks remaining: " << attackerStacks << std::endl;
					if (attackerStacks <= 0) {
						endCombat(defenderFaction);
						return;
					}
				}
				else {
					defenderStacks--;
					std::cout << "	Defender lost a stack, stacks remaining: " << defenderStacks << std::endl;
					if (defenderStacks <= 0) {
						endCombat(attackerFaction);
						return;
					}
				}
			}

			break; // TODO better attack logic, retaliation, etc.
		}
	}

	nextCreature();
}
コード例 #3
0
ファイル: main.cpp プロジェクト: kularny/borland_chess
void proceed() {
    prepare();

    if (isMoveValid() == 1) {
        if (cf == 'k') {
            remove("save.dat");
            cout<<endl<<"Player "<<turn<<" has won!";
            pressAnyKeyToContinue();
            turn = 0;
            return;
        }

        if (ci == 'P' && turn == 1 ? yf == 7 : yf == 0) {
            Game[xf][yf] = turn == 1 ? 'Q' : -'Q';
        } else {
            Game[xf][yf] = turn == 1 ? ci : -ci;
        }

        Game[xi][yi] = ' ';
        turn = turn == 1 ? 2 : 1;
    } else {
        pressAnyKeyToContinue();
    }
}