FILE: artificial_player.cpp FILE: artificial_player.h non-indexed FILE: player.h non-indexed FILE: field.h non-indexed FILE: game_object.h non-indexed SYMBOL_METHOD: public void ArtificialPlayer::ArtificialPlayer(Field::Token, const char *) [artificial_player.cpp <3:1 <3:19 3:34> 5:1>] QUALIFIER: ArtificialPlayer [artificial_player.cpp <3:1 3:16>] QUALIFIER: ArtificialPlayer [artificial_player.cpp <7:1 7:16>] QUALIFIER: ArtificialPlayer [artificial_player.cpp <10:13 10:28>] QUALIFIER: ArtificialPlayer [artificial_player.cpp <16:1 16:16>] QUALIFIER: ArtificialPlayer [artificial_player.cpp <16:24 16:39>] QUALIFIER: ArtificialPlayer [artificial_player.cpp <58:5 58:20>] SYMBOL_CLASS: ArtificialPlayer QUALIFIER: Field [artificial_player.cpp <3:37 3:41>] QUALIFIER: Field [artificial_player.cpp <10:1 10:5>] QUALIFIER: Field [artificial_player.cpp <16:64 16:68>] QUALIFIER: Field [artificial_player.cpp <20:2 20:6>] QUALIFIER: Field [artificial_player.cpp <37:33 37:37>] QUALIFIER: Field [artificial_player.cpp <58:53 58:57>] QUALIFIER: Field [artificial_player.cpp <61:31 61:35>] SYMBOL_CLASS: Field SYMBOL_BUILTIN_TYPE: char SYMBOL_FUNCTION: void Player::Player(Field::Token, const char *) SYMBOL_METHOD: public void ArtificialPlayer::~ArtificialPlayer() [artificial_player.cpp <7:1 <7:19 7:35> 8:1>] SYMBOL_FUNCTION: void Player::~Player() SYMBOL_METHOD: public Field::Move ArtificialPlayer::Turn(const Field &) const [artificial_player.cpp <10:1 <10:31 10:34> 14:1>] SYMBOL_FUNCTION: Field::Move Player::Turn(const Field &) const SYMBOL_FUNCTION: Field Field::Clone() const SYMBOL_METHOD: private ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const [artificial_player.cpp <16:1 <16:42 16:47> 56:1>] SYMBOL_FUNCTION: void Field::Move::Move(const Field::Move &) SYMBOL_FUNCTION: void ArtificialPlayer::Node::Node() SYMBOL_FUNCTION: void Field::Move::Move() SYMBOL_BUILTIN_TYPE: int SYMBOL_FUNCTION: bool Field::IsEmpty(const Field::Move &) const SYMBOL_FUNCTION: void Field::MakeMove(const Field::Move &, Field::Token) SYMBOL_METHOD: private int ArtificialPlayer::Evaluate(const Field &, Field::Token) const [artificial_player.cpp <58:1 <58:23 58:30> 67:1>] SYMBOL_FUNCTION: bool Field::IsFull() const SYMBOL_FUNCTION: static Field::Token Field::Opponent(Field::Token) SYMBOL_FUNCTION: void Field::ClearMove(const Field::Move &) SYMBOL_FUNCTION: Field::Move & Field::Move::operator=(const Field::Move &) SYMBOL_FUNCTION: void ArtificialPlayer::Node::Node(ArtificialPlayer::Node &&) SYMBOL_FUNCTION: int Field::SameInRow(Field::Token, int) const REFERENCE_INCLUDE: artificial_player.cpp -> artificial_player.h [artificial_player.cpp <1:10 1:30>] REFERENCE_INCLUDE: artificial_player.h -> player.h [artificial_player.h <4:10 4:19>] REFERENCE_INCLUDE: player.h -> field.h [player.h <4:10 4:18>] REFERENCE_INCLUDE: field.h -> game_object.h [field.h <4:10 4:24>] REFERENCE_INCLUDE: player.h -> game_object.h [player.h <5:10 5:24>] REFERENCE_TYPE_USAGE: void ArtificialPlayer::ArtificialPlayer(Field::Token, const char *) -> Field::Token [artificial_player.cpp <3:44 3:48>] REFERENCE_TYPE_USAGE: void ArtificialPlayer::ArtificialPlayer(Field::Token, const char *) -> char [artificial_player.cpp <3:63 3:66>] REFERENCE_TYPE_USAGE: void ArtificialPlayer::ArtificialPlayer(Field::Token, const char *) -> Player [artificial_player.cpp <4:4 4:9>] REFERENCE_CALL: void ArtificialPlayer::ArtificialPlayer(Field::Token, const char *) -> void Player::Player(Field::Token, const char *) [artificial_player.cpp <4:4 4:9>] REFERENCE_OVERRIDE: void ArtificialPlayer::~ArtificialPlayer() -> void Player::~Player() [artificial_player.cpp <7:19 7:19>] REFERENCE_OVERRIDE: Field::Move ArtificialPlayer::Turn(const Field &) const -> Field::Move Player::Turn(const Field &) const [artificial_player.cpp <10:31 10:34>] REFERENCE_TYPE_USAGE: Field::Move ArtificialPlayer::Turn(const Field &) const -> Field::Move [artificial_player.cpp <10:8 10:11>] REFERENCE_TYPE_USAGE: Field::Move ArtificialPlayer::Turn(const Field &) const -> Field [artificial_player.cpp <10:43 10:47>] REFERENCE_TYPE_USAGE: Field::Move ArtificialPlayer::Turn(const Field &) const -> Field [artificial_player.cpp <11:2 11:6>] REFERENCE_CALL: Field::Move ArtificialPlayer::Turn(const Field &) const -> Field Field::Clone() const [artificial_player.cpp <11:26 11:30>] REFERENCE_TYPE_USAGE: Field::Move ArtificialPlayer::Turn(const Field &) const -> ArtificialPlayer::Node [artificial_player.cpp <12:2 12:5>] REFERENCE_CALL: Field::Move ArtificialPlayer::Turn(const Field &) const -> ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const [artificial_player.cpp <12:14 12:19>] REFERENCE_USAGE: Field::Move ArtificialPlayer::Turn(const Field &) const -> const Field::Token Player::token_ [artificial_player.cpp <12:33 12:38>] REFERENCE_CALL: Field::Move ArtificialPlayer::Turn(const Field &) const -> void Field::Move::Move(const Field::Move &) [artificial_player.cpp <13:14 13:17>] REFERENCE_USAGE: Field::Move ArtificialPlayer::Turn(const Field &) const -> Field::Move ArtificialPlayer::Node::move [artificial_player.cpp <13:14 13:17>] REFERENCE_TYPE_USAGE: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> ArtificialPlayer::Node [artificial_player.cpp <16:19 16:22>] REFERENCE_TYPE_USAGE: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> ArtificialPlayer::Node [artificial_player.cpp <17:2 17:5>] REFERENCE_TYPE_USAGE: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> Field [artificial_player.cpp <16:50 16:54>] REFERENCE_TYPE_USAGE: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> Field::Token [artificial_player.cpp <16:71 16:75>] REFERENCE_CALL: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> void ArtificialPlayer::Node::Node() [artificial_player.cpp <17:7 17:10>] REFERENCE_USAGE: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> int ArtificialPlayer::Node::value [artificial_player.cpp <18:7 18:11>] REFERENCE_USAGE: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> int ArtificialPlayer::Node::value [artificial_player.cpp <37:60 37:64>] REFERENCE_USAGE: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> int ArtificialPlayer::Node::value [artificial_player.cpp <42:26 42:30>] REFERENCE_USAGE: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> int ArtificialPlayer::Node::value [artificial_player.cpp <44:10 44:14>] REFERENCE_USAGE: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> int ArtificialPlayer::Node::value [artificial_player.cpp <46:34 46:38>] REFERENCE_TYPE_USAGE: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> Field::Move [artificial_player.cpp <20:9 20:12>] REFERENCE_CALL: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> void Field::Move::Move() [artificial_player.cpp <20:14 20:17>] REFERENCE_TYPE_USAGE: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> int [artificial_player.cpp <21:2 21:4>] REFERENCE_TYPE_USAGE: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> int [artificial_player.cpp <23:8 23:10>] REFERENCE_TYPE_USAGE: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> int [artificial_player.cpp <26:9 26:11>] REFERENCE_TYPE_USAGE: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> int [artificial_player.cpp <35:4 35:6>] REFERENCE_USAGE: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> int Field::Move::row [artificial_player.cpp <24:8 24:10>] REFERENCE_USAGE: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> int Field::Move::col [artificial_player.cpp <27:9 27:11>] REFERENCE_CALL: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> bool Field::IsEmpty(const Field::Move &) const [artificial_player.cpp <29:16 29:22>] REFERENCE_CALL: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> void Field::MakeMove(const Field::Move &, Field::Token) [artificial_player.cpp <33:10 33:17>] REFERENCE_CALL: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> int ArtificialPlayer::Evaluate(const Field &, Field::Token) const [artificial_player.cpp <35:20 35:27>] REFERENCE_CALL: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> bool Field::IsFull() const [artificial_player.cpp <36:30 36:35>] REFERENCE_CALL: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const [artificial_player.cpp <37:18 37:23>] REFERENCE_CALL: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> static Field::Token Field::Opponent(Field::Token) [artificial_player.cpp <37:40 37:47>] REFERENCE_CALL: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> void Field::ClearMove(const Field::Move &) [artificial_player.cpp <40:10 40:18>] REFERENCE_CALL: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> Field::Move & Field::Move::operator=(const Field::Move &) [artificial_player.cpp <43:15 43:15>] REFERENCE_CALL: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> Field::Move & Field::Move::operator=(const Field::Move &) [artificial_player.cpp <49:16 49:16>] REFERENCE_USAGE: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> Field::Move ArtificialPlayer::Node::move [artificial_player.cpp <43:10 43:13>] REFERENCE_USAGE: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> Field::Move ArtificialPlayer::Node::move [artificial_player.cpp <49:11 49:14>] REFERENCE_CALL: ArtificialPlayer::Node ArtificialPlayer::MinMax(Field &, Field::Token) const -> void ArtificialPlayer::Node::Node(ArtificialPlayer::Node &&) [artificial_player.cpp <55:9 55:12>] REFERENCE_TYPE_USAGE: int ArtificialPlayer::Evaluate(const Field &, Field::Token) const -> int [artificial_player.cpp <58:1 58:3>] REFERENCE_TYPE_USAGE: int ArtificialPlayer::Evaluate(const Field &, Field::Token) const -> Field [artificial_player.cpp <58:39 58:43>] REFERENCE_TYPE_USAGE: int ArtificialPlayer::Evaluate(const Field &, Field::Token) const -> Field::Token [artificial_player.cpp <58:60 58:64>] REFERENCE_CALL: int ArtificialPlayer::Evaluate(const Field &, Field::Token) const -> int Field::SameInRow(Field::Token, int) const [artificial_player.cpp <59:13 59:21>] REFERENCE_CALL: int ArtificialPlayer::Evaluate(const Field &, Field::Token) const -> int Field::SameInRow(Field::Token, int) const [artificial_player.cpp <61:20 61:28>] REFERENCE_CALL: int ArtificialPlayer::Evaluate(const Field &, Field::Token) const -> int Field::SameInRow(Field::Token, int) const [artificial_player.cpp <63:20 63:28>] REFERENCE_CALL: int ArtificialPlayer::Evaluate(const Field &, Field::Token) const -> static Field::Token Field::Opponent(Field::Token) [artificial_player.cpp <61:38 61:45>] LOCAL_SYMBOL: artificial_player.cpp<10:50> [artificial_player.cpp <10:50 10:54>] LOCAL_SYMBOL: artificial_player.cpp<10:50> [artificial_player.cpp <11:20 11:24>] LOCAL_SYMBOL: artificial_player.cpp<10:64> [artificial_player.cpp <10:64 10:64>] LOCAL_SYMBOL: artificial_player.cpp<10:64> [artificial_player.cpp <14:1 14:1>] LOCAL_SYMBOL: artificial_player.cpp<11:8> [artificial_player.cpp <11:8 11:16>] LOCAL_SYMBOL: artificial_player.cpp<11:8> [artificial_player.cpp <12:22 12:30>] LOCAL_SYMBOL: artificial_player.cpp<12:7> [artificial_player.cpp <12:7 12:10>] LOCAL_SYMBOL: artificial_player.cpp<12:7> [artificial_player.cpp <13:9 13:12>] LOCAL_SYMBOL: artificial_player.cpp<16:57> [artificial_player.cpp <16:57 16:61>] LOCAL_SYMBOL: artificial_player.cpp<16:57> [artificial_player.cpp <29:10 29:14>] LOCAL_SYMBOL: artificial_player.cpp<16:57> [artificial_player.cpp <33:4 33:8>] LOCAL_SYMBOL: artificial_player.cpp<16:57> [artificial_player.cpp <35:30 35:34>] LOCAL_SYMBOL: artificial_player.cpp<16:57> [artificial_player.cpp <36:24 36:28>] LOCAL_SYMBOL: artificial_player.cpp<16:57> [artificial_player.cpp <37:26 37:30>] LOCAL_SYMBOL: artificial_player.cpp<16:57> [artificial_player.cpp <40:4 40:8>] LOCAL_SYMBOL: artificial_player.cpp<16:77> [artificial_player.cpp <16:77 16:81>] LOCAL_SYMBOL: artificial_player.cpp<16:77> [artificial_player.cpp <33:26 33:30>] LOCAL_SYMBOL: artificial_player.cpp<16:77> [artificial_player.cpp <35:37 35:41>] LOCAL_SYMBOL: artificial_player.cpp<16:77> [artificial_player.cpp <37:50 37:54>] LOCAL_SYMBOL: artificial_player.cpp<16:91> [artificial_player.cpp <16:91 16:91>] LOCAL_SYMBOL: artificial_player.cpp<16:91> [artificial_player.cpp <56:1 56:1>] LOCAL_SYMBOL: artificial_player.cpp<17:7> [artificial_player.cpp <17:7 17:10>] LOCAL_SYMBOL: artificial_player.cpp<17:7> [artificial_player.cpp <18:2 18:5>] LOCAL_SYMBOL: artificial_player.cpp<17:7> [artificial_player.cpp <42:21 42:24>] LOCAL_SYMBOL: artificial_player.cpp<17:7> [artificial_player.cpp <43:5 43:8>] LOCAL_SYMBOL: artificial_player.cpp<17:7> [artificial_player.cpp <44:5 44:8>] LOCAL_SYMBOL: artificial_player.cpp<17:7> [artificial_player.cpp <46:29 46:32>] LOCAL_SYMBOL: artificial_player.cpp<17:7> [artificial_player.cpp <49:6 49:9>] LOCAL_SYMBOL: artificial_player.cpp<17:7> [artificial_player.cpp <55:9 55:12>] LOCAL_SYMBOL: artificial_player.cpp<20:14> [artificial_player.cpp <20:14 20:17>] LOCAL_SYMBOL: artificial_player.cpp<20:14> [artificial_player.cpp <24:3 24:6>] LOCAL_SYMBOL: artificial_player.cpp<20:14> [artificial_player.cpp <27:4 27:7>] LOCAL_SYMBOL: artificial_player.cpp<20:14> [artificial_player.cpp <29:25 29:28>] LOCAL_SYMBOL: artificial_player.cpp<20:14> [artificial_player.cpp <33:20 33:23>] LOCAL_SYMBOL: artificial_player.cpp<20:14> [artificial_player.cpp <40:21 40:24>] LOCAL_SYMBOL: artificial_player.cpp<20:14> [artificial_player.cpp <43:17 43:20>] LOCAL_SYMBOL: artificial_player.cpp<20:14> [artificial_player.cpp <49:18 49:21>] LOCAL_SYMBOL: artificial_player.cpp<21:6> [artificial_player.cpp <21:6 21:13>] LOCAL_SYMBOL: artificial_player.cpp<21:6> [artificial_player.cpp <45:5 45:12>] LOCAL_SYMBOL: artificial_player.cpp<21:6> [artificial_player.cpp <47:5 47:12>] LOCAL_SYMBOL: artificial_player.cpp<21:6> [artificial_player.cpp <48:14 48:21>] LOCAL_SYMBOL: artificial_player.cpp<23:12> [artificial_player.cpp <23:12 23:12>] LOCAL_SYMBOL: artificial_player.cpp<23:12> [artificial_player.cpp <23:19 23:19>] LOCAL_SYMBOL: artificial_player.cpp<23:12> [artificial_player.cpp <23:26 23:26>] LOCAL_SYMBOL: artificial_player.cpp<23:12> [artificial_player.cpp <24:14 24:14>] LOCAL_SYMBOL: artificial_player.cpp<23:32> [artificial_player.cpp <23:32 23:32>] LOCAL_SYMBOL: artificial_player.cpp<23:32> [artificial_player.cpp <53:2 53:2>] LOCAL_SYMBOL: artificial_player.cpp<26:13> [artificial_player.cpp <26:13 26:13>] LOCAL_SYMBOL: artificial_player.cpp<26:13> [artificial_player.cpp <26:20 26:20>] LOCAL_SYMBOL: artificial_player.cpp<26:13> [artificial_player.cpp <26:27 26:27>] LOCAL_SYMBOL: artificial_player.cpp<26:13> [artificial_player.cpp <27:15 27:15>] LOCAL_SYMBOL: artificial_player.cpp<26:33> [artificial_player.cpp <26:33 26:33>] LOCAL_SYMBOL: artificial_player.cpp<26:33> [artificial_player.cpp <52:3 52:3>] LOCAL_SYMBOL: artificial_player.cpp<29:34> [artificial_player.cpp <29:34 29:34>] LOCAL_SYMBOL: artificial_player.cpp<29:34> [artificial_player.cpp <31:4 31:4>] LOCAL_SYMBOL: artificial_player.cpp<35:8> [artificial_player.cpp <35:8 35:16>] LOCAL_SYMBOL: artificial_player.cpp<35:8> [artificial_player.cpp <36:10 36:18>] LOCAL_SYMBOL: artificial_player.cpp<35:8> [artificial_player.cpp <37:5 37:13>] LOCAL_SYMBOL: artificial_player.cpp<35:8> [artificial_player.cpp <42:9 42:17>] LOCAL_SYMBOL: artificial_player.cpp<35:8> [artificial_player.cpp <44:18 44:26>] LOCAL_SYMBOL: artificial_player.cpp<35:8> [artificial_player.cpp <46:16 46:24>] LOCAL_SYMBOL: artificial_player.cpp<36:41> [artificial_player.cpp <36:41 36:41>] LOCAL_SYMBOL: artificial_player.cpp<36:41> [artificial_player.cpp <38:4 38:4>] LOCAL_SYMBOL: artificial_player.cpp<3:50> [artificial_player.cpp <3:50 3:54>] LOCAL_SYMBOL: artificial_player.cpp<3:50> [artificial_player.cpp <4:12 4:16>] LOCAL_SYMBOL: artificial_player.cpp<3:69> [artificial_player.cpp <3:69 3:72>] LOCAL_SYMBOL: artificial_player.cpp<3:69> [artificial_player.cpp <4:19 4:22>] LOCAL_SYMBOL: artificial_player.cpp<42:34> [artificial_player.cpp <42:34 42:34>] LOCAL_SYMBOL: artificial_player.cpp<42:34> [artificial_player.cpp <46:4 46:4>] LOCAL_SYMBOL: artificial_player.cpp<46:42> [artificial_player.cpp <46:42 46:42>] LOCAL_SYMBOL: artificial_player.cpp<46:42> [artificial_player.cpp <51:4 51:4>] LOCAL_SYMBOL: artificial_player.cpp<48:30> [artificial_player.cpp <48:30 48:30>] LOCAL_SYMBOL: artificial_player.cpp<48:30> [artificial_player.cpp <50:5 50:5>] LOCAL_SYMBOL: artificial_player.cpp<4:26> [artificial_player.cpp <4:26 4:26>] LOCAL_SYMBOL: artificial_player.cpp<4:26> [artificial_player.cpp <5:1 5:1>] LOCAL_SYMBOL: artificial_player.cpp<58:46> [artificial_player.cpp <58:46 58:50>] LOCAL_SYMBOL: artificial_player.cpp<58:46> [artificial_player.cpp <59:7 59:11>] LOCAL_SYMBOL: artificial_player.cpp<58:46> [artificial_player.cpp <61:14 61:18>] LOCAL_SYMBOL: artificial_player.cpp<58:46> [artificial_player.cpp <63:14 63:18>] LOCAL_SYMBOL: artificial_player.cpp<58:66> [artificial_player.cpp <58:66 58:70>] LOCAL_SYMBOL: artificial_player.cpp<58:66> [artificial_player.cpp <59:24 59:28>] LOCAL_SYMBOL: artificial_player.cpp<58:66> [artificial_player.cpp <61:48 61:52>] LOCAL_SYMBOL: artificial_player.cpp<58:66> [artificial_player.cpp <63:31 63:35>] LOCAL_SYMBOL: artificial_player.cpp<58:80> [artificial_player.cpp <58:80 58:80>] LOCAL_SYMBOL: artificial_player.cpp<58:80> [artificial_player.cpp <67:1 67:1>] LOCAL_SYMBOL: artificial_player.cpp<59:37> [artificial_player.cpp <59:37 59:37>] LOCAL_SYMBOL: artificial_player.cpp<59:37> [artificial_player.cpp <61:2 61:2>] LOCAL_SYMBOL: artificial_player.cpp<61:63> [artificial_player.cpp <61:63 61:63>] LOCAL_SYMBOL: artificial_player.cpp<61:63> [artificial_player.cpp <63:2 63:2>] LOCAL_SYMBOL: artificial_player.cpp<63:48> [artificial_player.cpp <63:48 63:48>] LOCAL_SYMBOL: artificial_player.cpp<63:48> [artificial_player.cpp <65:2 65:2>] LOCAL_SYMBOL: artificial_player.cpp<7:39> [artificial_player.cpp <7:39 7:39>] LOCAL_SYMBOL: artificial_player.cpp<7:39> [artificial_player.cpp <8:1 8:1>]