亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 媒體動畫 > 正文

Director實例剖析:五子棋游戲地繪制(1)

2024-09-08 19:27:04
字體:
來源:轉載
供稿:網友
五子棋游戲的制作
    五子連珠,在民間俗稱”五子棋”,是一種流傳很廣的益智棋類游戲,游戲規則非常簡單,適合各個年齡段的朋友玩,相信大家以前也一定玩過此游戲,下面我們就來學習使用director來制作一個簡單的五子棋個游戲。

本文分為三個部分來介紹,界面比較簡單,主要是和大家討論一下制作的思路。

1.. 從游戲的玩法開始討論游戲的制作思路。

2.. lingo 代碼的設計,移子走棋,以及判斷游戲勝負后。

3.. lingo 代碼的設計,棋子布置和后悔按鈕的代碼設計。

一.游戲制作思路

我們這里介紹的的是一種最簡單的五子棋游戲,玩法很簡單,黑白雙方交替用鼠標拖動棋子來下棋,看誰先擺好連續的五粒,包括水平方向,垂直方向和傾斜方向(45度和135度),但是不能有拐點,必須是一條直線,哪一方先連好,則勝利。畫面如圖:


之所以簡單是因為我們這里沒有涉及到人和電腦下,沒有人工智能(ai),如果要涉及到ai,算法就會麻煩一點,而沒有ai的話,主要就是掃描檢測了.

現在就和大家一起討論制作思路:

1..首先要有一個交叉點列表(loclist)棋盤上每個交叉點的坐標值,我們這里為18*18的棋盤(每個格子寬20個象素)完成記錄。

2..由于需要游戲過程中判斷該位置是否有棋子,所以還需要一個同樣是二維的列表(onlist)來記錄棋子信息,為了方便我們沒有棋子的地方為0,黑子為1,白子為-1,初始化時全部為0。

上面的代碼均在電影腳本中書寫:

global loclist,onlist
on startmovie
   loclist=[]
   onlist=[]
repeat with i= 1 to 18
     tlist=[]
     ttlist=[]
repeat with j= 1 to 18
add tlist, point ( 20 *j, 20 *i)
add ttlist, 0
end repeat
add loclist,tlist
add onlist,ttlist
end repeat
end


這段代碼讓我們得到并初始化了兩個關鍵的二維列表(兩個全局變量) loclist 和 onlist 分別記錄交叉點位置信息 和 棋子信息。

我們可以在message窗口中用put命令查看它們的內容和規律,就會理解,這將為后面的走棋和判斷勝負做準備。

put loclist
[[point(20, 20), point(40, 20), point(60, 20), point(80, 20), point(100, 20), point(120, 20), point(140, 20), point(160, 20), point(180, 20), point(200, 20), …… point(340, 360), point(360, 360)]]

put onlist
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], …… 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]


二.移子走棋,以及判斷游戲勝負后


1..接下來介紹移動棋子代碼:

要實現的是,用戶用鼠標按住來移動棋子,并當用戶松開鼠標后,對當前棋子位置的判斷,看是否足夠靠近離其最近的一個可放點,如果是就會自動放置好。移動棋子的代碼相對簡單,這里就重點介紹是否足夠靠近離其最近的一個可放點:

定義相關屬性并初始化。

property pmousedown,sel,poldloc,moveenable,onlinepos
on beginsprite me
   sel= sprite ( me . spritenum ) --代表自身
   poldloc=sel. loc --棋子的原始位置
   pmousedown= 0 --是否鼠標按下
   moveenable= 1 --是否可以移動
   onlinepos=[] --移動的歷史記錄:記錄我移動完成后的位置信息和我的棋子信息(黑棋還是白棋),
end


這里的判斷原則是掃描所有交叉點,找到一個距離適當(與該點水平坐標差和垂直坐標差都要小于10),并沒有棋子(即onlist[i][j]=0)的點來放好棋子。

on ifcloseenough me
cursor - 1
--通過一個二重循環來遍歷二維列表中的每個坐標點
repeat with i = 1 to 18
repeat with j= 1 to 18

       myloc=sel. loc
if abs (myloc[ 1 ]-loclist[i][j][ 1 ])< 10 and abs (myloc[ 2 ]-loclist[i][j][ 2 ])< 10 and onlist[i][j]= 0 then

--如果找到一個開放點,則放置到該位置上
         sel. loc =loclist[i][j]
--不能在被移動
         sel.moveenable= 0

if sel. member . name = "white" then --棋子信息列表記錄該點棋子信息
           t= 1
           onlist[i][j]=t
           onlinepos=[i,j,t]
else
           t=- 1
           onlist[i][j]=t
           onlinepos=[i,j,t]
end if

--檢測是否有玩家獲勝(具體代碼稍后在講)
         check99v(i,j,t)

--找到點并放置好后就可以中止后面剩下的循環判斷操作了,否則一直掃描完
exit
end if
end repeat
end repeat

--在上面,如果沒有一個點靠得足夠近,就會回原位
   sel. loc =poldloc
end

2.. 判斷游戲勝負:

用check99v(i,j,t)程序檢測是否有玩家獲勝。(即判斷否至少有一個方向存在連續5個或以上的同色棋子)實際操作時我們根據當前點確定我們可以確定四條直線(實際上是四個列表),這里我們需要對四個直線逐一進行判斷。

這四條直線分別是,水平方向,垂直方向和傾斜方向(45度和135度)。

參考下圖中的四條藍色的粗線。

