0%

相关资料链接:

九月大人的博客

yikai-blog

robocup2D官网

RoboCup 2D 常用函数简明含义

函数名称功能说明
dribble(angle, speed)控制球员带球移动。angle表示带球方向,speed表示带球速度(如DRIBBLE_FASTDRIBBLE_SLOW等)。
kickTo(targetPosition, speed)球员向目标位置(targetPosition)踢球,speed指定踢球的速度。
leadingPass(teammate, power)向最近的队友传球,teammate是要传球的目标队友,power表示传球力度。
getNrInSetInCircle(set, circle)计算指定半径的圆圈内(circle)特定对象集合(set,如对手或队友)的数量。例如用来判断7米范围内是否有对手球员。
getClosestInSetTo(set, position)获取距离指定位置(position)最近的特定对象集合(set)中的对象,例如找到离当前球员最近的队友或对手。
isOpponentAtAngle(angleMin, angleMax)判断在给定的角度范围内是否有对方球员。常用于决定是否在某个方向射门或传球。
getGlobalPosition(object)获取场上某个对象(球员、对手、球等)的全局坐标位置(X, Y坐标)。
getBallPos()获取球的当前位置坐标。
moveToPos(position, speed)移动球员到指定的position(坐标位置),并以speed指定的速度执行移动。
isBallKickable()判断当前球是否在球员的控制范围内(即球员是否可以踢球)。
kickBallCloseToBody(angle)控制球员以指定的angle(角度)把球围绕身体转动。
intercept(timeout)尝试在指定时间内抢断球(通常用在防守场景)。
turnNeckToObject(object)让球员将头(视角)转向指定的object(如球或对方球员),通常用于跟踪球的位置。
getPlayerNumber()返回当前球员的编号(如2号、10号等),不同球员编号对应不同策略。例如10号通常为前锋,会有更多进攻行为。
getTeammateNumber()获取指定队友的编号,用于传球决策时判断目标球员是否为特定队友。
getPosOpponentGoal()获取对方球门的位置,通常用于判断进攻方向或射门目标。
shootToGoalex(object)指定球员向对方球门射门,通常由接近球门的前锋使用。
getBallSpeedMax()获取当前球员能踢球的最大速度。
getDirection()计算某个目标相对于当前球员的方向(角度),例如计算球门方向或队友位置的方向。
isInTheirPenaltyArea(position)判断某个位置是否位于对方禁区内,常用于决定射门或传球策略。
putCommandInQueue(command)将指令(command)放入执行队列,确保该操作能够在下一次循环中执行。
Circle(center, radius)创建一个以center为中心,radius为半径的圆,用于计算范围内的球员数量或球的距离。
Line::makeLineFromPositionAndAngle(position, angle)根据给定的positionangle生成一条直线,通常用于计算球的运动轨迹或球员的移动路径。
isOffsideUs()判断是否处于本方越位模式,适用于进攻方的越位规则判断。
isCornerKickUs()判断是否处于本方角球模式。
isOwnSideOpponentMost()判断己方半场的对手人数是否多于对方半场的对手人数。常用于判断防守或进攻策略。
getSecondClosestInSetTo(set, object)获取距离指定object最近的第二个对象(通常是球员),用于策略决策,例如传球或防守。

仅供参考,可能有误

c++基础题目(1)

题目列表

1. 以下说法中正确的是( )。

  • 答案:C
  • 选项
    • A. 基类的私有成员在派生类的对象中不可访问,也不占内存空间
    • B. 封装性指的是将不同类型的相关数据组合在一起,作为一个整体进行处理
    • C. 在面向对象的程序设计中,结构化程序设计方法仍有着重要作用
    • D. 多态性指的是对象的状态会根据运行时要求自动变化
  • 易错解释
    • A. 错误。基类的私有成员在派生类中不可访问,但仍然占用内存空间。
    • B. 错误。封装性指的是将数据和操作数据的方法绑定在一起,形成一个独立的单位。
    • D. 错误。多态性指的是同一接口可以有不同的实现形式。

2. 执行以下程序后,输出的结果是( )。

1
2
3
4
5
6
7
8
#include <iostream>
using namespace std;
int main() {
    int a=4,b=5;
    float c=b/a;
    cout<<c<<endl;
    return 0;
}
  • 答案:D
  • 选项
    • A. 1.25
    • B. 0
    • C. 1.3
    • D. 1
  • 易错解释
    • A. 错误。b/a 是整数除法,结果为1,再转换为浮点数仍然是1.0。
    • B. 错误。整数除法的结果不可能是0。
    • C. 错误。b/a 的结果为1,而不是1.3。

3. 以下描述不正确的是( )。

  • 答案:B
  • 选项
    • A. break语句在一层循环体中可出现多次
    • B. break语句可用在if语句中,它可使执行的流程跳出当前的if语句
    • C. break语句可用在循环体中,它将是执行的流程跳出本层循环
    • D. break语句可用在switch语句中,它使执行的流程跳出当前switch语句
  • 易错解释
    • B. 错误。break 语句不能用于跳出 if 语句,只能用于跳出循环或 switch 语句。

