根据之前的博文,我把给同学做的三子棋小游戏的代码发出来,只是界面很丑很丑,AI算法很笨很笨,过几天我传到网盘上,提供大家下载娱乐

  1 background_image_filename = ‘blackground.png‘
  2 black_mouse_image_filename = ‘black.png‘
  3 white_mouse_image_filename = ‘white.png‘
  4 restart_icon_filename=‘restart.png‘
  5 pingju_icon_filename=‘pingju.jpg‘
  6 win_icon_filename=‘win.jpg‘
  7 lose_icon_filename=‘lose.jpg‘
  8
  9 import pygame
 10 import time
 11 import sys
 12
 13 from pygame.locals import *
 14 from sys import exit
 15
 16 HIGHLIGHTCOLOR = (255,255,255)
 17
 18 def AI(pp):
 19     #status is now white and black key in the board
 20     #taozi = white
 21     #computer = black
 22
 23     num = 0
 24     x = 0
 25     y = 0
 26
 27     if pp[1][1]==‘none‘:
 28         return 4
 29
 30
 31     for i in range(0,3):
 32         for j in range(0,3):
 33             if pp[i][j]==‘none‘:
 34                 pp[i][j]=‘white‘
 35                 cnt=0
 36
 37                 tx=i
 38                 ty=j
 39                 while tx>=0 and tx<3 and ty>=0 and ty<3 and pp[tx][ty]==‘white‘:
 40                     cnt=cnt+1
 41                     tx=tx+1
 42                 tx=i
 43                 ty=j
 44                 while tx>=0 and tx<3 and ty>=0 and ty<3 and pp[tx][ty]==‘white‘:
 45                     cnt=cnt+1
 46                     tx=tx-1
 47
 48                 if cnt > num:
 49                     num = cnt
 50                     x=i
 51                     y=j
 52
 53                 cnt=0
 54                 tx=i
 55                 ty=j
 56                 while tx>=0 and tx<3 and ty>=0 and ty<3 and pp[tx][ty]==‘white‘:
 57                     cnt=cnt+1
 58                     ty=ty+1
 59                 tx=i
 60                 ty=j
 61                 while tx>=0 and tx<3 and ty>=0 and ty<3 and pp[tx][ty]==‘white‘:
 62                     cnt=cnt+1
 63                     ty=ty-1
 64
 65                 if cnt > num:
 66                     num = cnt
 67                     x=i
 68                     y=j
 69
 70                 cnt=0
 71                 tx=i
 72                 ty=j
 73                 while tx>=0 and tx<3 and ty>=0 and ty<3 and pp[tx][ty]==‘white‘:
 74                     cnt=cnt+1
 75                     tx=tx+1
 76                     ty=ty+1
 77                 tx=i
 78                 ty=j
 79                 while tx>=0 and tx<3 and ty>=0 and ty<3 and pp[tx][ty]==‘white‘:
 80                     cnt=cnt+1
 81                     tx=tx-1
 82                     ty=ty-1
 83
 84                 if cnt > num:
 85                     num = cnt
 86                     x=i
 87                     y=j
 88
 89                 cnt=0
 90                 tx=i
 91                 ty=j
 92                 while tx>=0 and tx<3 and ty>=0 and ty<3 and pp[tx][ty]==‘white‘:
 93                     cnt=cnt+1
 94                     tx=tx+1
 95                     ty=ty-1
 96                 tx=i
 97                 ty=j
 98                 while tx>=0 and tx<3 and ty>=0 and ty<3 and pp[tx][ty]==‘white‘:
 99                     cnt=cnt+1
