【编程题:方块消除游戏】
emmmm..依然牛客网上的题,难度标识才一颗星,但是感觉自己看代码看了好久才理解实现的过程。
题目描述:如下图,有10*10个不同颜色的方块,每个方块可能是红、绿、蓝、黄、紫5种颜色之一。当点击其中某一个方块时,如果它有相邻的同颜色方块,则将所有与此方块连续同颜色相邻的方块消除;剩下的方块中,如果下方有空位则向下移动,如果左侧整列都为空位则向左移动。
输入
输入数据有多组,每组占一行,包括一个或多个正整数,取值范围为1~100。每个数代表一次点击,数值为点击的方块编号。
以下是各色方块以及方块位置地图的初始值:
RED = 0, GREEN = 1, BLUE = 2, YELLOW = 3, PURPLE = 4;
mp = [
[0, 0, 2, 2, 1, 3, 2, 3, 0, 4],
[1, 1, 1, 2, 0, 4, 0, 3, 3, 2],
[2, 0, 0, 3, 3, 4, 2, 1, 1, 2],
[3, 0, 2, 3, 2, 0, 4, 1, 1, 0],
[3, 0, 2, 2, 4, 1, 4, 0, 3, 2],
[4, 3, 0, 0, 3, 0, 4, 3, 0, 0],
[3, 3, 1, 4, 1, 0, 2, 3, 2, 1],
[0, 3, 2, 2, 3, 1, 4, 0, 2, 1],
[1, 1, 3, 3, 0, 0, 4, 2, 2, 1],
[4, 2, 0, 0, 4, 3, 2, 0, 0, 1]
]
输出
对于每个测试实例,要求输出连续各次点击全部完成之后,红、绿、蓝、黄、紫色方块的数量;每个测试实例的输出占一行。
eg:
INPUT
6
OUTPUT
26 18 22 21 13
具体代码及详解如下:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Name: demo26.py
# Author: zhuzhuzhu time:2018/5/17
# Connect: 1406380550@qq.com
# Desc:方块消除游戏(py2)
import Queue
import copy
dx = [-1, 1, 0, 0]
dy = [0, 0, 1, -1]
mp = [
[0, 0, 2, 2, 1, 3, 2, 3, 0,

最低0.47元/天 解锁文章
2682

被折叠的 条评论
为什么被折叠?