4. 以下描述不正确的是( )。**

  • 答案:A
  • 选项
    • A. 相同类型的指针之间可以相互赋值
    • B. 指针中存放的实际上是内存单元的地址
    • C. 可以在指针定义的同时对其进行初始化
  • 易错解释
    • A. 错误。相同类型的指针之间可以相互赋值,但不同类型的指针之间不能直接赋值,需要进行类型转换。

5. 以下说法中正确的是( )。

  • 答案:C
  • 选项
    • A. 当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用new
    • B. C++语言只能用new和delete用于动态内存分配和释放的函数
    • C. 动态分配的内存空间也可以被初始化
    • D. 当系统内存不够时,会自动回收不再使用的内存单元,因此程序中不必用delete释放内存空间
  • 易错解释
    • A. 错误。动态分配内存失败时,new 会抛出异常或返回 nullptr,但不会导致系统崩溃。
    • B. 错误。C++ 中除了 newdelete,还可以使用 mallocfree 进行动态内存管理。
    • D. 错误。C++ 不提供自动垃圾回收机制,必须手动释放内存。

6. 以下说法中不正确的是( )。

  • 答案:C
  • 选项
    • A. 构造函数可以对静态数据成员进行初始化
    • B. 构造函数可以重载
    • C. 构造函数不可以设置默认参数
    • D. 构造函数可以在说明类变量时自动执行
  • 易错解释
    • C. 错误。构造函数可以设置默认参数,这样在创建对象时可以省略部分参数

7. 以下说法中不正确的是( )。

  • 答案:A
  • 选项
    • A. 公有继承时基类中的private成员在派生类中仍是private的
    • B. 保护继承时基类中的public成员在派生类中是protected的
    • C. 公有继承时基类中的public成员在派生类中仍是public的
    • D. 私有继承时基类中的public成员在派生类中是private的
  • 易错解释
    • A. 错误。公有继承时,基类中的 private 成员在派生类中不可访问,而不是保持 private

8. 以下说法中不正确的是( )。

  • 答案:B
  • 选项
    • A. 如果类A是类B的友元,那么类A的所有成员函数都是类B的友元
    • B. 如果类A是类B的友元,那么类B也是类A的友元
    • C. 如果函数fun()被说明为类A的友元,那么在fun()中可以访问类A的私有成员
    • D. 友元关系不能被继承
  • 易错解释
    • B. 错误。友元关系是单向的,类A是类B的友元,并不意味着类B也是类A的友元。

9. 以下程序的输出结果是( )。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#include <iostream>
using namespace std;
int main() {
    int a=5;
    int *pa=&a;
    int &b=a;
    b++;
    cout<<(*pa)++<<endl;
    return 0;
}
  • 答案:C
  • 选项
    • A. 7
    • B. 5
    • C. 6
    • D. 8
  • 易错解释
    • A. 错误。b++a 的值变为6,(*pa)++ 输出6,然后 a 的值变为7。
    • B. 错误。b++a 的值变为6,(*pa)++ 输出6。
    • D. 错误。b++a 的值变为6,(*pa)++ 输出6,然后 a 的值变为7。

10. 以下程序的输出结果是( )。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#include <iostream>
void fun(int x, int &y) {
    int t=x;
    x=y;
    y=t;
}
int main() {
    int a[2]={100,142};
    fun(a[1],a[0]);
    std::cout<<a[0]<<","<<a[1]<<std::endl;
    return 0;
}
  • 答案:D

#STL常用算法函数及其参数简明含义

供快速回顾(常用函数摘自HFUT ICPC讲义P21)

  1. find

    • 功能:在范围 [first, last) 中查找值为 val 的第一个元素。
    • 参数
      • InIt first, InIt last:输入迭代器,指定搜索范围。
      • const T& val:需要查找的值。
  2. find_if

Hugo 是用 Go 实现的博客工具,采用 Markdown 进行文章编辑,自动生成静态站点文件,支持丰富的主题配置,也可以通过 js 嵌入像是评论系统等插件,高度定制化。除了 Hugo 外, 还有 Jekyll(github page默认)、Gatsby、Hexo、Ghost 等选择,实现和使用都差不多,可以根据自己的偏好进行选择。

上一篇博客中重点于Hugo的使用,这一篇着重于以Stack主题为例进行博客撰写。

Stack is a simple card-style Hugo theme designed for Bloggers. Here are some of the features: Stack 是一个简单的卡片式 Hugo 主题,专为 Blogger 设计。以下是一些功能:

  • Responsive images support 响应式图像支持
  • Lazy load images 延迟加载图像
  • Dark mode 深色模式
  • Local search 本地搜索
  • PhotoSwipe integration 照片滑动 集成
  • Archive page template 存档页面模板
  • Full native JavaScript, no jQuery or any other frameworks are used 完全原生 JavaScript,不使用 jQuery 或任何其他框架
  • No CSS framework, keep it simple and minimal 没有 CSS 框架,保持简单和最小化
  • Properly cropped thumbnails 正确裁剪的缩略图
  • Subsection support 分段支持
  • Table of contents 目录