火龙信奥
  • 首页
  • 课程
  • 题库
  • 打卡
    • 代码对战
    • 快速对战
  • 题单
  • 团队
  • 荣誉墙
  • 商城
  • 登录 / 注册

GOC 命令与参数说明

作者: 作者的头像   huolong , 时间:2026-03-26 19:52:41 , 所有人可见, 阅读  34

GOC 命令与参数说明

本文档根据当前项目中的 GOC 评测实现整理,覆盖可识别的绘图命令、控制命令、C++ 子集语法以及参数规则。

基本约定

  • 默认画布大小:400 x 400
  • 默认画笔位置:画布中心
  • 默认画笔颜色:黑色
  • 默认画笔粗细:1
  • 角度规则:
  • rt(angle):顺时针旋转
  • lt(angle):逆时针旋转
  • 坐标规则:
  • 画布内部使用屏幕坐标
  • moveTo(x, y) 与 lineTo(x, y) 的 y 轴按 GoC 语义处理,内部会做转换
  • 颜色参数支持以下形式:
  • 色号整数,如 1
  • 颜色名字符串,如 "red"、"purple"
  • rgb(r,g,b) 字符串
  • 十六进制颜色,如 "#FF0000"

颜色色号表

当前实现内置的色号映射如下:

色号 颜色
0 black
1 red
2 blue
3 green
4 cyan
5 yellow
6 brown
7 深蓝
8 gray
9 pink
10 darkgreen
11 purple
12 darkcyan
13 gold
14 orange
15 white

绘图命令

画笔与移动

命令 参数 说明
pen.fd(distance) distance: 数值 前进指定距离
pen.bk(distance) distance: 数值 后退指定距离
pen.rt(angle) angle: 数值 顺时针旋转
pen.lt(angle) angle: 数值 逆时针旋转
pen.moveTo(x, y) x: 数值, y: 数值 移动到指定位置,不自动连线
pen.lineTo(x, y) x: 数值, y: 数值 连线到指定位置

抬笔、落笔与状态

命令 参数 说明
pen.up() 无 抬笔
pen.pu() 无 up() 别名
pen.down() 无 落笔
pen.pd() 无 down() 别名
pen.hide() 无 隐藏画笔
pen.show() 无 显示画笔
pen.speed(value) value: 数值 设置速度,当前仅记录,不影响图像

颜色与粗细

命令 参数 说明
pen.c(color) color: 色号/颜色字符串 设置当前画笔颜色
pen.color(color) color: 色号/颜色字符串 c() 别名
pen.size(size) size: 数值 设置画笔粗细,内部会转为正整数

圆与椭圆

命令 参数 说明
pen.o(radius) radius: 数值 画空心圆,使用当前画笔颜色
pen.o(radius, color) radius: 数值, color: 色号/颜色字符串 画空心圆,使用传入颜色
pen.oo(radius) radius: 数值 画实心圆,使用当前画笔颜色
pen.oo(radius, color) radius: 数值, color: 色号/颜色字符串 画实心圆,使用传入颜色
pen.e(width, height) width: 数值, height: 数值 画空心椭圆,参数为宽直径、高直径,使用当前画笔颜色
pen.e(width, height, color) width: 数值, height: 数值, color: 色号/颜色字符串 画空心椭圆,使用传入颜色
pen.ee(width, height) width: 数值, height: 数值 画实心椭圆,参数为宽直径、高直径,使用当前画笔颜色
pen.ee(width, height, color) width: 数值, height: 数值, color: 色号/颜色字符串 画实心椭圆,使用传入颜色

说明:

  • o/oo 的圆心使用当前画笔位置
  • e/ee 的中心也使用当前画笔位置
  • e/ee 传入的是直径,不是半径

矩形与文字

命令 参数 说明
pen.r(x, y, w, h) x: 数值, y: 数值, w: 数值, h: 数值 画空心长方形
pen.rr(x, y, w, h) x: 数值, y: 数值, w: 数值, h: 数值 画实心长方形
pen.text(x, y, text) x: 数值, y: 数值, text: 字符串/变量 在指定偏移处绘制文字

