最近在别的学习群里看到一个同学仿造仿羊了个羊的基本逻辑,写了一个简化版的喵了个喵,代码如下:
# -*- encoding: utf-8 -*-
'''
@File : 喵了个喵.py
@Author : 北极星光
@Contact : light22@126.com
'''
import random
class MiaoMiao:
space_l = [[], [], [], [], [], [], []]
def __init__(self) -> None:
self.generate()
self.check()
def generate(self):
'''生成牌局'''
cat_pool = ['白猫', '黑猫', '黄猫', '蓝猫', '花猫', '粉猫', '大猫', '小猫']
self.l1 = [random.choices(cat_pool) for i in range(3)]
self.l2 = [random.choices(cat_pool) for i in range(3)]
self.l3 = [random.choices(cat_pool) for i in range(3)]
self.l4 = [random.choices(cat_pool) for i in range(3)]
self.l5 = [random.choices(cat_pool) for i in range(3)]
self.l6 = [random.choices(cat_pool) for i in range(3)]
self.l7 = [random.choices(cat_pool) for i in range(3)]
self.l8 = [random.choices(cat_pool) for i in range(3)]
self.l9 = [random.choices(cat_pool) for i in range(3)]
def check(self):
'''判断:如果出现无解的情况则重新洗牌'''
x = True
while x:
x = False
sum_l = self.l1 + self.l2 + self.l3 + self.l4 + \
self.l5 + self.l6 + self.l7 + self.l8 + self.l9
for i in sum_l:
if sum_l.count(i) % 3 != 0:
x = True
self.generate()
break
def select(self, l: list):
if len(l) == 0:
print('当前位置已经没有猫了,请重新选择!')
return
tmp_l = l.pop()
if tmp_l not in self.space_l:
self.space_l[self.space_l.index([])] = tmp_l
else:
self.space_l.insert(self.space_l.index(tmp_l), tmp_l)
self.space_l.pop()
if self.spac