'Member "team1Score" not found or not visible after argument-dependent lookup in type (contract Game) - Solidity

I'm on a course and have run into a problem.

I am trying to make a function that shows the difference in team score from the perspective of the team in the variable teamNumber.

My issue is that when trying to import the variable "team1Score" or "team2Score" from the other contract Game.sol I get the error - Member "team1Score" not found or not visible after argument-dependent lookup in type (contract Game)

Here is the Game.sol contract:

pragma solidity ^0.8.4;

contract Game {
    int public team1Score;
    int public team2Score;

    enum Teams { Team1, Team2 }

    function addScore(Teams teamNumber) external {
        if (teamNumber == Teams.Team1) {
            team1Score +=1;
        } else if (teamNumber == Teams.Team2) {
            team2Score +=1;
        }
    }
}

Here is the code for Bet.sol which references Game.sol. The problem lies within the function "getScoreDifference"

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

import "./Game.sol";

contract Bet {
    address public game;



    constructor (address gameContract) {
        game = gameContract;
    }
     
    // calculates the payout of a bet based on the score difference between the two teams
    function calculatePayout(uint amount, int scoreDifference) private pure returns(uint) {
        uint abs = uint(scoreDifference > 0 ? scoreDifference : scoreDifference * -1);  
        uint odds = 2 ** abs;
        if(scoreDifference < 0) {
            return amount + amount / odds;
        }
        return amount + amount * odds;
    }

    function getScoreDifference (Game.Teams x) public view returns (int256){
        if (x == Game.Teams.Team1) {
            return Game.team1Score - Game.team2Score;
        } else if (x == Game.Teams.Team2) {
            return Game.team2Score - Game.team1Score;
        }
    }
}



Solution 1:[1]

this

constructor (address gameContract) {
    game = gameContract;
}

should be

constructor (address gameContract) {
    game = Game(gameContract);
}

and

function getScoreDifference (Game.Teams x) public view returns (int256){
    if (x == Game.Teams.Team1) {
        return Game.team1Score - Game.team2Score;
    } else if (x == Game.Teams.Team2) {
        return Game.team2Score - Game.team1Score;
    }
}

should be

function getScoreDifference (Game.Teams x) public view returns (int256){
        if (x == Game.Teams.Team1) {
            return game.team1Score - game.team2Score;
        } else if (x == Game.Teams.Team2) {
            return game.team2Score - game.team1Score;
        }
    }

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Niccolò Fant