100                     tx=tx-1
101                     ty=ty+1
102
103                 if cnt > num:
104                     num = cnt
105                     x=i
106                     y=j
107
108
109                 pp[i][j]=‘none‘
110
111
112
113     return x*3+y
114
115 def main():
116
117     pygame.init()
118     screen = pygame.display.set_mode((800,500),0,32)
119     pygame.display.set_caption("you can never win!")
120     background = pygame.image.load(background_image_filename).convert()
121     mouse_cursor = pygame.image.load(white_mouse_image_filename).convert_alpha()
122
123
124     white_sign = pygame.image.load(white_mouse_image_filename).convert_alpha()
125     restart    = pygame.image.load(restart_icon_filename).convert_alpha()
126     pingju     = pygame.image.load(pingju_icon_filename).convert_alpha()
127     winicon    = pygame.image.load(win_icon_filename).convert_alpha()
128     lose       = pygame.image.load(lose_icon_filename).convert_alpha()
129
130
131
132     black_sign = pygame.image.load(black_mouse_image_filename).convert_alpha()
133     position=[ [27,11,93,68,0],[240,6,304,60,1],[476,4,525,42,2],[24,206,80,265,3],[246,212,292,257,4],[477,212,528,258,5],[26,440,73,479,6],[244,435,292,478,7],[475,435,527,480,8] ]
134     positionMid=[ [48-26,24-24],[269-26,24-24],[500-26,24-24],[48-26,233-24],[269-26,234-24],[500-26,234-24],[48-26,459-24],[269-26,460-24],[500-26,460-24] ]
135     positionColor=[ ‘none‘,‘none‘,‘none‘,‘none‘,‘none‘,‘none‘,‘none‘,‘none‘,‘none‘]
136
137     whoIsTurn = [‘computer‘,‘taozi‘]
138     turnKey   = 1   # 1 means taozi
139                     # 0 means computer
140     cnt = 0
141     pp=[ [‘none‘,‘none‘,‘none‘],
142          [‘none‘,‘none‘,‘none‘],[‘none‘,‘none‘,‘none‘]]
143     #pp = [ [
144     win=0
145     while 1:
146         newx =0
147         newy =0
148
149         color = ‘white‘
150         color1 = ‘black‘
151         color2 = ‘none‘
152         for event in pygame.event.get():
153             if event.type == QUIT:
154                 pygame.quit()
155                 sys.exit()
156             elif event.type == MOUSEBUTTONDOWN :
157                 newx,newy = pygame.mouse.get_pos()
158                 for i in position:
159                     if (newx>=i[0] and newx <= i[2]) and (newy >= i[1] and newy <= i[3]):
160                         j = i[4]
161                         if positionColor[j]!=‘none‘:
162                             continue
163                         positionColor[j]= color
164                         #positionColor[j+1]= color
165                         for ii in range(0,3):
166                             for jj in range(0,3):
167                                 pp[ii][jj]=positionColor[ii*3+jj]
168
169                         # AI begin
170
171                         res = AI( pp )
172                         positionColor[res]=color1
173
174                         # AI finished
175
176                         cnt=cnt+1
177                 if newx>=674 and newx<=774 and newy>=396 and newy<= 496:
178                     for i in range(0,3):
179                         for j in range(0,3):
180                             positionColor[i*3+j]=‘none‘
181                             pp[i][j]=‘none‘
182                             win=0
183
184         screen.blit(background,(0,0))
185         screen.blit(restart,(674,396))
186         #x,y = pygame.mouse.get_pos()
187         #x -= mouse_cursor.get_width()/2
188         #y -= mouse_cursor.get_height()/2
189         #if win==0:
190         #    screen.blit(mouse_cursor,(x,y))
191
192         #x,y = pygame.mouse.get_pos()
193         for i in position:
194             x,y = pygame.mouse.get_pos()
195             if (x>=i[0] and x <= i[2]) and (y >= i[1] and y <= i[3]):
196                 x-=26
197                 y-=26
198                 if positionColor[ int(i[4]) ]==‘none‘:
199                 #pygame.draw.rect(screen,HIGHLIGHTCOLOR,(x,y,52,52),0)
200                     screen.blit(mouse_cursor,(x,y))
201                     print("done it")
202                 else:
203                     print("color= ",positionColor[i[4]])
204
205
206         for ii in [0,1,2,3,4,5,6,7,8]:
207             if positionColor[ii] != ‘none‘:
208                 if positionColor[ii] == ‘white‘:
209                     #print("write white_sign")
210                     screen.blit(white_sign,positionMid[ii] )
211                 else :
212                     #print("write black_sign")
213                     screen.blit(black_sign,positionMid[ii])
214
215
216         for i in range(0,3):
217             for j in range(0,3):
218                 pp[i][j]=positionColor[i*3+j]
219
220
221
222         for i in range(0,3):
223             if pp[i][0]==pp[i][1] and pp[i][0]==pp[i][2] and pp[i][0]!=‘none‘:
224                 win=1
225                 winner=pp[i][0]
226             if pp[0][i]==pp[1][i] and pp[0][i]==pp[2][i] and pp[0][i]!=‘none‘:
227                 win=1
228                 winner=pp[0][i]
229         if pp[0][0]==pp[1][1] and pp[0][0]==pp[2][2] and pp[0][0]!=‘none‘:
230             win=1
231             winner=pp[0][0]
232         if pp[2][0]==pp[1][1] and pp[1][1] == pp[0][2] and pp[1][1]!=‘none‘:
233             win =1
234             winner=pp[1][1]
235         if win==0:
236             cntcolor=0
237             for i in range(0,3):
238                 for j in range(0,3):
239                     if pp[i][j]!=‘none‘:
240                         cntcolor=cntcolor+1
241             if cntcolor==9 :
242                 win =1
243                 winner=‘pingju‘
244
245         if win==1 :
246             #print("someone win!")
247             if winner==‘white‘:
248                 screen.blit(winicon,(50,20))
249             elif winner==‘pingju‘:
250                 screen.blit(pingju,(100,100))
251             else:
252                 screen.blit(lose,(100,100))
253             #print("winner = ",winner)
254             #time.sleep(10000)
255
256
257
258         pygame.display.update()
259
260
261
262 if __name__ == ‘__main__‘:
263     main()

