成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識(shí)庫 > 用Python簡陋模擬n階魔方

用Python簡陋模擬n階魔方

熱門標(biāo)簽:電話外呼系統(tǒng)招商代理 京華圖書館地圖標(biāo)注 佛山通用400電話申請(qǐng) 淮安呼叫中心外呼系統(tǒng)如何 看懂地圖標(biāo)注方法 廣東旅游地圖標(biāo)注 蘇州人工外呼系統(tǒng)軟件 電話機(jī)器人貸款詐騙 打印谷歌地圖標(biāo)注

一、前言

終于整完了畢業(yè)論文,忙里偷閑半小時(shí)摸了個(gè)魔方模擬程序,支持模擬任意階魔方,自動(dòng)打亂,輸入指令旋轉(zhuǎn)。顯示方面不會(huì)弄3D的,用opencv整了個(gè)展開圖。

二、效果

五階魔方打亂20步

震撼人心50階,打亂100步

三、代碼

import cv2
import numpy as np
from random import randint


class Cube:
    def __init__(self, order=3, size=50):  # 魔方階數(shù)、顯示尺寸
        self.img = np.zeros((4 * size * order, 3 * size * order, 3), dtype=np.uint8)
        self.order = order
        self.size = size
        self.len = size * order
        self.top = [['y'] * order for _ in range(order)]
        self.front = [['r'] * order for _ in range(order)]
        self.left = [['b'] * order for _ in range(order)]
        self.right = [['g'] * order for _ in range(order)]
        self.back = [['o'] * order for _ in range(order)]
        self.bottom = [['w'] * order for _ in range(order)]
        self.axis_rotate = (self.base_rotate_x, self.base_rotate_y, self.base_rotate_z)
        self.color = {'y': (0, 255, 255), 'r': (0, 0, 255), 'b': (255, 0, 0),
                      'g': (0, 255, 0), 'o': (0, 128, 255), 'w': (255, 255, 255)}

    def check(self):  # 檢測魔方是否還原
        for i in range(self.order):
            for j in range(self.order):
                if self.top[i][j] != self.top[0][0]:
                    return False
                if self.back[i][j] != self.back[0][0]:
                    return False
                if self.front[i][j] != self.front[0][0]:
                    return False
                if self.left[i][j] != self.left[0][0]:
                    return False
                if self.right[i][j] != self.right[0][0]:
                    return False
                if self.bottom[i][j] != self.bottom[0][0]:
                    return False
        return True

    def show(self, wait=0):  # 顯示魔方展開圖
        for i in range(self.order):
            for j in range(self.order):
                # back
                x, y = self.len + i * self.size, j * self.size
                cv2.rectangle(self.img, (x, y), (x + self.size, y + self.size), self.color[self.back[j][i]], -1)
                cv2.rectangle(self.img, (x, y), (x + self.size, y + self.size), (10, 10, 10), 1)
                # left
                x, y = i * self.size, self.len + j * self.size
                cv2.rectangle(self.img, (x, y), (x + self.size, y + self.size), self.color[self.left[j][i]], -1)
                cv2.rectangle(self.img, (x, y), (x + self.size, y + self.size), (10, 10, 10), 1)
                # top
                x, y = self.len + i * self.size, self.len + j * self.size
                cv2.rectangle(self.img, (x, y), (x + self.size, y + self.size), self.color[self.top[j][i]], -1)
                cv2.rectangle(self.img, (x, y), (x + self.size, y + self.size), (10, 10, 10), 1)
                # right
                x, y = 2 * self.len + i * self.size, self.len + j * self.size
                cv2.rectangle(self.img, (x, y), (x + self.size, y + self.size), self.color[self.right[j][i]], -1)
                cv2.rectangle(self.img, (x, y), (x + self.size, y + self.size), (10, 10, 10), 1)
                # front
                x, y = self.len + i * self.size, 2 * self.len + j * self.size
                cv2.rectangle(self.img, (x, y), (x + self.size, y + self.size), self.color[self.front[j][i]], -1)
                cv2.rectangle(self.img, (x, y), (x + self.size, y + self.size), (10, 10, 10), 1)
                # bottom
                x, y = self.len + i * self.size, 3 * self.len + j * self.size
                cv2.rectangle(self.img, (x, y), (x + self.size, y + self.size), self.color[self.bottom[j][i]], -1)
                cv2.rectangle(self.img, (x, y), (x + self.size, y + self.size), (10, 10, 10), 1)
        cv2.imshow('cube', self.img)
        cv2.waitKey(wait)

    def shuffle(self, times):  # 打亂魔方
        for _ in range(times):
            self.rotate(randint(0, 2), randint(0, self.order - 1), randint(0, 3))

    def rotate(self, axis, index, times):  # 旋轉(zhuǎn)魔方:axis軸,第index層,逆時(shí)針times次
        for _ in range(times):
            self.axis_rotate[axis](index)

    def count(self, color='y'):
        count = 0
        for i in range(self.order):
            for j in range(self.order):
                if self.top[i][j] == color:
                    count += 1
        return count

    @staticmethod
    def _column_trans(surface, index, col):
        for i, r in enumerate(surface):
            r[index] = col[i]

    def base_rotate_x(self, index):
        if index == 0:
            self.left = [list(c) for c in zip(*self.left)][::-1]
        elif index == self.order - 1:
            self.right = [list(c)[::-1] for c in zip(*self.right)]
        temp = [r[index] for r in self.top]
        self._column_trans(self.top, index, [r[index] for r in self.front])
        self._column_trans(self.front, index, [r[index] for r in self.bottom])
        self._column_trans(self.bottom, index, [r[index] for r in self.back])
        self._column_trans(self.back, index, temp)

    def base_rotate_y(self, index):
        if index == 0:
            self.back = [list(c)[::-1] for c in zip(*self.back)]
        elif index == self.order - 1:
            self.front = [list(c) for c in zip(*self.front)][::-1]
        temp = self.left[index][::-1]
        self.left[index] = self.top[index]
        self.top[index] = self.right[index]
        self.right[index] = self.bottom[self.order - index - 1][::-1]
        self.bottom[self.order - index - 1] = temp

    def base_rotate_z(self, index):
        if index == 0:
            self.top = [list(c) for c in zip(*self.top)][::-1]
        elif index == self.order - 1:
            self.bottom = [list(c)[::-1] for c in zip(*self.bottom)]
        temp = self.front[index][::-1]
        self.front[index] = [r[self.order - index - 1] for r in self.left]
        self._column_trans(self.left, self.order - index - 1, self.back[self.order - index - 1][::-1])
        self.back[self.order - index - 1] = [r[index] for r in self.right]
        self._column_trans(self.right, index, temp)


