某个号称三岁以上就可以玩的桌游,抽象之后的基本问题就是在一个区域中如何摆放三种形状(朝向随意)。
比如区域:
三种形状(短折,长折,一字),各种朝向如下:
这是迄今为止用木兰语言编写的最复杂的实用代码,包括一个递归搜索,长约 150 行,测试约 70 行。其中一个类如下:
细节和算法有很大改进空间,欢迎指教。
期间根据需要复现了木兰语言的如下功能:
type 点 {
func $点(横, 纵) {
self.横, self.纵 = 横, 纵
}
operator == (另一点) {
return self.横 == 另一点.横 and self.纵 == 另一点.纵
}
}
type Person {
{
name = "小白"
}
func $__init__(name) {
self.name = name
}
}
func shout(id): Person {
return Person(id)
}
比如 a[1:3], a[1:]
集合(set)、断言(assert)、all、str/int 等等
下面是几个主要部分的代码行数统计,格式为:两周前->本周。
由于还有相当部分的木兰语言功能尚未补全,而实践证明编写较复杂实例的开销相对较大,于是打算首先尽快补完语言功能和测试用例。
现在个别语言功能上卡了壳(比如变长参数),主要是看不出如何使用。如果有兴趣并且对 Python 比较熟悉,欢迎一道研究。
页面更新:2024-04-24
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号