zoukankan      html  css  js  c++  java
  • 九宫格拼图

    # 生成随机拼图
    jigsaw = [chr(i) for i in range(65,74)]
    random.shuffle(jigsaw)

    palace = {}
    for i in range(9):
    if jigsaw[i] == 'I':
    palace[i+1]=([' ', i+1, 0])
    else:
    palace[i+1]=([jigsaw[i], i+1, 1])

    # 测试用数据
    # palace = {1: ['A', 1, 1], 2: ['B', 2, 1], 3: ['C', 3, 1], 4: ['D', 4, 1], 5: ['E', 5, 1], 6: ['F', 6, 1], 7: ['G', 7, 1], 8: [' ', 8, 0], 9: ['H', 9, 1]}

    # 移动方块
    def move_square(square, pledic):
    in_switch = bool()
    zero_switch = bool()

    for k,v in pledic.items():
    pledic[k][1] = k

    # 玩家操作, 移动的方块(输入的字符)
    if v[0] == square:
    in_key = k
    in_val = v
    in_switch = True

    # 找到字符所在, 并作标记
    if v[2] == 0:
    zero = v[1]
    zero_k = k
    zero_v = v
    zero_switch =True

    if zero_switch == in_switch:
    # 与空方块交换位置
    if zero % 3 == in_val[1] % 3 and abs(zero - in_val[1]) <= 3:
    pledic[in_key], pledic[zero_k] = zero_v, in_val
    if abs(zero - in_val[1]) == 1 and ((zero+in_val[1])-1)%3 != 0:
    pledic[in_key], pledic[zero_k] = zero_v, in_val

    return pledic

    # 游戏检测
    def check_palace(dic):
    right_count = 0
    if dic[9][2] == 0:
    for k,v in dic.items():
    if k == ord(v[0])-64:
    right_count +=1
    if right_count == 8:
    return True
    return False

    # 输出
    def print_palace(dic):
    print(dic[1][0],dic[2][0],dic[3][0])
    print(dic[4][0],dic[5][0],dic[6][0])
    print(dic[7][0],dic[8][0],dic[9][0])

    # 进行游戏
    def play_palace(palace):
    ple = deepcopy(palace)
    print_palace(ple)
    play_dic={}

    while True:
    try:
    square = input('input A-H:')
    if ord(square.upper()) >= 65 and ord(square.upper()) <= 74:
    play_dic = move_square(square.upper(), ple)
    print_palace(play_dic)
    if check_palace(play_dic):
    break
    else:
    print('Please again input')
    except TypeError:
    print('Please again input')
    continue

    print("All Right! You Win!!")
    sys.exit()


    if __name__=='__main__':
    play_palace(palace)
     
  • 相关阅读:
    10 shell test命令
    9 shell 退出状态
    8 shell if else
    7 shell 数学运算
    6-x3 declare和typeset命令:设置变量属性
    6-x1 read命令:从键盘读取数据
    Bootstrap 有一个 class 属性叫做 well,它的作用是为设定的列创造出一种视觉上的深度感
    form-control给input添加这个class类后就会使用bootstrap自带的input框
    bootstrap文字居中!
    img-responsive class图片响应式
  • 原文地址:https://www.cnblogs.com/luchenhui/p/10864394.html
Copyright © 2011-2022 走看看