As a powerful, but simple framework for this sort of problem you might consider bayesian scoring.
In your particular example, let's say the "score" for each week is really just the probability, $p_i$, that team $i$ wins a game. The score could be anything really, and it would just change the distributions you would use, but I'm going with some probability between 0 and 1 because it should hopefully make for a simple example.
Then, you start the year with a prior distribution on what you think that probability for a team is. You could be very subjective about this and base it on anything you want from the previous year, but at the end of the day you would just need to boil it down to 2 parameters for the Beta Distribution, for each team. From there, each win or loss in a week constitutes an observation that allows the likelihood of this win or loss to cause your current estimate for the $p_i$ value of a team to change, becoming slowly more precise each week.
You could also use a "weighted likelihood" to favor more recent weeks over less recent ones, by simply pretending that the outcome for this week occurred $w_i$ times rather than 1 time, and for previous weeks assume a weight of less than $w_i$.
As a result of this you would have a posterior estimate for what each $p_i$ is and having a distribution for this value gives you all kinds of flexibility. If you just wanted to know which of two teams was more likely to win a game, not conditional on anything in particular, you could just look at the posterior mode of the difference of their $p_i$ values, or even more simply just compare the mean $p_i$ values for each team directly.
You might try this example of Ranking Reddit Comments from Cam Davidson-Pilon or this example on Ranking Star Ratings to see what I mean -- it's a very flexible approach to scoring and it has the added benefit of not requiring you to "make special functions" to accomplish anything. It all happens within a well-founded, probabilistic framework.
Anyways, I know this is not necessarily a "forecasting" solution but if you were trying to forecast the results of matchups then I'm not sure what the point of trying to create a score is in the first place. Unless you were going to use this score as a input to a model that predicts outcomes directly .. that would make more sense.