编程题
### 问题描述
在一个 $3 \times 3$ 的网格上,`Alice` 和 `Bob` 轮流在网格上进行如下操作
> 1. 如果当前为 `Alice` 的轮次,那么选择一个空网格,在上面画上 $X$ 。
> 2. 如果当前为 `Bob` 的轮次,那么选择一个空网格,在上面画上 $O$ 。
游戏胜负结果判定如下:
> 1. 当存在一整行,一整列,或某一条斜线均为 $X$ 时,`Alice` 胜利且游戏结束。
> 2. 当存在一整行,一整列,或某一条斜线均为 $O$ 时,`Bob` 胜利且游戏结束。
> 3. 当没有空网格时,二者平局且游戏结束。
现在给定一个网格图,其中有些网格已经被画上 $X$ 或 $O$, `Alice` 和 `Bob` 轮流进行操作,`Alice` 先手,假设二人每次均施行最佳策略,请你求解该游戏最终的结果,题目保证给出的网格图不存在一整行,一整列,或某一条斜线均为 $X$ 或 $O$ 时。
### 输入格式
包含一个 $3 \times 3$ 的字符网格,每个位置上为 `.`(表示空网格),`X` 或 `O`。
### 输出格式
如果 Alice 最终能够获胜,输出 `Alice`。
如果 Bob 最终能够获胜,输出 `Bob`。
如果游戏最终平局,输出 `Tie`。
### 样例输入1
```text
XXO
XOO
...
```
### 样例输出1
```text
Alice
```
### 样例输入2
```text
...
...
...
```
### 样例输出2
```text
Tie
```
### 样例输入3
```text
...
OO.
OO.
```
### 样例输出3
```text
Bob
```