Giter Club home page Giter Club logo

team_writerightcode's Introduction

华为软件挑战机器人运货刷榜挑战

小队:代码敲得队

项目构建

基于Cmake,通过键入以下命令生成可执行文件(请确保本地操作系统中安装了cmake和make 当然,还有C编译器,如果编译器没有选用gcc,适当修改CmakeLists.txt)

cd /build_[YOUR_OS]
cmake ..
make

生成的可执行文件main放置在 项目根目录/bin下

项目运行

选择合适的判题器 (Robot 或 Robot_gui) 以下指令实现和判题器的交互

{ROBOT_PATH}/Robot[_gui] -m {MAP_FILE} {EXECUTABLE_FILE}

目前还未实现挂载在gdb上的断点调试,仍需学习

输入

一个输入帧的格式如 项目根目录/test/input.txt所示,可以将其作为输入验证输出结果

目前

实现了和判题器的联动 调度策略仍然需要改进

介绍

请关注几个重要参数和我们存储的形式

  • 原材料编号

    标定原材料的唯一身份,为[1,7]之间的整数

  • 工作台ID 标定每个工作台的唯一身份,为[0,当前场上工作台个数-1]

    //记录位置:
    
    struct _WorkBench wbList[WORKBENCHNUMBER]数组中以下标标定
    
    //使用情景:
    
    //机器人当前坐标命中了哪个工作台,由判题器给出
    size_t struct _Robot::localtion_wb_id
    
  • 工作台类型 为[1,9]的整数,这决定当前工作台的输入和输出类型

    类型决定了工作台本身的消耗物品和生成物品,类型本身不作记录,而是记录于工作台的另外两个成员
    
    //工作台消耗的原材料编号
    size_t struct _WorkBench::neededItem
    //该数据以二进制位表描述  如00001100表示工作台消耗物品2和3
    
    //工作台生产的原材料编号
    size_t struct _WorkBench::produceItem
    //该数据以二进制位表描述  如00000010表示工作台生产物品1
    
    *二进制位表的最低位始终为0
    
  • 工作台原材料格状态

    这个数据记录了工作台当前拥有的原材料,由判题器给出

    //记录位置:
    
    size_t struct _WorkBench::ownItem
    //该数据以二进制位表描述  如00001100表示工作台已有物品2
    
  • 机器人ID

    标识了每个机器人的唯一身份,为[0,3]之间的整数

    //记录位置:
    
    size_t struct _Robot::botID
    
    //使用情景:
    
    //向判题器输出命令决定机器人行为
    命令: {botID} {forward/rotation/buy/sell}
    
  • 机器人携带原材料编号

    这个数据记录了机器人当前手持的原材料,由判题器给出

    /记录位置:
    
    size_t struct _Robot::carry_item
    //该数据以二进制位表描述  如00000010表示机器人正手持物品1
    

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.