cube = Cube(3, 50)
cube.shuffle(100)
while True:
    cube.show(1)
    cube.rotate(*(int(c) for c in input('axis,index,times:').split()))
    if cube.check():
        break
print('Congratulations')
cube.show(0)

到此這篇關(guān)于用Python簡陋模擬n階魔方的文章就介紹到這了,更多相關(guān)pytho模擬魔方內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python實(shí)現(xiàn)三階魔方還原的示例代碼

標(biāo)簽:畢節(jié) 中山 駐馬店 股票 江蘇 衡水 呼和浩特 湖州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《用Python簡陋模擬n階魔方》,本文關(guān)鍵詞  用,Python,簡陋,模擬,階,魔方,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《用Python簡陋模擬n階魔方》相關(guān)的同類信息!
  • 本頁收集關(guān)于用Python簡陋模擬n階魔方的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    韩国成人动漫在线观看| 美女福利视频在线观看| 久久亚洲综合色| 欧美三级网页| 午夜不卡视频| 亚洲免费精品视频| 日本一区二区三区久久| 九九热精彩视频| √天堂资源中文www| 在线视频精品一区| 国产亚洲精品久久久久动| 久久一留热品黄| 色香色香欲天天天影视综合网| 日本高清中文字幕在线| 亚洲一区二区五区| 亚洲色图第一区| 97超碰人人草| 人人草在线视频| 日韩一区二区免费高清| 国产成人在线视频播放| 国产成人综合美国十次| 一级做a爰片久久毛片美女图片| 高清欧美性猛交xxxx黑人猛交| 国产精品久久久久免费a∨大胸| 婷婷久久免费视频| 亚洲精品成人在线| 好吊操视频这里只有精品| 在线观看日韩av先锋影音电影院| 免费在线观看黄色小视频| 高潮无码精品色欲av午夜福利| 国产在线视频一区二区| 秋霞久久久久久一区二区| 国产精品久久久久久久免费大片| 国产精品我不卡| 国产91丝袜在线18| 亚洲色图一区二区| 欧美日韩激情视频| 国产成人久久久| 国产精品国产三级国产aⅴ入口| 黄色精品免费看| 精品一区二区三区av| 日本一区二区免费在线观看视频| www黄色在线观看视频| 91精品国产自产在线观看永久∴| av亚洲精华国产精华| 中文字幕第66页| 91丨九色丨蝌蚪富婆spa| 欧美高清一级片在线观看| 中文字幕日韩国产| 外国电影一区二区| 蜜桃免费在线| 国产精品久久久久9999爆乳| 色欲久久久天天天综合网| 久久久久看片| 最近2019好看的中文字幕免费| 在线观看免费视频污| 国产69精品久久久久按摩| jizz久久久久久| 欧美插插视频| 日韩精品无码一区二区三区久久久| 天堂…中文在线最新版在线| 久久99精品久久久久久久久久久久| av成人在线电影| 欧美一级网站| 逼特逼视频在线| 综合激情网站| 97视频免费观看| 午夜不卡影院| 欧美黄免费看| 欧美性活一级视频| 日韩精品成人一区二区三区| www.99热.com| 成熟亚洲日本毛茸茸凸凹| 粉嫩aⅴ一区二区三区四区五区| 欧美亚洲黄色片| 草莓视频末满18勿| a级黄色免费视频| 1区1区3区4区产品乱码芒果精品| 免费观看黄色网| 伊人色综合一区二区三区影院视频| 九七影院97影院理论片久久| 天堂资源在线| 日韩一区二区久久久| 嫩草嫩草嫩草嫩草嫩草| 日韩一区不卡| 成人疯狂猛交xxx| 中文字幕一区二区三区四区五区六区| 成人av免费网站| 特一级黄色录像| 999亚洲国产精| 一本色道久久综合亚洲二区三区| 在线观看精品一区| 久久久午夜精品| 天天爱天天做天天操| 午夜免费视频在线国产| 你懂的国产精品永久在线| 翔田千里一区二在线观看| 三级视频网站在线| 爽死777影院| 国产老头老太做爰视频| frxxee中国xxx麻豆hd| 国产精品久av福利在线观看| 9色porny自拍视频一区二区| 国产丝袜在线观看视频| 女女同性女同一区二区三区91| 久久精品麻豆| 91av视频免费观看| 第四色播日韩| 嫩草精品影院| 国产精品污www一区二区三区| 国外成人在线直播| 久久激情视频久久| 麻豆免费精品视频| 在线精品播放av| 四虎在线视频| 成人av男人的天堂| 免费日韩中文字幕| 日本中文字幕一区二区视频| 男人天堂一区二区| 不卡影院一区二区| a级高清视频欧美日韩| 亚洲国产精品成人综合色在线婷婷| 欧美精品99久久久**| 毛片在线导航| 成人网免费看| 色综合久久六月婷婷中文字幕| 久久久久久久久久一区二区| 神马一区二区三区| 亚洲资源视频| 中日韩精品视频在线观看| 国产精品欧美在线观看| 国产精品丝袜久久久久久消防器材| 中文字幕观看视频| 国产成人精品一区二区三区在线| 成人欧美一区二区三区视频xxx| 久久精品国产一区二区三区| 欧美成人精品网站| 欧美一区二区三区精美影视| 久久影视中文字幕| 精品久久久久久中文字幕人妻最新| 成人黄色小视频在线观看| 日韩精品每日更新| 国产chinese中国hdxxxx| 香蕉视频在线免费看| 中文字幕在线看精品乱码| 国产chinese精品一区二区| 裸体丰满少妇做受久久99精品| 色喇叭免费久久综合网| 风流少妇一区二区三区91| 都市激情亚洲欧美| 亚洲精品乱码久久久久久金桔影视| 国产九九在线观看| 亚洲在线观看视频| 日韩少妇中文字幕| 97精品久久人人爽人人爽| 熟妇无码乱子成人精品| 一区二区三区中文免费| 最近2018中文字幕免费在线视频| 中文字幕亚洲一区二区av在线| 在线观看av免费| 九九九伊在线综合永久| 亚洲色图网站| 欧美精彩视频一区二区三区| 精品国产一区二区三区不卡在线| 一区二区三区欧美在线观看| a天堂中文在线88| 精品国产av无码| 天堂tv亚洲tv日本tv欧美人tv| 日本日本精品二区免费| 日日躁夜夜躁人人揉av五月天| 日韩免费视频网站| 99热这里只有精品免费| 久久亚洲精品小早川怜子66| 国产性一乱一性一伧一色| 日韩精品手机在线| 久久丫精品忘忧草西安产品| 免费看一级大黄情大片| 国产精品电影在线观看| 久久久国产精品不卡| 亚洲精品女人久久久| 99久久精品免费看国产交换| 亚洲成人天堂网| 日本高清不卡一区二区三| 久草在线青青草| 在线免费av电影| 欧美二区在线视频| 德国一级在线视频| 大地资源中文在线观看免费版| 99国产精品免费视频观看| 97精品国产综合久久久动漫日韩| 国产成人精品福利一区二区三区| 国产在线98福利播放视频| 麻豆精品精品国产自在97香蕉| 国产免费a级片| 69成人在线| 丝袜免费视频| 精品99一区二区三区| 欧美精品在欧美一区二区少妇| 性孕妇free特大另类| 成人网站免费观看| yw193.com尤物在线| gogogo高清免费观看在线视频| 婷婷激情在线| 国产麻豆视频免费观看| 1069男同网址| www.久久久| 看欧美ab黄色大片视频免费| 精品欧美日韩| 亚洲天堂中文字幕在线| 轻轻操 在线观看| 欧美伊人久久大香线蕉综合69| 午夜精品国产精品大乳美女| a在线视频播放观看免费观看| 欧美日韩一级二级三级| 国产午夜精品全部视频在线播放| 超碰在线超碰在线| 久久99视频| 毛片毛片毛片毛片毛片毛片| 国产女人在线视频| 人妻精品久久久久中文字幕| 国产精品探花一区二区在线观看| 在线观看h片| 丝袜+亚洲+另类+欧美+变态| 91福利在线尤物| 日韩中文字幕亚洲精品欧美| 一区二区av| 欧美日韩老妇| 国产成人啪午夜精品网站男同| 一级欧美一级日韩| 国产日韩亚洲欧美综合| 久久精品91久久香蕉加勒比| 日韩精品看片| 日本黑人久久| 中文字幕日韩经典| 91精品麻豆| 色阁综合伊人av| 久久久久亚洲视频| 黄色污污网站在线观看| 国产草草浮力影院| 97视频在线观看网站| 都市激情国产精品| 色老头在线一区二区三区| xxxx日本黄色| 国产亚洲精品久久久久婷婷瑜伽| 欧美一a一片一级一片| 亚洲精品喷潮一区二区三区| 特黄aaaaaaaaa真人毛片| 色噜噜在线网| 亚洲欧美激情在线| 天天色综合社区| 日本天堂在线视频| 成人av电影在线观看| 亚洲日本伊人| yellow字幕网在线| 国产一区二区在线免费观看| 中文字幕资源网在线观看| 神马久久久久久久久久久| 国产免费又粗又猛又爽| 国产精彩免费视频| 国产精品毛片高清在线完整版| 精品一区二区影视| 亚洲精品国产suv一区| 国产精品视频在线播放| 亚洲精品天堂在线| 午夜精品久久久久久久久久蜜桃| 国产午夜福利在线播放| 屁屁影院国产第一页| 国产激情视频一区二区三区欧美| 日本欧美一区二区三区| 黄色一级大片免费| 狠狠操狠狠色综合网| 欧美激情一区二区三区在线视频观看| 青春草视频在线| 免费在线观看日韩欧美| 国产亚洲人成网站| 青青草国产免费自拍| 国产精品成人aaaaa网站| 九色丨porny丨| 欧美bbbbbbbbbbbb精品| 久久久视频6r| 国产精品一区二区欧美黑人喷潮水| 久久99性xxx老妇胖精品| 成人性做爰片免费视频| 国产无遮挡裸体免费视频| 国产精品人成在线观看免费| 国产极品人妖在线观看| www视频在线观看| 久久久久女教师免费一区| 欧美偷拍综合| 成人午夜精品无码区| 日韩最新av在线| 亚洲影院高清在线| 91福利视频在线| 搡老岳熟女国产熟妇| 免费看黄色网| 超碰人人干人人| 亚洲一区二区三区四区中文字幕| 欧美成人aaaaⅴ片在线看| 亚洲人成网77777色在线播放| 少妇激情一区二区三区视频| 二人午夜免费观看在线视频| 青春草国产视频| 日本午夜精品一区二区三区| 亚洲中文无码av在线| 四虎精品成人免费观看| 99在线精品观看| 国产91在线亚洲| 国产亚av手机在线观看| 在线国产福利网站| 国产欧美精品一区| 26uuu欧美| 日韩综合精品| 欧美日韩三级电影在线| 亚洲欧美日韩人成在线播放| 婷婷亚洲成人| 亚洲精品一区二区毛豆| 成人手机在线电影| 欧美猛男男男激情videos| 嫩草影院永久一二三入口| 伊人久久综合一区二区| 欧美在线不卡区| 国产精品美女主播在线观看纯欲| 菠萝蜜视频国产在线播放| 在线中文av| 亚洲自拍偷拍网| 好吊妞无缓冲视频观看| 91国内产香蕉| 91丨精品丨国产|