Coder Social home page Coder Social logo

reqwey / project_lemonlime Goto Github PK

View Code? Open in Web Editor NEW

This project forked from project-lemonlime/project_lemonlime

0.0 0.0 0.0 27.97 MB

为了 OI 比赛而生的基于 Lemon + LemonPlus 的轻量评测系统 | 三大桌面系统支持

License: GNU General Public License v3.0

C++ 93.90% C 0.15% QMake 0.60% TeX 5.34%

project_lemonlime's Introduction

Project_LemonLime (Beta)

为了 OI 比赛而生的基于 Lemon + LemonPlus 的轻量评测系统

A tiny judging environment for OI contest based on Lemon + LemonPlus

现已支持 Linux Ubuntu,Windows Windows,以及 macOS MacOS

Codacy Badge

已在这些系统测试:

系统名称 版本号 位数 DE / WM
Windows 7 32, 64 Untitled
Windows 10 64 Untitled
Manjaro 19.0.2 64 KDE-Xorg
Arch 2020-3-20 64 KDE-Xorg
Arch 2020-3-20 64 KDE-Wayland
Ubuntu 18.04.4 64 GNOME 3
NOI Linux (Ubuntu) * 14.04 32 GNOME 2
Linux Mint 19.3 64 Cinnamon
Deepin 15.11 64 DDE
Debian 10.3.0 64 LXQt
Debian 10.3.0 64 KDE-Xorg
Fedora 31-1.9 64 XFCE
openSUSE Leap 15.1 64 iceWM

特色

Lemon 绿了!

功能追加

  • 题目类型支持:传统题,提交答案题,交互题(仅 C++),通信题。
  • 统计:对比赛分数数据进行分析的栏目,还需要很多的更新。
  • 整理文件:使所有的选手的子文件夹内外都有答案文件,并且删除大部分无用文件。支持在这之前备份文件。
  • 选手名单上的成绩将会有背景颜色,随着分数变化而变化。导出的 HTML 文件也有颜色,配色方案大体来自 IOI,不过你也可以自定义。
  • 支持重新排列题目顺序
  • 窗口下方新增提示栏
  • 移除了自定义测试
  • 移除了多线程评测

评测改进

  • 任意选手的任意题目评测
  • 可以控制的最大重新评测次数
  • Subtask Skip
  • 子任务依赖
  • 支持选择子文件夹还是非子文件夹
  • 各种评测结果在评测时界面、结果查看界面和 HTML 有了易于区分的不同的颜色。
  • 默认的栈空间设置为和内存限制相同。

用户体验

  • 支持高 DPI
  • 自带的实数比较模式判断了 naninf。来自某出题人的提醒
  • 如果你在某个点得分了,那么在测试时的窗口会显示获得的分数、使用的时间和空间。
  • 一键评测所有出现 找不到文件/编译问题 的记录
  • 手动保存比赛、打开比赛目录(在 文件 菜单栏中)
  • 重命名比赛
  • 自动添加试题的时候每个点的分数不再是下取整(总分/数据点个数)。
  • 减小了导出 HTM 的体积,并且给 HTML 添加了更多跳转。
  • 默认空间限制和比较模式调整
  • 图标和启动横幅
  • 更友好的界面

构建

下载源码

下载的东西太大了?

git clone 的时候,使用 --depth 1 可以使下载下来的文件大小减少很多(因为默认情况下它会把所有历史记录全部下载下来)。

如果 Github 还是太慢…

你也许可以到 码云(Gitee) 去下载。

在很多地区,从 码云 下载的速度是从 Github 下载的速度的 100 倍。

这个仓库在码云下的复制

Windows

Releases 下载就可以了。

当然如果你装有 Qt 5,也可以下载源码编译。

提示:

在很多地方,下载 Qt 的时间 + 安装 Qt 的时间 + 下载 LemonLime 源代码的时间 + 编译的时间 < 从 Github 上下载可执行文件的时间。

下载 Qt 请考虑一个快速的国内镜像。

Linux

Arch Linux 系

已在这些系统测试:

系统名称 版本号 位数 DE / WM
Arch 2020-3-20 64 KDE-Xorg
Arch 2020-3-20 64 KDE-Wayland
Manjaro 19.0.2 64 KDE-Xorg
## 迅速安装 ##
yay -S lemon-lime # 版本可能过旧
yay -S lemon-lime-git 
# 感谢 @ayalhw 的支持。

## 使用 qmake ##
sudo pacman -S gcc make qt5-base # 依赖环境
cd 源代码的目录
g++ watcher_unix.cpp -o watcher_unix -O2
qmake lemon.pro
make # 获得可执行文件 lemon

## 使用 QtCreator ##
sudo pacman -S qtcreator

Debian | Ubuntu 系

已在这些系统测试:

系统名称 版本号 位数 DE / WM
Ubuntu 18.04.4 64 GNOME 3
Linux Mint 19.3 64 Cinnamon
Deepin 15.11 64 DDE
Debian 10.3.0 64 LXQt
Debian 10.3.0 64 KDE-Xorg
## 使用 qmake ##
sudo apt install qt5-default build-essential # 依赖环境
cd 源代码的目录
g++ watcher_unix.cpp -o watcher_unix -O2
qmake lemon.pro
make # 获得可执行文件 lemon

## 使用 QtCreator ##
sudo apt install qtcreator
* NOI Linux

已在这些系统测试:

系统名称 版本号 位数 DE / WM
NOI Linux (Ubuntu) * 14.04 32 GNOME 2

NOI Linux 是 Ubuntu 14.04 的换皮,所以用 apt 安装的 Qt 版本只能到 5.2。

在 qmake 前你需要:

  • 删除 lemon.ui 里面的 <property name="tabBarAutoHide">... 开始的 3 行。因为 Qt 5.2 里面还没有这个特性!
  • 删除 lemon.prounix:QMAKE_LFLAGS += -no-pie 那一行。
  • 把代码中所有 asprintf 换成 sprintf

或者

  • 在 Qt 官网上找一个更高版本(比如 5.9)的 Qt 安装。

arbiter 退出了群聊。

Fedora 系

已在这些系统测试:

系统名称 版本号 位数 DE / WM
Fedora 31-1.9 64 XFCE
## 使用 qmake ##
sudo yum install g++ make qt5 # 依赖环境
cd 源代码的目录
g++ watcher_unix.cpp -o watcher_unix -O2
qmake-qt5 lemon.pro
make # 获得可执行文件 lemon

openSUSE 系

已在这些系统测试:

系统名称 版本号 位数 DE / WM
openSUSE Leap 15.1 64 iceWM
## 使用 QtCreator ##
sudo zypper install --type pattern devel_basis
sudo zypper install libqt5-creator

macOS

在没有 macOS 机子的情况下写 macOS 支持是一件非常滑稽的事。

请使用 watcher_macos.cpp 编译 watcher_unix,否则内存限制会出问题。

g++ watcher_macos.cpp -o watcher_unix -O2

project_lemonlime's People

Contributors

codacy-badger avatar iotang avatar xeonacid avatar

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.