说明:

  • r/rr 目前按左上偏移 + 宽高进行计算
  • text 的第三个参数最终会转成字符串绘制

图片、声音与时间类命令

命令 参数 说明
pen.pic(...) 任意参数 当前仅记录操作,不实际绘图
pen.picL(...) 任意参数 当前仅记录操作,不实际绘图
pen.sound(...) 任意参数 当前仅记录操作,不实际播放
pen.soundL(...) 任意参数 当前仅记录操作,不实际播放
pen.ctime(seconds) seconds: 数值,可省略 当前仅记录操作
wait(seconds) seconds: 数值,可省略 当前仅记录操作
pause(...) 任意参数,可省略 当前仅记录操作

说明:

  • 以上命令目前不会直接改变像素图像
  • 在评测中会被解析与记录,但主要作用是避免运行错误

C++ 子集语法

变量与类型

语法 说明
int a; 整数变量声明
double x; 浮点变量声明
string s; 字符串变量声明
int a = 1; 带初始化声明
a = 3; 赋值

说明:

  • 支持一行内多个声明,如 int a = 1, b = 2;
  • 未初始化时:
  • int/double 默认值为 0
  • string 默认值为 ""

条件与循环

语法 说明
if (condition) { ... } 条件分支
else { ... } 否则分支
else if (condition) { ... } 否则如果
for(init; condition; step) { ... } 标准 for 循环
for(int i=0;i<n;i++) { ... } 常用 i 循环

说明:

  • 支持 i++、++i、i--、--i
  • 循环执行有步数保护,避免死循环

输入输出

语法 说明
cin >> x; 输入一个值到变量
cin>>x>>y; 支持无空格连续输入
cout << "a" << x; 输出表达式
cout<<"a"<<x; 支持无空格连续输出
cinWin(); 从输入流读取一个值

说明:

  • cinWin() 在评测中从 input_data 顺序取值
  • cin 也是按顺序取值
  • cout 输出会被记录,但当前主要用于执行兼容,不参与图像绘制

表达式支持

当前可用的表达式能力包括:

  • 算术:+ - * /
  • 比较:== != > < >= <=
  • 逻辑:&& || !
  • 常量:true false
  • 内置函数:
  • abs(...)
  • min(...)
  • max(...)
  • int(...)
  • double(...)
  • string(...)

当前评测结论与边界

已可稳定评测的内容

  • 前进、后退、转向
  • 抬笔、落笔
  • 颜色、粗细
  • 圆、实圆、椭圆、实椭圆
  • 空心/实心长方形
  • 文字
  • 移动与连线
  • if / else / for
  • cin / cout / cinWin

当前仅做兼容记录的内容

  • pic / picL
  • sound / soundL
  • wait / ctime / pause
  • show / hide / speed

这些命令当前会被正确解析并记录,但不一定直接影响图像像素。

示例

int main() {
    pen.size(3);
    pen.color("purple");
    pen.o(40);
    pen.ee(80, 40, 2);
    pen.moveTo(220, -120);
    pen.lineTo(260, -80);
    string s = "A";
    pen.text(10, 10, s);
    return 0;
}

—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com

©2026加盟我们 | 关于我们 | ACM课程 | 常见问题 | 成果墙 | 评测记录 | 浙ICP备2021013995号
在线画图 | OI WIki | 打字练习
火龙信奥
请输入登录信息


请完成安全验证
验证码底图 滑块
向右拖动滑块完成验证
请输入用户名 / 绑定的手机号码



请输入注册信息(手机号验证码注册)





验证码5分钟有效,60秒内不可重复获取,每日最多3次

微信登录

微信登录二维码

正在生成二维码...

账号已过期,请续期。
去续期

绑定手机号

📱

为了更好地保护您的账号安全,享受完整的平台服务

请您尽快绑定手机号码