棋盘游戏
在棋盘游戏“ Carcassonne ”中,玩家通过匹配边缘来放置瓷砖,并通过创建较大的连续地形获得最高分。以下是(大致)游戏中包含的图块的类型和数量:
#01
x4
#02
x5
#03
x8
#04
x2
#05
x9
#06
x4
#07
x1
#08
x3
#09
x3
#10
x3
#11
x4
#12
x5
#13
x3
#14
x3
#15
x2
#16
x5
#17
x5
#18
x2
#19
x3
#20
x1
#21
x5
#22
x2
#23
x1
#24
x1
#25
x1
任务
在尝试维护尽可能大的连续地形区域时,必须通过匹配边缘来放置图块。
放置
- 磁贴只能放置在游戏区域中与任何现有磁贴相邻的(最多4个)空白空间之一中。
- 磁贴可以旋转90、180或270度。
边缘匹配
- 放置的图块的边缘必须与(最多4个)相邻图块的触摸边缘匹配,即,触摸像素的颜色相同。
连续地形
- “关闭地形区域”是指放置图块,以使随后无法通过其他图块放置来继续任何连续的颜色区域。
- 如果可以选择其他位置,则必须在会关闭地形区域的所有图块位置上进行选择。
- 如果必须在多个结束位置之间进行选择,请选择任意一个。如果必须在多个非关闭展示位置之间进行选择,请选择任意一个。
- 计算连续区域时,请忽略#ff00ff(边角像素)。也不要考虑建筑物,即已经完全封闭在瓷砖中的彩色区域。
输入项
输入的是两个图像:
游乐区。
- 初始游戏区域由图块
#11
(单个图块)组成。 - 还必须支持将创建为输出的扩展游戏区域作为输入。
- 初始游戏区域由图块
要放置的图块。
- 必须支持所有示例图块作为输入。
仅使用此图像数据即可确定匹配的边缘/连续地形。没有硬编码。
输出量
- 输出是图像,显示放置磁贴后的合成游戏区域。
- 该图像必须与您自己的程序兼容,即可以用作播放区域输入。
- 如果不可能放置瓷砖,则返回错误。
您可以假设
- 磁贴始终为55像素x 55像素
- 磁贴将仅具有示例磁贴中当前使用的颜色。
笔记
- 至少2次通过后,您的答案必须包含示例输出(建议更多)。
- 这是原始棋盘游戏的局部和不准确渲染,您无需应用此处未提及的任何规则或策略。
得分
- 您的分数是提交内容的字节数。
- 图片数据不包含在您的分数中。
- 最低分获胜。
玩一个完整的游戏
您可能希望编写一个使用子任务玩完整游戏的脚本,该脚本可能包括:
- 放置从全套85中伪随机选择的图块。
- 如果无法放置图块,则将其返回到集合中。
- 重复此操作,直到已放置所有图块-或无法连续放置两个图块。
它不会包含在您的字节数中,也不会提高您的分数,但是我很可能会为这种答案提供赏金。