This is a partial answer to the problem.
Let $X=(X_n:n\in\mathbb{Z}_+)$ be a sequence of i.i.d. numbers uniformly distribute on $\{1,\ldots, 10\}$. the number that one of the friend chooses. Let $(\varepsilon_n:n\in\mathbb{N})$ be a sequence of i.i.d Bernoulli numbers with parameter $p=1/5$ and independent form $X$.
The outcome the game $n$ in the problem you are referring to is
$$ Y_n=\varepsilon_n X_0 + (1-\varepsilon_n)X_n$$
$$E[\frac1n\sum^n_{k=1}Y_k|X_0]=\frac15X_0+\frac{22}5$$
An estimator for $X_0$ is
$$\widehat{X}_{0,n}=\frac{5}{n}\sum^n_{k=1}Y_k - 22$$
or $\lfloor \hat{X}_{0,n}+.5\rfloor$.
Here is an R implementation of this game:
################
x0 <- sample(1:10,1) # friend's choice
myprediction <- function(ngames,x0){
epsilon <- 1*(runif(ngames) <= .2) # games at which x0 is actually reveil purposely
xgame <- sample(1:10, ngames, replace = T)
y <- epsilon*x0 + (1-epsilon)*xgame # number revieal by friend
floor(5*mean(y)-22+.5)
}
myprediction <- Vectorize(myprediction, vectorize.args = "ngames")
## example
c(x0,myprediction(ngames =100, x0=x0))
ypred <- myprediction(1:5000,x0)
## estimate number of times prediction was correct
gamesize <- seq(10,5000, by = 15)
freq <- vector(mode = 'numeric', length = length(gamesize))
for(n in 1:length(gamesize)){
games <- sapply(1:10000,function(x){myprediction(gamesize[n],x0)})
freq[n] <- length(which(games == x0))/ length(games)
}
plot(gamesize,freq, type = 'l')
abline(h=.9, col = 'red', lwd=3, lty=2)
Here is a plot of the frequency of success in 10000 repetitions of games of different sizes (10 to 5000 increments by 15 games)

Edit: The simulations above show that around playing a game of size larger than 2000, the probability of success (predictor matching the friend's secret number) is above 90%