好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Python控制臺輸出俄羅斯方塊移動和旋轉功能

Python控制臺輸出俄羅斯方塊移動和旋轉功能

熱門標簽:地圖制圖標注位置改變是移位嗎 房產電銷外呼系統 南京銷售外呼系統軟件 上海機器人外呼系統哪家好 地圖標注的意義點 蓋州市地圖標注 315電話機器人廣告 地圖標注微信發送位置不顯示 浙江電銷卡外呼系統好用嗎

今天填一個坑,俄羅斯方塊!!
俄羅斯方塊的移動不難實現,但是旋轉就不太容易實現,究其原因是因為Python中沒有數組這種數據結構,所以不能用矩陣的公式。今天把旋轉做出來了,剛好整理一下,把之前的都整合在一起

這兩天瀏覽量有點離譜,說明一下,我沒有使用pygame,只是在控制臺可以打印、移動和旋轉生成的俄羅斯方塊星號圖形

俄羅斯方塊-打印

功能:輸入字母,打印俄羅斯方塊的*圖形

# 盡可能吧俄羅斯方塊放在中間
Tetris = {'L': [[1, 1], [1, 2], [1, 3], [2, 3]],
         'O': [[1, 1], [2, 1], [1, 2], [2, 2]],
         'J': [[2, 1], [2, 2], [1, 3], [2, 3]],
         'Z': [[1, 1], [2, 1], [2, 2], [3, 2]],
         'S': [[1, 1], [1, 2], [2, 2], [2, 3]],
         'I': [[1, 1], [1, 2], [1, 3], [1, 4]],
         'T': [[1, 1], [2, 1], [2, 2], [3, 1]]}
print(Tetris)

while True:
    figure = input("請輸入俄羅斯方塊的形狀")
    flag = 0
    for i in range(0, 5):
        for j in range(0, 4):
            for li in range(0, len(Tetris[figure])):    # Tetris['L']
                if j == Tetris[figure][li][0] and i == Tetris[figure][li][1]:
                    flag = 1
            if flag == 1:
                print("*", end='')
            else:
                print(" ", end='')
            flag = 0
        print()

俄羅斯方塊-移動

這一版使用了函數+字典
功能:輸入字母,打印俄羅斯方塊的*圖形,輸入468可以移動

# 文件名稱:Model-Tetris.PY
# 開發工具:PyCharm

Tetris = {'L': [[1, 1], [1, 2], [1, 3], [2, 3]],
         'O': [[1, 1], [2, 1], [1, 2], [2, 2]],
         'J': [[2, 1], [2, 2], [1, 3], [2, 3]],
         'Z': [[1, 1], [2, 1], [2, 2], [3, 2]],
         'S': [[1, 1], [1, 2], [2, 2], [2, 3]],
         'I': [[1, 1], [1, 2], [1, 3], [1, 4]],
         'T': [[1, 1], [2, 1], [2, 2], [3, 1]]}

def L_char(char):
    flag = 0
    for i in range(0, 7):
        for j in range(0, 7):
            for li in range(0, len(Tetris[char])):  # Tetris['L']
                if j == Tetris[char][li][0] and i == Tetris[char][li][1]:
                    flag = 1
            if flag == 1:
                print("*", end='')
            else:
                print(" ", end='')
            flag = 0
        print()

def move(char, num):
    if num == 2:
        for li in range(0, len(Tetris[char])):
            Tetris[char][li][1] += 1
    if num == 4:
        for li in range(0, len(Tetris[char])):
            Tetris[char][li][0] -= 1
    if num == 6:
        for li in range(0, len(Tetris[char])):
            Tetris[char][li][0] += 1
    if num == 8:
        for li in range(0, len(Tetris[char])):
            Tetris[char][li][1] -= 1
# 文件名稱:Test-Tetris.PY
# 開發工具:PyCharm   
from Day05 import Model_Tetris
if __name__ == '__main__':
    char = input("請輸入圖形:")
    Model_Tetris.L_char(char)
    while True:
        num = int(input("請輸入移動代碼2/4/6/8:"))
        if num == 8 or num == 2 or num == 4 or num == 6:
            Model_Tetris.move(char, num)
            Model_Tetris.L_char(char)
        else:
            break

俄羅斯方塊-旋轉

主要思想:預定義4X4的坐標轉換,旋轉式查找字典中的轉換坐標,進行相應的替換
功能:輸入字母,打印俄羅斯方塊的*圖形,輸入468可以移動,輸入5可以旋轉
廢話不多說,直接給出代碼:

#!/usr/bin/python
# _*_coding:utf-8_*_
# 開發人員:zys
# 開發時間:2021/4/16 16:50 
# 文件名稱:Test-Tetris.PY
# 開發工具:PyCharm   
import random

from Day06.test1 import Model_Tetris
if __name__ == '__main__':
    # 隨機生成方法
    # Character = "LOJSZIT"
    # char = random.choice(Character)

    char = "L"
    Model_Tetris.L_char(char)
    while True:
        num = int(input("請輸入移動代碼4/5/6/8:")) # 5是旋轉
        if num == 8 or num == 4 or num == 6:
            Model_Tetris.move(char, num)
            Model_Tetris.L_char(char)
        elif num == 5:
            Model_Tetris.revolve(char)
            Model_Tetris.L_char(char)
        else:
            break
