資源簡介
俄羅斯方塊是兒時最經典的游戲之一,使用Python實現俄羅斯方塊游戲。

代碼片段和文件信息
import?random
from?collections?import?namedtuple
Point?=?namedtuple(‘Point‘?‘X?Y‘)
Shape?=?namedtuple(‘Shape‘?‘X?Y?Width?Height‘)
Block?=?namedtuple(‘Block‘?‘template?start_pos?end_pos?name?next‘)
#?方塊形狀的設計,我最初我是做成?4?×?4,因為長寬最長都是4,這樣旋轉的時候就不考慮怎么轉了,就是從一個圖形替換成另一個
#?其實要實現這個功能,只需要固定左上角的坐標就可以了
#?S形方塊
S_BLOCK?=?[Block([‘.OO‘
??????????????????‘OO.‘
??????????????????‘...‘]?Point(0?0)?Point(2?1)?‘S‘?1)
???????????Block([‘O..‘
??????????????????‘OO.‘
??????????????????‘.O.‘]?Point(0?0)?Point(1?2)?‘S‘?0)]
#?Z形方塊
Z_BLOCK?=?[Block([‘OO.‘
??????????????????‘.OO‘
??????????????????‘...‘]?Point(0?0)?Point(2?1)?‘Z‘?1)
???????????Block([‘.O.‘
??????????????????‘OO.‘
??????????????????‘O..‘]?Point(0?0)?Point(1?2)?‘Z‘?0)]
#?I型方塊
I_BLOCK?=?[Block([‘.O..‘
??????????????????‘.O..‘
??????????????????‘.O..‘
??????????????????‘.O..‘]?Point(1?0)?Point(1?3)?‘I‘?1)
???????????Block([‘....‘
??????????????????‘....‘
??????????????????‘OOOO‘
??????????????????‘....‘]?Point(0?2)?Point(3?2)?‘I‘?0)]
#?O型方塊
O_BLOCK?=?[Block([‘OO‘
??????????????????‘OO‘]?Point(0?0)?Point(1?1)?‘O‘?0)]
#?J型方塊
J_BLOCK?=?[Block([‘O..‘
??????????????????‘OOO‘
??????????????????‘...‘]?Point(0?0)?Point(2?1)?‘J‘?1)
???????????Block([‘.OO‘
??????????????????‘.O.‘
??????????????????‘.O.‘]?Point(1?0)?Point(2?2)?‘J‘?2)
???????????Block([‘...‘
??????????????????‘OOO‘
??????????????????‘..O‘]?Point(0?1)?Point(2?2)?‘J‘?3)
???????????Block([‘.O.‘
??????????????????‘.O.‘
??????????????????‘OO.‘]?Point(0?0)?Point(1?2)?‘J‘?0)]
#?L型方塊
L_BLOCK?=?[Block([‘..O‘
??????????????????‘OOO‘
??????????????????‘...‘]?Point(0?0)?Point(2?1)?‘L‘?1)
???????????Block([‘.O.‘
??????????????????‘.O.‘
??????????????????‘.OO‘]?Point(1?0)?Point(2?2)?‘L‘?2)
???????????Block([‘...‘
??????????????????‘OOO‘
??????????????????‘O..‘]?Point(0?1)?Point(2?2)?‘L‘?3)
???????????Block([‘OO.‘
??????????????????‘.O.‘
??????????????????‘.O.‘]?Point(0?0)?Point(1?2)?‘L‘?0)]
#?T型方塊
T_BLOCK?=?[Block([‘.O.‘
??????????????????‘OOO‘
??????????????????‘...‘]?Point(0?0)?Point(2?1)?‘T‘?1)
???????????Block([‘.O.‘
??????????????????‘.OO‘
??????????????????‘.O.‘]?Point(1?0)?Point(2?2)?‘T‘?2)
???????????Block([‘...‘
??????????????????‘OOO‘
??????????????????‘.O.‘]?Point(0?1)?Point(2?2)?‘T‘?3)
???????????Block([‘.O.‘
??????????????????‘OO.‘
??????????????????‘.O.‘]?Point(0?0)?Point(1?2)?‘T‘?0)]
BLOCKS?=?{‘O‘:?O_BLOCK
??????????‘I‘:?I_BLOCK
??????????‘Z‘:?Z_BLOCK
??????????‘T‘:?T_BLOCK
??????????‘L‘:?L_BLOCK
??????????‘S‘:?S_BLOCK
??????????‘J‘:?J_BLOCK}
def?get_block():
????block_name?=?random.choice(‘OIZTLSJ‘)
????b?=?BLOCKS[block_name]
????idx?=?random.randint(0?len(b)?-?1)
????return?b[idx]
def?get_next_block(block):
????b?=?BLOCKS[block.name]
????return?b[block.next]
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-03-14?14:16??俄羅斯方塊\
?????文件????????3176??2019-01-02?09:14??俄羅斯方塊\blocks.py
?????文件???????98600??2019-03-14?14:16??俄羅斯方塊\freesansbold.ttf
?????文件???????10240??2019-03-14?14:18??俄羅斯方塊\tetris.py
?????文件???????????0??2018-08-30?21:03??俄羅斯方塊\__init__.py
?????目錄???????????0??2019-01-03?09:41??俄羅斯方塊\__pycache__\
?????文件????????1674??2019-01-03?09:41??俄羅斯方塊\__pycache__\blocks.cpython-36.pyc
?????文件???????45580??2019-01-02?13:13??俄羅斯方塊\俄羅斯方塊.png
- 上一篇:數值分析第五版部分上機實習題報告和源代碼
- 下一篇:模擬示波器 py腳本
評論
共有 條評論