回顧上節課的提問:上節課的部落格鏈結
1.lua的八大資料型別:
2.ipairs和pairs的區別:
3.table的引用型別:
4.點與冒號的區別:冒號的第乙個引數預設為self,指向呼叫該函式的表
local tb =
local tb1 = {}
tb1 = tb
tb1.x = 20
print(tb.x) -- 20
1:牌概念性設計
描述一張牌:使用十六進製制(十位表示花色,個位表示點數)
花色:紅黑梅方王(0 - 4)
點數:a - k(1 - 13)
牌值:對應的大小順序排列(3 - k:3 - 13 a:14 2:16 小王:18 大王:19)
紅桃: k:0x0d
黑桃:a:0x11
2:建立一副牌
local cardutils = {} – 牌的工具類
--
1.建立一副牌
function cardutils:
newcards()
-- 返回54張牌
return
end
3:求牌的花色--
2.求牌的花色
function cardutils:
getcardcolor
(card)
return math.
floor
(card /
0x10
)end
4:求牌的點數function cardutils:
getcardpoint
(card)
return card %
0x10
end
5:判斷是否是王牌function cardutils:
isjoker
(card)
return
4== self:
getcardcolor
(card)
end
6:求牌的牌值function cardutils:
getcardvalue
(card)
local point = self:
getcardpoint
(card)
-- 獲得點數
if self:
isjoker
(card) then -- 如果是王牌
if1== point then--
0x41小王
return
18else
return
19 end
endif
1== point then --
areturn
14 elseif 2
== point then --
2return
16else
return point --3-
k end
end
7:洗牌function cardutils:
shuffle
(allcards)
for i =
1,#allcards do
local j = math.
random(1
,#allcards)
allcards[i]
,allcards[j]
= allcards[j]
,allcards[i]
endend
8:發牌function cardutils:
sendcards
(allcards)
local handcards =
for i =1,
3dohandcards[i]
=for j =1,
17do
local card = table.
remove
(allcards)
table.
insert
(handcards[i]
,card)
endend
return handcards
end
9:副牌排序function cardutils:
sort
(handcards)
table.
sort
(handcards,
function
(card1,card2)
local value1 = self:
getcardvalue
(card1)
local value2 = self:
getcardvalue
(card2)
local color1 = self:
getcardcolor
(card1)
local color2 = self:
getcardcolor
(card2)
-- 先比較牌值
if value1 ~
= value2 then
return value1 > value2
else
-- 再比較花色
return color1 > color2
endend)
end
10:列印整副牌function cardutils:
print
(handcards)
local s =
""for i =
1,#handcards do
-- local color = self:
getcardcolor
(handcards[i]
)-- local point = self:
getcardpoint
(handcards[i]
) s = s .
.string
.format
("0x%02x"
,handcards[i]).
." "
endprint
(s)end
11:測試函式math.
randomseed
(os.
time()
)-- 測試
--1.建立一副新牌
local allcards = cardutils:
newcards()
--2.洗牌
cardutils:
shuffle
(allcards)
--3.發牌
local handcards = cardutils:
sendcards
(allcards)
----
4.對第乙個玩家的牌排序
cardutils:
sort
(handcards[1]
)----5.列印第乙個玩家的牌
cardutils:
print
(handcards[1]
)return cardutils --y用於其他類呼叫返回
如何開發一款棋牌遊戲?棋牌遊戲平台搭建
關於如何開發一款自己的棋牌遊戲專案 目前只說棋牌客戶端 就說說自己的個人觀點,自己yy的,不喜勿噴。首先,要做一款遊戲,如果你要做一款有網路的棋牌遊戲,有使用者資料儲存的,那麼首先就要有乙個伺服器,然後我們才能基於unity開發的這個棋牌客戶端去跟伺服器通訊,如果是做單機,那麼就請忽略這第一步 我們...
第乙個概念性的 Oracle 蠕蟲
oracle 的眾多漏洞有被更大範圍惡意利用的傾向。10 月 31 日,有乙個匿名者在 full disclosure fd 郵件列表裡投遞了一篇名為 trick or treat larry 很明顯是對 larry ellison 的乙個小玩笑 的郵件。完全用 pl sql 寫的蠕蟲就這樣出現了。...
遊戲開發中的概念設計
上次錄完 日式美學小記 之後,小路邀請到了一位做遊戲設計和開發的朋友品,這次就請他來聊一聊概念設計和遊戲開發。不怕大家笑話,我是乙個寫字 因為這個被老師從小學罵到大學 和畫畫 學到素描就徹底放棄 都特別差的人,一直以來都特別羨慕會畫畫的人。看了下品在微博發的圖,感覺到了深深的羨慕和嫉妒,同樣是手,我...