作者ilohoo (吴丰(左右對稱耶))
看板BBSLua
標題[Lua ] 駭客蛇 超過100分可以去母體打電腦人了
時間Wed Sep 24 20:57:25 2008
※ [本文轉錄自 ilohoo 看板]
--#BBSLUA
-- Interface: 0.119
-- Title:Matrix Snake
-- Notes:這是一款貪食蛇遊戲,控制方向就用↓↑←→,離開按ESC。完習慣了就很順。
-- Author:ilohoo
-- Version:
-- Date:9/23
-- License:
function len(v)
for vv=0,40,1 do
if 10^vv > v then
return vv-1
end
end
end
function sqr(v)
for vv=0,v+1,1 do
if vv*vv > v then
return vv-1
end
end
end
function sseed(io)
if io == 16 then
return 3
elseif io <16 and io>9 then
return 2
elseif io<10 then
return 1
end
end
function checck()
for oo= 2 ,snakel do
if snakex[1]== snakex[oo] and snakey[1]== snakey[oo] then
return 1
end
end
if snakex[1]== pointx and snakey[1]== pointy then
score=score+pointscore*sqr(100/speed)
repeat
asdfg=1
pointx=math.random(40)
pointy=math.random(23)
pointscore=sseed(math.random(16))
for pp=2,snakel do
if pointx== snakex[pp] and pointy== snakey[pp] then
asdfg=0
end
end
until asdfg==1
snakel=snakel+1
end
end
score=0
afer={"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","1","2","3","4","5","6","7","8","9","0"}
aferb={"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","1","2","3","4","5","6","7","8","9","0"}
colf={30,32,32,37,37,31,33,36}
colb={0,0,1,0,1,1,1,1}
snakex={}
snakex[1]=20
snakex[2]=20
snakex[3]=20
snakex[4]=20
snakey={}
snakey[1]=10
snakey[2]=11
snakey[3]=12
snakey[4]=13
snakel=3
pointx=math.random(40)
pointy=math.random(23)
pointscore=sseed(math.random(16))
for ik =5,1000 do
snakex[ik]=1
snakey[ik]=1
end
arr2='UP'
ww={}
cc={}
for i= 1 , 40 do
ww[i]={}
cc[i]={}
for j= 1 , 23 do
ww[i][j]=math.random(36)
c=math.random(6)
if c == 1 then
cc[i][j]=1
elseif c == 2 or c == 3 then
cc[i][j]=3
else
cc[i][j]=2
end
end
end
bbs.title("得分".." ")
for i= 1 , 40 do
for j= 1 , 23 do
bbs.move(j,(i*2)-2)
co=cc[i][j]
bbs.color(colb[co],colf[co],40)
bbs.outs(afer[ww[i][j]])
end
end
bbs.sleep(1)
speed=10
repeat
bbs.sleep(speed/100)
if bbs.kbhit(0.01) then
arr=bbs.getch()
end
if arr == '+' and speed >2 then
speed=speed-2
arr =''
end
if arr == '-' and speed < 10 then
speed=speed+2
arr=''
end
if arr == 'UP' or arr =='DOWN' then
if arr2 == 'LEFT' or arr2== 'RIGHT' then
arr2=arr
end
end
if arr2 == 'UP' or arr2 =='DOWN' then
if arr == 'LEFT' or arr== 'RIGHT' then
arr2=arr
end
end
if arr2 == 'UP'then
snakey[1]=snakey[1]-1
snakex[1]=snakex[1]
elseif arr2 == 'DOWN' then
snakey[1]=snakey[1]+1
snakex[1]=snakex[1]
elseif arr2 == 'LEFT' then
snakex[1]=snakex[1]-1
snakey[1]=snakey[1]
elseif arr2 == 'RIGHT' then
snakex[1]=snakex[1]+1
snakey[1]=snakey[1]
end
if snakex[1]==0 then
snakex[1]=40
end
if snakex[1]==41 then
snakex[1]=1
end
if snakey[1]==0 then
snakey[1]=23
end
if snakey[1]==24 then
snakey[1]=1
end
bbs.move(snakey[1],snakex[1]*2-2)
bbs.color(colb[cc[snakex[1]][snakey[1]]+2],colf[cc[snakex[1]][snakey[1]]+2],40)
bbs.outs(aferb[ww[snakex[1]][snakey[1]]])
bbs.move(snakey[snakel+1],snakex[snakel+1]*2-2)
bbs.color(colb[cc[snakex[snakel+1]][snakey[snakel+1]]],colf[cc[snakex[snakel+1]][snakey[snakel+1]]],40)
bbs.outs(afer[ww[snakex[snakel+1]][snakey[snakel+1]]].." ")
bbs.move(snakey[2],snakex[2]*2-2)
bbs.color(colb[cc[snakex[2]][snakey[2]]+1],colf[cc[snakex[2]][snakey[2]]+1],40)
bbs.outs(aferb[ww[snakex[2]][snakey[2]]])
bbs.move(snakey[snakel],snakex[snakel]*2-2)
bbs.color(colb[cc[snakex[snakel]][snakey[snakel]]+1],colf[cc[snakex[snakel]][snakey[snakel]]+1],40)
bbs.outs(afer[ww[snakex[snakel]][snakey[snakel]]].." ")
qwert=checck()
for d=-1,snakel-2 do
snakex[snakel-d]=snakex[snakel-d-1]
snakey[snakel-d]=snakey[snakel-d-1]
end
bbs.move(0,9)
bbs.color(1,37,46)
bbs.outs(score)
bbs.move(0,10+len(score))
bbs.color(1,37,46)
bbs.outs(' 速度 '.. 1000/speed.." ")
bbs.move(0,16+len(score)+len(1000/speed))
bbs.color(1,37,46)
bbs.outs(" ")
bbs.move(pointy,(pointx*2)-2)
bbs.color(colb[pointscore+5],colf[pointscore+5],40)
bbs.outs(aferb[ww[pointx][pointy]])
bbs.color(1)
bbs.move(23,79)
until 1 == qwert or arr=='^['
bbs.move(10,30)
bbs.color(1,37,42)
bbs.outs("GAME OVER")
bbs.getch()
--#BBSLUA
--
※ 發信站: 批踢踢兔(ptt2.cc)
◆ From: 140.112.66.226
→ danielkuo: ◆ BBS-Lua 執行結束 (程式錯誤)。推 09/18 21:59
→ ilohoo:你撞牆了,我還沒做判定。當位置<0時會當推 09/19 12:21
※ ilohoo:轉錄至看板 jasonnn 09/24 14:05
--
※ 發信站: 批踢踢兔(ptt2.cc)
◆ From: 140.112.4.235
→ hrs113355:好難@@推 09/24 21:00
→ Kinra:好快!!!!!推 09/24 21:00
→ abc1234586:大概了解 但是還是太難XD推 09/24 21:02
→ ilohoo:速度放慢了推 09/24 21:18
→ cockroach00:94 要一直盯著看蠻累的XD推 09/25 00:07
→ ckclark:第一次玩就破百 應該是放慢過後的吧推 09/25 00:56
→ ilohoo:放慢是放慢兩倍有空再弄自訂速度推 09/25 01:21
→ tanshun:第一次玩也破百,大概速度也調過了吧推 09/25 13:22
→ sfwejfish:第一次破 期待自訂速度(記得附註原版速度多快></)推 09/25 14:59
→ k860326:電腦人呢~XD推 09/25 17:43
→ k860326:原來是1000分 囧推 09/25 17:43
→ ilohoo:按"+","-"可以調速度,分數會隨速度增加。推 09/25 17:54
→ icenivek:我玩到一半沒東西可以吃了耶!?推 09/25 23:15
→ sfwejfish:50會狂跳>"<推 09/26 10:51
→ asdfghjk0126:玩到965 差點就1000了>"<推 09/27 11:16
→ pioneerlike:推~推 09/28 15:26
※ MISAnogo:轉錄至某隱形看板 09/28 17:03
→ hollowmanx:電腦人士唬爛的吧XDDD推 09/29 19:23
→ ilohoo:的確沒有電腦人,但也沒有母體吧??推 09/30 20:53
→ ilohoo:我的意思是,能看這堆亂碼哪麼久那麼專注和駭客任務一樣推 09/30 20:54
→ VElysian:有創意也不錯玩,但我想到有色盲的會不知道這是什麼 XD推 10/01 09:22
→ Kinra:其實色盲也可以玩 蛇本身是全半形變化 食物是出現新字推 10/01 10:48
→ youtien:改程式,改到超過1分即可打電腦人啊。推 10/02 19:40
→ mTwTm:對,因為全半形變化所以色弱的我也可以玩 哭哭推 10/02 22:25
※ unumbra:轉錄至某隱形看板 10/31 22:40
※ pharos:轉錄至某隱形看板 11/01 22:35
※ k860326:轉錄至看板 Test 12/06 18:03