根据之前的博文,我把给同学做的三子棋小游戏的代码发出来,只是界面很丑很丑,AI算法很笨很笨,过几天我传到网盘上,提供大家下载娱乐,布布扣,bubuko.com

时间: 2024-12-23 07:36:09

根据之前的博文,我把给同学做的三子棋小游戏的代码发出来,只是界面很丑很丑,AI算法很笨很笨,过几天我传到网盘上,提供大家下载娱乐的相关文章

使用pcs api往免费的百度网盘上传下载文件

百度个人云盘空间大,完全免费,而且提供了pcs api供调用操作文件,在平时的项目里往里面保存一些文件是很实用的. 环境准备: 开通读写网盘的权限及获取access_token:http://blog.csdn.net/langyuezhang/article/details/47206621 百度官方pcs api文档:http://developer.baidu.com/wiki/index.php?title=docs/pcs/overview,上面有各种语言的SDK,我用的laravel

使用Snoopy下载论坛附件,并上传到网盘的实例

Snoopy无疑是我使用过的最强大的采集类,本博也做过一些简单的入门介绍. 近日,我完成了数个基于Snoopy的程序,如批量下载百度文档附件.论坛附件下载.本地文件批量上传,已经能比较熟练的使用此类.加上本博主要是做采集程序研究的,那么,有必要将Snoopy的一些高级功能拿出来晒晒,照顾下新人.那今天要演示的一个功能是,Snoopy模拟用户登陆论坛并下载附件,并上传到网盘的一个实例. 通过本例,我们要取得附件上传到网盘以后,返回附件在网盘的下载链接.这个功能,可以和火车采集器无缝结合,实现火车采

MultCloud – 支持数据互传的网盘管理

