Creator模拟二维数组在编辑器显示

CocosCreator本身不支持二维数组在编辑器显示
但是思路拐个弯就可以轻松实现


import { _decorator, Component, Node, CCFloat, SpriteFrame, CCString } from 'cc';
const { ccclass, property } = _decorator;

@ccclass("Type")
export class Type {

    @property({displayName: "班级"})
    class: string = "";

    @property({displayName: "姓名", type: CCString})
    name: string[] = [];

    @property({displayName: "年龄", type: CCFloat})
    age: number[] = []

    @property({displayName: "照片", type: SpriteFrame})
    photo: SpriteFrame[] = [];

}

@ccclass('Test')
export class Test extends Component {

    @property(Type)
    person: Type[] = [];

}

在这里插入图片描述
数组里面套数组,快乐翻倍

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
遗传算法是一种优化算法,不涉及直接对二维数组进行更新。但是,可以通过遗传算法优化问题的解,在得到优化后的结果后,再将这个结果作为二维数组的更新。 下面是一个简单的示例,演示如何使用遗传算法来优化一个二维数组中每个元素的值: ```python import numpy as np import random from deap import base, creator, tools # 创建适应度函数 creator.create("FitnessMax", base.Fitness, weights=(1.0,)) # 创建个体 creator.create("Individual", np.ndarray, fitness=creator.FitnessMax) # 初始化工具箱 toolbox = base.Toolbox() # 定义随机生成一个元素的函数 def random_element(): return random.uniform(0, 1) # 定义生成一个二维数组的函数 def random_individual(): return np.array([[random_element() for _ in range(5)] for _ in range(5)]) # 定义评估函数,用于计算适应度 def evaluate(individual): return sum(sum(individual)) # 注册工具箱中的函数 toolbox.register("attr_float", random_element) toolbox.register("individual", random_individual) toolbox.register("population", tools.initRepeat, list, toolbox.individual) toolbox.register("evaluate", evaluate) toolbox.register("mate", tools.cxTwoPoint) toolbox.register("mutate", tools.mutGaussian, mu=0, sigma=0.1, indpb=0.1) toolbox.register("select", tools.selTournament, tournsize=3) # 设置参数 population_size = 10 generations = 10 # 创建初始种群 population = toolbox.population(n=population_size) # 迭代遗传算法 for generation in range(generations): # 选择下一代 offspring = toolbox.select(population, len(population)) # 复制选择结果 offspring = list(map(toolbox.clone, offspring)) # 对下一代进行交叉和变异 for child1, child2 in zip(offspring[::2], offspring[1::2]): if random.random() < 0.5: toolbox.mate(child1, child2) del child1.fitness.values del child2.fitness.values for mutant in offspring: if random.random() < 0.1: toolbox.mutate(mutant) del mutant.fitness.values # 计算适应度 invalid_individuals = [ind for ind in offspring if not ind.fitness.valid] fitnesses = toolbox.map(toolbox.evaluate, invalid_individuals) for ind, fit in zip(invalid_individuals, fitnesses): ind.fitness.values = fit # 将后代替换原来的种群 population[:] = offspring # 打印最终结果 best_individual = tools.selBest(population, 1)[0] print(best_individual) ``` 在这个例子中,我们使用 `numpy` 库来表示二维数组,并使用 `deap` 库来实现遗传算法。我们定义了一个适应度函数 `evaluate`,它计算二维数组中所有元素的和。我们还定义了随机生成一个元素的函数 `random_element` 和生成一个二维数组的函数 `random_individual`。我们使用 `toolbox` 对这些函数进行注册,并定义了遗传算法的其他操作(交叉、变异、选择等)。最后,我们使用遗传算法来优化二维数组的元素值,并输出结果。 需要注意的是,这只是一个简单的例子,实际应用中可能需要针对具体问题进行更多的调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值