#!/usr/bin/python
# _*_coding:utf-8_*_
# 開發人員:zys
# 開發時間:2021/4/16 16:36 
# 文件名稱:Model-Tetris.PY
# 開發工具:PyCharm

Tetris = {'L': [[1, 1], [1, 2], [1, 3], [2, 3]],
         'O': [[1, 1], [1, 2], [2, 1], [2, 2]],
         'J': [[1, 2], [2, 2], [3, 1], [3, 2]],
         'Z': [[1, 1], [1, 2], [2, 2], [2, 3]],
         'S': [[1, 1], [2, 1], [2, 2], [3, 2]],
         'I': [[1, 1], [2, 1], [3, 1], [4, 1]],
         'T': [[1, 1], [1, 2], [2, 2], [1, 3]]}
# 4*4旋轉
'''這里補充一個知識點:
    字典中的key是不可變的,所以不能用list作為字典的key,
    因為list可以修改,這里采用了元組作為key,指明不可改變,
    后面地址查值的時候需要進行類型轉換。'''
rotateDict = {(1, 1): [4, 1], (1, 2): [3, 1], (1, 3): [2, 1], (1, 4): [1, 1],
              (2, 1): [4, 2], (3, 1): [4, 3], (4, 1): [4, 4], (4, 2): [3, 4],
              (4, 3): [2, 4], (4, 4): [1, 4], (3, 4): [1, 3], (2, 4): [1, 2],
              (2, 2): [3, 2], (3, 2): [3, 3], (3, 3): [2, 3], (2, 3): [2, 2]}

def L_char(char):
    flag = 0
    for i in range(0, 5):
        for j in range(0, 5):
            for li in range(0, len(Tetris[char])):  # Tetris['L']
                if j == Tetris[char][li][0] and i == Tetris[char][li][1]:
                    flag = 1
            if flag == 1:
                print("*", end='')
            else:
                print(" ", end='')
            flag = 0
        print()

def move(char, num):
    if num == 2:
        for li in range(0, len(Tetris[char])):
            Tetris[char][li][1] += 1
    if num == 4:
        for li in range(0, len(Tetris[char])):
            Tetris[char][li][0] -= 1
    if num == 6:
        for li in range(0, len(Tetris[char])):
            Tetris[char][li][0] += 1
    if num == 8:
        for li in range(0, len(Tetris[char])):
            Tetris[char][li][1] -= 1


def revolve(char):
    newTetris = []  # 新的list
    for i in range(len(Tetris[char])):
        newTetris.append(rotateDict[tuple(Tetris[char][i])])   # 對應坐標添加到新的坐標
    Tetris[char] = newTetris

到此這篇關于Python控制臺輸出俄羅斯方塊移動和旋轉的文章就介紹到這了,更多相關Python控制臺輸出內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python 基于pygame實現俄羅斯方塊
  • Python控制臺輸出俄羅斯方塊的方法實例
  • Python Pygame實現俄羅斯方塊
  • python如何寫個俄羅斯方塊
  • python游戲實戰項目之俄羅斯方塊的魅力

標簽:雙鴨山 陽泉 貴州 金華 日照 克拉瑪依 臨汾 赤峰

巨人網絡通訊聲明:本文標題《Python控制臺輸出俄羅斯方塊移動和旋轉功能》,本文關鍵詞  Python,控制臺,輸出,俄羅斯,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python控制臺輸出俄羅斯方塊移動和旋轉功能》相關的同類信息!
  • 本頁收集關于Python控制臺輸出俄羅斯方塊移動和旋轉功能的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 国产在线色视频| 国产又黄又爽又湿的免费网站| 成人免费毛片???病毒一| 精品成人乱色一区二区| 97se狠狠狠狠狼鲁亚洲综合色| 高h翁妇肉吃奶| 亚洲va韩国va欧美va精四季| 《绝世唐门》特效被喷| 小鸟酱福利视频| 色综合久久久高清综合久久久| 欧美日韩亚洲一区| 美女光屁股网站| 久久久久久精品免费观看高潮男男| 日本理伦片免费大全在线播放| 含羞草影院在线免费观看| 亚洲精品AⅤ无码精品丝袜足| 娇妻绿帽肉体交换| 女人zoz0特另类| 美女把大腿张开让我桶| 手机看片福利日韩国产| 69色情成人免费视频网站| 午夜福利久久久| 男人j进女人j免费视频视频| 午夜成人精品久久久久久久| 亚洲午午夜夜久久电影| 操白丝| 边摸边吃奶边做gif视频456| 激情影院免费观看| 丝袜老师办公室里做好紧好爽| 肉宠文高h从头肉到尾| 国产一级毛片国语一级A片厂百度| 小婷的性荡生活第1一17章| 多人(H)男男| 日本护士xxxxx高清免费| 揉我奶?啊?嗯高潮皇宫| 高清毛片aaaaaaaa** | 亚洲欧美人成人让影院| 龙岩市| 日本人?精视频XXXXXx免| 美女胸又大又www黄网站| 男人猛躁女人秘?图草苺视频|