Java如何编写一个简单的井字棋游戏代码示例?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2543个文字,预计阅读时间需要11分钟。
Java第一次实验,老师让我们做一个简易的围棋,电脑随机下棋。然后我就想能不能明确一点,可以判断出下一步该走哪一步棋;后来只能做到不会输,还是不够明确,只能按板凳地堵住用户,smartRobot的第三“
Java第一次实验,老师让做一个井字棋,电脑随机下棋。
然后就想能不能聪明一点,可以判断出走哪一步棋;然后只能做到不会输,还是不够聪明,只能呆板地堵住用户,smartRobot的第三个判断逻辑找不到最佳位置,赢得概率比较小;而且我没事干时,想玩玩这个小游戏找找成就感,但每次都会赢了机器人,所以删删改改了四五次,最后才成。
可以选择谁先开始,但startGame里的代码更加冗余了。看着就很乱,但没想到好的办法。
smartRobot里的代码全部重写了,比原来更聪明一点了:下在四个角的位置时,能优先选择最佳位置;然后没有最佳位置时,再随便找一空的(随便找空四角位置使用for代替了,比原来更简短)。
然后smartRobot的第一个和第三个判断逻辑,也更聪明一点了。原来判断机器人和判断用户的逻辑,是放在一个for循环里的,但无法找到最佳位置,现在分开了。
机器人先开始时,才能发挥出来新添加的机器人的“小聪明”;但机器人原来的能力发挥不回来,只有用户先开始时才能发挥出原来的能力。所以各有利弊,无论谁先开始都能适应。如果机器人先开始,并且用户第一步棋不是下在四角的位置,那么用户就必输了。其他的情况一般都是平局了。
想到一个因为可以选择谁先开始而导致 startGame 代码冗余的问题的解决方法,就是使用局部内部类。内部类能访问到方法的局部对象。
本文共计2543个文字,预计阅读时间需要11分钟。
Java第一次实验,老师让我们做一个简易的围棋,电脑随机下棋。然后我就想能不能明确一点,可以判断出下一步该走哪一步棋;后来只能做到不会输,还是不够明确,只能按板凳地堵住用户,smartRobot的第三“
Java第一次实验,老师让做一个井字棋,电脑随机下棋。
然后就想能不能聪明一点,可以判断出走哪一步棋;然后只能做到不会输,还是不够聪明,只能呆板地堵住用户,smartRobot的第三个判断逻辑找不到最佳位置,赢得概率比较小;而且我没事干时,想玩玩这个小游戏找找成就感,但每次都会赢了机器人,所以删删改改了四五次,最后才成。
可以选择谁先开始,但startGame里的代码更加冗余了。看着就很乱,但没想到好的办法。
smartRobot里的代码全部重写了,比原来更聪明一点了:下在四个角的位置时,能优先选择最佳位置;然后没有最佳位置时,再随便找一空的(随便找空四角位置使用for代替了,比原来更简短)。
然后smartRobot的第一个和第三个判断逻辑,也更聪明一点了。原来判断机器人和判断用户的逻辑,是放在一个for循环里的,但无法找到最佳位置,现在分开了。
机器人先开始时,才能发挥出来新添加的机器人的“小聪明”;但机器人原来的能力发挥不回来,只有用户先开始时才能发挥出原来的能力。所以各有利弊,无论谁先开始都能适应。如果机器人先开始,并且用户第一步棋不是下在四角的位置,那么用户就必输了。其他的情况一般都是平局了。
想到一个因为可以选择谁先开始而导致 startGame 代码冗余的问题的解决方法,就是使用局部内部类。内部类能访问到方法的局部对象。

