惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
Engineering at Meta
Engineering at Meta
D
DataBreaches.Net
Stack Overflow Blog
Stack Overflow Blog
Microsoft Security Blog
Microsoft Security Blog
Y
Y Combinator Blog
B
Blog RSS Feed
GbyAI
GbyAI
P
Proofpoint News Feed
aimingoo的专栏
aimingoo的专栏
MyScale Blog
MyScale Blog
D
Docker
阮一峰的网络日志
阮一峰的网络日志
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Recorded Future
Recorded Future
美团技术团队
The Register - Security
The Register - Security
V
Visual Studio Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
Tailwind CSS Blog
爱范儿
爱范儿
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
The Blog of Author Tim Ferriss
博客园 - 司徒正美
量子位
B
Blog
F
Fortinet All Blogs
Martin Fowler
Martin Fowler
博客园 - 【当耐特】
MongoDB | Blog
MongoDB | Blog
A
About on SuperTechFans
I
InfoQ
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
有赞技术团队
有赞技术团队
雷峰网
雷峰网
大猫的无限游戏
大猫的无限游戏
J
Java Code Geeks
L
LangChain Blog
Latest news
Latest news
S
SegmentFault 最新的问题
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Blog — PlanetScale
Blog — PlanetScale
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Cisco Talos Blog
Cisco Talos Blog
F
Full Disclosure
C
Cisco Blogs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
W
WeLiveSecurity
T
Tenable Blog
T
Tor Project blog

博客园 - 冷风.net

開放幾個原來寫的js代碼,供大家娛樂一下 使用JS寫的第一個游戲[俄羅斯方塊] 假如現在讓你去說服客戶使用asp.net2.0開發系統,你會怎麼說服呢? 對象化javascript日期控件 - 冷风.net - 博客园 工作排程 防止圖片在WEB頁面上下載 - 冷风.net - 博客园 今天從新整理的大小寫數據轉換 - 冷风.net - 博客园 常用的XPATH說明 XmlHttp在DoNet中的完全应用---前/后台完成分离篇 系统用户权限与角色分析 学习设计模式之Composite 模式 改進Richer的WEB頁面進度條! 学习设计模式之Bridge模式 学习设计模式之生成器(Builder Pattern)模式 再谈Abstract Factory模式来实现数据库操作的类 Factory Method来实现数据库操作的类 不周表結構合併問題 今天下午困惑的問題,終於TMD搞出來了 利用線程實現錠時執行的運行模型
以OO的思想利用JS來實現五子棋
冷风.net · 2009-09-29 · via 博客园 - 冷风.net

下載地址:https://files.cnblogs.com/helimin19/Gobang.rar

先說下我認為的五子棋的實現原理: 判斷橫向、樅向、斜線方同、反斜線方向 四個方向中是否存在連續五個一樣的棋子。

現在我們以OO的思想來分析期實現原理:

五子棋的基本就是棋盤,怎個棋盤又是由一個一個的格子組成,所以我們得到了兩個對象:棋盤、棋盤格子

我們先分析一下五子棋的基本單元(棋盤格子的)屬性與方法:

屬性:
 1.  單元格都有其大小,所以我們可以設定屬性寬與高來指定
 2.  當單元格放在棋盤中後,其單8個方向的單元格我們分別使用:Top,Bottom,Left,Right,TopRight,BottomRight,BottomLeft,TopLeft來表示
 3.  其8個方向上與自己相同的棋子數我們分別使用:TopNumber、RightNumber、BottomNumber、LeftNumber、TopRightNumber、BottomRightNumber、BottomLeftNumber、TopLeftNumber來表示
 4.  單元格是否存放棋子我們使用Player來表示,如我們使用1表示此單元格存放的是白子,2表示存放的是黑子,0表示沒有存放棋子

  5. 當單元格放在棋盤中後,我們使用RowIndex,CelIndex來表示單元格在棋盤中的橫與樅向的索引

事件:

 當我們在單元格中單擊的時候,會在單元格中添加對應的棋子,並且設定其8個方同的棋子數與修改對應的8個方向單元格的棋子數(這里是關鍵)

至於棋盤的對象就很簡單了這里不用講了,代碼一看就清楚了

最後創建一個游戲對象

創建游戲對象要注意一點就是我們看到的棋盤與實際控制的棋盤是不一樣的

實現控制棋盤就是我們可以在上面下棋的棋盤(我們下棋是下在格子中的)

看到的棋盤:為了使看起來下的棋是在網格線上,這里我們添加了一個看到的棋盤,其顯示效果與實現控制的棋盤相差半個單元格