紙片遊戲 clojure寫法

2021-10-12 19:39:02 字數 2892 閱讀 9637

紙片玩法資料結構

資料每一格的資訊:[ 0 1 ]

位置獲勝資訊:[本關的勝利位置 呆了幾次],比如[6 1 0]表示6 1呆了0次,3次獲勝

*****game {

:levelmap

[每一格的資訊]

;遊戲地圖

:currentmap

;當前關

:winpoint

; [獲勝位置資訊]

:actionpoint

;行動點數

:turn

;已進行回合數。預設為1

:mapsize[[

55]]

;每輪地圖大小

邏輯;生成遊戲函式

defn createmap [turn]

let [*****game (createbasedata turn)

];生成最基礎的遊戲資料

do [createbox [*****game]

;生成推盒

create***** [*****game]

;生成紙

createplayer [*****game]

;生成玩家

createwinpoint [*****game]

;生成獲勝點

*****game]

;返回資料

;玩家行為:移動函式 啟動檢查:是否有足夠的行動點數,並扣除點數,加上回合

defn move [x y *****game]

do [update*****pos *****game ;更新*****的位置,根據推盒和邊界移動

if (checkplayercanmove *****game)

;檢測玩家移動的位置可以移動

[(updateplayerpos *****game)

;移動玩家位置

(costactionpoint *****game)

;消耗一點點數

*****game]

;返回資料

;玩家行為:調查函式

defn lookup [x y *****game]

do [update*****pos *****game ;更新*****的位置,根據推盒和邊界移動

(if (checkplayercanlook *****game)

;檢測玩家攻擊的位置中有盒子

(if (lucky?)

(println (*****game : winpoint));列印出獲勝點的位置

(println 「廢話一句」))

;列印出一句廢話或者故事

*****game]

;返回資料

;玩家行為:

defn stay [*****game]

do [update*****pos *****game ;更新*****的位置,根據推盒和邊界移動(if

(isinwinpoint *****game)

;玩家是否在獲勝點上

(addplayerwinpoint *****game)

; 增加1個玩家在某個位置上的獲勝點數

*****game]

;返回資料

;玩家行為:攻擊函式

defn kill [x y *****game]

do [update*****pos *****game ;更新*****的位置,根據推盒和邊界移動

if (checkplayercanattack *****game)

;檢測玩家攻擊的位置中有盒子

[(destroy***** *****game)

;消除*****

(addactionpoint *****game)

];增加行動點數10點

*****game]

;返回資料

;在玩家行動之後,檢查是否通關

defn afteraction [*****game]

do [

if(checkifwin *****game)

;檢視是否贏了

(loadnextlevel *****game)

];進入下一關

(println *****game)

;列印新的*****game

defn turnover [*****game]

(addturn *****game)

;對game增加乙個turn

defn dosomething [

name game & x y]

if (inlist? name

[stay move]

) do [

if(actionpointisenough(game))(

name game x y)

printin (「點數不夠了,move和stay都需要消耗點數」)

:else

(name game x y)

;每次要做什麼事情,大概要這樣輸入才可以。

(defn game (dosomething actionname game x y)

)

乙個隨便想的小遊戲。

接下來就是實現出來。

筆記:

(

defn neighbors

([size yx]

(neighbors [

[-10][

10][

0 -1][

01]] size yx))(

[deltas size yx]

(filter(fn

[new-yx]

(every? #(

< -1 % size)

new-yx))(

map #(vec (

map+ yx %)

) deltas)))

)

純js寫小遊戲

html部分 css部分 大盒子容器 div1 彈動的小球 ball 底部小滑塊 slide 頂部磚塊的父級盒子 brick 頂部磚塊 brick div js部分 window.onload function if ball.offsettop 0 if ball.offsettop 580 小球...

自己寫的小遊戲,玩玩

tchar.h ifndef trect define trect include struct trect public rect endif twindow.h pragma once include include include trect.h define black false defi...

為什麼不用C 寫遊戲

當今世界上絕大多數遊戲都是c 寫的,為什麼要說不呢?要做什麼?寫遊戲。寫遊戲首先要考慮些什麼?做什麼樣的遊戲,圖形 音效 遊戲邏輯如何實現。用c 要先考慮什麼?定義跨平台資料型別抽象,實現常用集合類,設計巨集實現rtti,寫乙個支援unicode並可以和其他多種字串型別互相轉換的字串類,自定義記憶體...