Re: [請益] 請問使用C語言寫俄羅斯方塊
來分享一下我的做法好了
我用win32api來貼圖
基本架構就是一個12x23的陣列(10*20+左右牆+底+生成方塊的位置)
陣列內容有 狀態 -1牆 0空 1正在操作 2定住的方快
顏色 根據方塊種類而定
然後就是當狀態!=0的時候就依顏色印出來
第0,1列是不印的,我拿來放剛生成的方塊
每隔一小段時間就把狀態是1的往下移,
直到下面一格不是空的,就把方塊固定住並在最上面產生新的方塊
移動也是把狀態是1的往左或右移一格,除非要移的地方已經被佔走了
刪除的部份就設一個參數d=0,從底下往上搜,
假如碰到一整列滿的就d++,其他的列就往下移d列
▓▓▓▓▓▓▓▓▓ d=2,往下搬2列
▓▓▓▓▓▓▓▓▓▓▓ d=2
▓▓▓▓▓▓▓▓ ▓▓ d=1,往下搬1列 => ▓▓▓▓▓▓▓▓▓
▓▓▓▓▓▓▓▓▓▓▓ d=1 ▓▓▓▓▓▓▓▓ ▓▓
▓▓▓▓▓▓▓▓▓ ▓ d=0 ▓▓▓▓▓▓▓▓▓ ▓
最麻煩的是旋轉的部份,我的做法就是一格一格轉
就看這方塊轉過去會佔到那幾格就一一轉過去,
假如會碰到牆壁還要分成不同的狀況來寫
其實我主要是想看看大家旋轉的部份怎麼處理
因為我覺得我這部份寫得很囧,一開始沒寫好轉一轉還會飛天
我的寫法有什麼問題都請多指教
--
我要以耍冷來對抗溫室效應
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 112.104.57.123
→
12/15 16:26, , 1F
12/15 16:26, 1F
推
12/15 21:07, , 2F
12/15 21:07, 2F
→
12/15 22:12, , 3F
12/15 22:12, 3F
→
12/15 22:12, , 4F
12/15 22:12, 4F
→
12/15 22:14, , 5F
12/15 22:14, 5F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 5 之 6 篇):