[1] [2] 下一頁  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精品va| 岛国视频午夜一区免费在线观看| 欧美成人一区二区三区电影| 51精品国产黑色丝袜高跟鞋| 精品成人久久av| 97精品一区二区三区| 一区二区中文字幕| 91av在线播放| 国产丝袜高跟一区| 美女黄色丝袜一区| 欧美日韩不卡合集视频| 国产精品久久久久国产a级| 91精品国产免费久久久久久| 在线播放国产一区中文字幕剧情欧美| 欧美色videos| 国产成人高潮免费观看精品| 九九精品视频在线观看| 中文字幕一精品亚洲无线一区| 色综合久综合久久综合久鬼88| 欧美日韩不卡合集视频| 日韩免费黄色av| 91久热免费在线视频| 国产精品自产拍在线观看中文| 日韩av片永久免费网站| 日韩欧美在线网址| 精品久久久久久| 日本精品久久中文字幕佐佐木| 国产精品va在线播放我和闺蜜| 亚洲аv电影天堂网| 美女av一区二区| 中文字幕日韩精品在线| 国产欧美欧洲在线观看| 国产精品一区二区性色av| 亚洲bt欧美bt日本bt| 91精品国产乱码久久久久久久久| 国产97在线|日韩| 综合欧美国产视频二区| 日韩高清人体午夜| 国产精品久久久久999| 91精品国产91久久久久久久久| 91精品视频播放| 亚洲最大在线视频| 欧美丝袜一区二区三区| 亚洲午夜小视频| 一区二区三区美女xx视频| 日韩亚洲一区二区| 91在线色戒在线| 成人动漫网站在线观看| 日韩欧美在线视频免费观看| 91精品国产一区| 在线视频日本亚洲性| 国产精品福利久久久| 91系列在线播放| 欧美黑人极品猛少妇色xxxxx| 国产精品成人免费电影| 亚洲精选中文字幕| 国语自产精品视频在免费| 亚洲女人初尝黑人巨大| 亚洲欧美日韩图片| 国产欧美日韩中文字幕| 久久久久久九九九| 国内精品一区二区三区四区| 国产精品久久久久久久久久久久久| 视频在线观看一区二区| 国产精品网址在线| 亚洲激情电影中文字幕| 福利一区福利二区微拍刺激| 欧美日韩精品在线| 久久精品国产精品亚洲| 成人激情在线观看| 欧美在线视频免费| 夜夜嗨av一区二区三区免费区| 日韩av免费在线看| 性欧美在线看片a免费观看| 亚洲最大中文字幕| 久久久久久有精品国产| 欧美裸身视频免费观看| 国产激情视频一区| 日韩国产欧美精品一区二区三区| 国产成人精品视频在线| 久热在线中文字幕色999舞| 欧美高清视频一区二区| 日韩成人黄色av| 日韩黄色av网站| 久久视频在线播放| 色偷偷av一区二区三区乱| 7m精品福利视频导航| 久久综合国产精品台湾中文娱乐网| 一本一本久久a久久精品牛牛影视| 欧美一级片免费在线| 中文字幕免费精品一区| 亚洲精品电影久久久| 超碰精品一区二区三区乱码| 在线观看视频99| 欧美裸体xxxx极品少妇| 国色天香2019中文字幕在线观看| 久久人人爽人人爽爽久久| 国产精品一区电影| 日韩激情视频在线播放| 国产精品综合不卡av| 亚洲一区二区三区四区在线播放| 日韩激情视频在线| 久久精品国产2020观看福利| 欧美一级bbbbb性bbbb喷潮片| 久久99久久99精品中文字幕| 91精品国产高清自在线| 2019亚洲男人天堂| 欧美电影在线免费观看网站| 色樱桃影院亚洲精品影院| 亚洲欧美色婷婷| 欧美国产日韩一区| 日本精品一区二区三区在线播放视频| 亚洲va久久久噜噜噜久久天堂| 成人中心免费视频| 国产精品网站视频| 91视频8mav| 欧美激情一区二区三区在线视频观看| 亚洲网站在线看| 九色91av视频| 国产精品白嫩初高中害羞小美女| 欧美寡妇偷汉性猛交| 国内外成人免费激情在线视频网站| 色婷婷av一区二区三区在线观看| 国产精品午夜视频| 国产精品久久不能| 久久成人av网站| 国产主播欧美精品| 91欧美精品成人综合在线观看| 亚洲一区国产精品| 成人网欧美在线视频| 国产精品成av人在线视午夜片| 欧美激情视频在线观看| 欧美在线观看日本一区| 欧美电影《睫毛膏》| 亚洲视频一区二区| 国产精品一区=区| 日韩**中文字幕毛片| 欧美电影免费观看电视剧大全| 欧美一级片一区| 91免费观看网站| 中文字幕日韩视频| 欧美性猛交99久久久久99按摩| 国产一区二区激情| 一区二区三区无码高清视频| 亚洲成在人线av| 亚洲欧洲日产国产网站| 国产精品亚发布| 国产专区精品视频| 亚洲男人天堂九九视频| 国产综合在线视频| 成人黄色av播放免费| 黑人极品videos精品欧美裸| 精品国产自在精品国产浪潮| 日本不卡免费高清视频| 欧美精品情趣视频| 久久色在线播放| 国产成人精品电影| 久久午夜a级毛片| 成人黄色免费在线观看| 欧美日韩性视频| 亚洲欧洲激情在线| 久久福利视频网| 亚洲国产精品成人va在线观看| 日韩久久精品成人|