冷风.NET

    ---默默無聞
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

以OO的思想利用JS來實現五子棋

Posted on 2009-09-29 10:10  冷风.net  阅读(1930)  评论(2编辑  收藏  举报

下載地址: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個方向單元格的棋子數(這里是關鍵)

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

最後創建一個游戲對象

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

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

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