python井字棋游戏大作业实验报告_Part 1.2 - 实现一个井字棋游戏的gym环境

上文已经描述了怎么创建和注册一个自定义的gym环境。但是环境类中的4个函数都是空的,本文将描述怎么实现那4个函数,实现一个完整的井字棋游戏的环境。

游戏规则:两个玩家在3x3的棋盘上,一方执X,一方执O。哪方先下的连续3个子(不管在对角,竖直还是水平方向)为胜。(类似五子棋)。赢得一方将会获得+100的奖励。

完整的环境代码访问GitHub。

其中,step函数已经指定了双方下棋的规则,也就是说这个程序不是依靠某个强化学习算法来下棋,而是靠固定规则。因为本系列文章的目的就是要说明如何自定义环境,而不是应用强化学习算法。

def step(self,target):

if self.done==1:

print('game over')

return [self.state,self.reward,self.done,self.add]

elif self.state[int(target/3)][target%3] != '-':

print('invalid step')

return [self.state,self.reward,self.done,self.add]

else:

if(self.counter%2==0):

self.state[int(target/3)][target%3]='o'

else:

self.state[int(target/3)][target%3]='x'

self.counter+=1

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值