国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Scratch小游戲

2021-06-24 04:52:32陳新龍
電腦報(bào) 2021年3期
關(guān)鍵詞:豎線五子棋交叉點(diǎn)

陳新龍

五子棋相信大家都玩過,當(dāng)黑子或者白子橫、豎、斜連成五子,游戲結(jié)束,獲得勝利,但是如何在編程中根據(jù)五子棋的規(guī)則實(shí)現(xiàn)勝負(fù)判定還是很難的,更別說實(shí)現(xiàn)與人機(jī)對(duì)戰(zhàn)功能了。作為初學(xué)者我們可以先實(shí)現(xiàn)一個(gè)小目標(biāo),等掌握更多編程知識(shí)后再向更高難度進(jìn)發(fā)。五子棋可以分為人機(jī)對(duì)戰(zhàn)和人人對(duì)戰(zhàn)兩種形式,人機(jī)對(duì)戰(zhàn)需要用到復(fù)雜的算法,我們就先嘗試制作人人對(duì)戰(zhàn),先完成棋盤的繪制,兩個(gè)玩家用黑子、白子交替落子。至于判斷哪一方的五子先連成一條直線也可以放在以后再來想辦法完成。

目標(biāo)明確后,再來分析目標(biāo)明確需求。需要先完成五子棋盤的繪制,接下來完成黑(白)子跟隨鼠標(biāo)運(yùn)動(dòng),棋子的圓心要落在棋盤的交叉點(diǎn)上,雙方交替落子,一個(gè)交叉點(diǎn)只能落一顆棋子,不能在棋盤外落子(圖1)。

1. 繪制棋盤

棋盤由黑色的豎線和橫線交叉組成。在舞臺(tái)上找到一個(gè)合適的起始點(diǎn),畫一條豎線,通過循環(huán)次數(shù)控制線的數(shù)量,用繼續(xù)平移X坐標(biāo)的方法畫出剩下的線,畫橫線只需交換X和Y軸的變量即可完成。

新建變量“畫筆坐標(biāo)”來控制繪制線條X軸或Y軸的起點(diǎn),畫筆顏色設(shè)為黑色。根據(jù)舞臺(tái)大小設(shè)置兩條線相隔距離為20像素比較合適,這樣畫16條線就可以鋪滿舞臺(tái)。找一個(gè)合適的起始點(diǎn)(-198,-160),向上畫一條300長的豎線(20×15=300),將“畫筆坐標(biāo)”增加20,下一條線的起點(diǎn)就是在X軸方向平移20。循環(huán)16次,畫出全部豎線。橫線和豎線是一樣的畫法,只需要調(diào)換XY坐標(biāo)的變量。完成棋盤后廣播“黑子”,等待執(zhí)黑先行落子(圖2)。

2. 棋子編程

接下來解決黑子和白子的落子問題。在造型中繪制一黑一白兩個(gè)圓形棋子作為角色。我們使用畫筆的圖章功能實(shí)現(xiàn)落子,圖章功能與克隆不同點(diǎn)在于只在當(dāng)前位置畫下一個(gè)角色的圖形,而沒有繼承角色的代碼,且不像克隆體有數(shù)量上限。

這部分的難點(diǎn)是落子的位置,落子需要在棋盤交叉點(diǎn)的中心,因?yàn)槭髽?biāo)不可能精準(zhǔn)地落在交叉點(diǎn)中心,所以需要把這個(gè)交叉點(diǎn)范圍內(nèi)的落子經(jīng)過數(shù)學(xué)計(jì)算處理。在繪制棋盤時(shí)已經(jīng)知道每個(gè)交叉點(diǎn)的坐標(biāo)都是20的整數(shù)倍,把兩個(gè)交叉點(diǎn)間距離平分則一個(gè)交叉點(diǎn)對(duì)應(yīng)半徑為10的圓形區(qū)域。這樣我們就將需求轉(zhuǎn)化成一個(gè)數(shù)學(xué)取整的問題了。

假設(shè)交叉點(diǎn)坐標(biāo)為(X,Y),鼠標(biāo)的坐標(biāo)可能是(X+a,Y+b),且-10

比如,假設(shè)交叉點(diǎn)為(40,80),鼠標(biāo)指針為(43,82)按照上述公式計(jì)算可以得出最后的落點(diǎn)位置是交叉點(diǎn)(40,80)。

解決了落子問題,接下來有幾個(gè)問題需要大家去思考一下,如何保證落下的棋子不會(huì)落在棋盤外面呢?可以根據(jù)棋盤的坐標(biāo)范圍做一個(gè)判斷,超出不能啟動(dòng)圖章功能(圖4)。

最后不要忘記了還有最為關(guān)鍵的勝負(fù)判定,大家可以思考一下,通過什么方式可以實(shí)現(xiàn),這個(gè)知識(shí)以后我們?cè)僦v。

猜你喜歡
豎線五子棋交叉點(diǎn)
可自動(dòng)消除NG豎線缺陷的Mura檢測(cè)機(jī)設(shè)計(jì)探究
Sim Sim
圍棋棋盤的交叉點(diǎn)
TFT-LCD彩膜工藝宏觀缺陷自動(dòng)化修補(bǔ)的探究
象形文字走走看
90后羅運(yùn)生:五子棋是我生命的一部分
金色年華(2016年8期)2016-02-28 01:40:31
基于高中生命科學(xué)知識(shí)交叉點(diǎn)的教學(xué)方法研究
象形文字走走看
財(cái)政部長吳波的“五子棋局”
區(qū)域重力異常值的交叉點(diǎn)平差實(shí)例分析
郑州市| 海阳市| 延津县| 东辽县| 集贤县| 迁安市| 纳雍县| 都兰县| 新野县| 佛学| 安陆市| 苏尼特右旗| 玉溪市| 无极县| 台安县| 舞阳县| 灵丘县| 太和县| 赣州市| 丁青县| 湖南省| 扎兰屯市| 建瓯市| 汝州市| 长兴县| 察雅县| 十堰市| 怀安县| 莱西市| 芮城县| 桂阳县| 彰武县| 建水县| 女性| 榆树市| 漯河市| 沙坪坝区| 准格尔旗| 黄骅市| 扎囊县| 连城县|