MultCloud https://www.multcloud.com/ 是一款在线服务,可以在一个地方管理众多网盘,支持国产百度盘, 最具有特色的地方是你可以直接在 MultCloud 里操作将 Dropbox 的文件传输到百度盘中. MultCloud 支持的国外网盘较多, Dropbox.Google Drive.Skydrive.Amazon S3.SugarSync. Box.Copy,CloudMe.Cubby.MyDriver.WEB.DE.Yandex. HiDrive 以及 W

Visual Studio 2017 发布 15.5 版本,百度网盘离线安装包下载。

Visual Studio 2017 15.5 版本已正式发布,同时发布的还有 Visual Studio for Mac 7.3 .此次更新包含主要性能改进,新特性以及 bug 修复.发行说明中文版 目前尚未更新,可先查看 英文版.本站第一时间跟进了离线安装包的制作,并于2017年12月6日在 码农很忙 首发. 本离线安装包使用官方原版程序配合 layout 指令制作,包含 Visual Studio 2017 Enterprise 15.5 所有组件以及全部语言包.因最终包体较大且文件名较长

百度网盘,可以高速下载

相信不少小伙伴都知道 百度网盘的下载速度着实让人抓狂 看了一下会员的价格 真的要说一句打扰了 今天就给大家推荐一款 百度网盘下载的神器 不过比较不足的是 目前只有安卓手机才可以使用 感兴趣的朋友可以 下载 下载安装完成后 打开app 登录我们的百度网盘账号 打开文件夹 选择我们想要的文件 点击下载  在传输列表里 就可以看到我们正在下载的文件 可以看到速度还是很快的 怎么样是不是非常好用呢 不过要注意的是安装这个APP之前 要先把手机上的百度APP 和原来的百度网盘卸载再进行安装 好啦 今天的软

百度网盘无vip高速下载的方法

我拿的是谷歌浏览器做实验 首先下载一个可以改user-agent的插件 我chorm里面下载的是User-Agent Switcher for Chrome插件 将百度网盘的url地址中的baidu.com更改为baiduwp.com 复制所需要下载的百度网盘地址,然后将url里面的“baidu”更改为“baiduwp”,然后访问 修改user-agent 打开插件,将user-sgent设置为opera搜索引擎的 然后就可以高速下载了 原文地址:https://www.cnblogs.com/

博客内的百度网盘资源公开目录下载

本博客下的百度网盘资源公开下载目录,及地址更新. 博客园文档与资料(长期更新, 2015-10-18 Build) https://pan.baidu.com/s/1wuBOpNbim5jBru03AfSAVg PS: 只为大家更快.更好的学习.工作.成长. 原文地址:https://www.cnblogs.com/arxive/p/11616970.html

百度网盘Mac版如何分享链接?创建百度网盘 for Mac分享链接的方法

想把自己百度网盘里的数据分享给朋友,该怎么操作呢?有很多朋友使用百度网盘,可以很轻松的自己的文件上传到网盘上,并可跨终端随时随地查看和分享.下面Mac down小编就给大家介绍一下创建百度网盘 for Mac分享链接的方法,为使用mac版百度网盘的朋友,解决百度网盘Mac版如何分享链接的烦恼. https://www.macdown.com 百度网盘Mac版如何创建分享链接 我们以分享[18126未来教育考试系统]为例,详细介绍Mac版百度网盘分享链接的方法步骤. 1.我们首先创建百度网盘for

为什么国内的网盘公司都在 TB 的级别上竞争,成本会不会太高?(还有好多其它回复)

作者:杜鑫链接:http://www.zhihu.com/question/21591490/answer/18762821来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. @Jerry 已经说明可其中非常关键的一步,我来补充一些并说得通俗易懂一些. 我想要为每个用户提供 1G 的网络存储空间. 如果服务器上有一颗 1000G 的硬盘可以全部为用户提供数据储存,如果每个用户分配 1G 的最大储存空间,那么能分配给多少个用户使用呢? 你一定说是 1000/1=1000