Skip to content

FuYnAloft/ClearJudge

Repository files navigation

Clear Judge

Clear Judge Logo

不再猜测 "Wrong Answer" 的原因。直观对比,高效解题。

一款基于 Flutter 开发的现代化本地判题工具,专为解决 OpenJudge (POJ) 等平台反馈不明确、调试困难的问题而生。

下载最新版本 | 报告问题

简介 / Introduction

在算法竞赛或日常练习(如 OpenJudge.cn)中,我们常因各种奇怪的原因收到 "Wrong Answer"。传统的调试方式往往需要肉眼比对或依赖简陋的命令行工具。

Clear Judge 提供了一个优雅的解决方案。它是一个运行在本地的判题器,能够抓取在线题库的测试数据,使用你本地的编译器/解释器运行代码,并提供 清晰的、可视化的 Diff 对比

预览 / Preview

主界面与运行结果 清晰的 Diff 对比
Main UI Diff View
评测中 暗色模式与自定义主题色
Config Dark Mode

核心功能 / Features

  • 可视化 Diff 对比:不再遭受文本比对的痛苦。应用提供并排 (Side-by-side) 视图,高亮显示预期输出与实际输出的差异,包括空格、换行符及字符不匹配。
  • 在线题库集成:支持直接浏览并获取在线题库(目前主要针对 OpenJudge)的题目与测试样例,一键开始调试。
  • 高度可配置的运行器:无论你使用 Python, C++, Java 还是其他语言,只要可以通过命令行调用,即可通过自定义 Shell 命令配置判题逻辑。
  • 完全的本地执行:代码和测试数据均在本地运行,保护隐私,且无需排队等待云端判题机。
  • 个性化体验:支持明亮/暗黑模式切换,并可自定义应用主题色,让你在舒适的环境下编码。

下载 / Download

平台 获取方式 状态
Windows GitHub Releases ✅ 推荐
Linux GitHub Releases ✅ 推荐
macOS 需要你的帮助 🚧 待构建
Android / iOS / ❌ 不受支持*

* 关于移动端:由于本应用核心功能依赖于 process_run 调用系统底层的编译器或解释器(如 gcc, python 等)以及 Shell 环境,因此无法在 Android 和 iOS 沙盒环境中运行。

技术实现 / Tech Stack

本项目使用 Flutter 构建,旨在实现一套代码多端运行(桌面端)。本项目使用 Provider 进行状态管理,使用 intl 进行国际化,使用 window_manager 实现沉浸式标题栏,使用 bot_toast 进行简单的弹出通知。

贡献 / Contribute

Clear Judge 是一个开源项目,欢迎任何形式的贡献,包括但不限于提交 Bug、修复代码或提出新功能建议。

如果你是有能人士,愿意为本项目贡献代码,请不要犹豫提交 Pull Request 吧!

觉得有些地方设计的不妥?同样欢迎分享设计。

特别寻求 macOS 开发者

由于开发者手头暂时没有 macOS 设备,目前无法提供 macOS 版本的构建包(.dmg.app)。 Clear Judge 的代码理论上完全支持 macOS。如果你拥有 Mac 设备并配置了 Flutter 开发环境,非常欢迎你协助构建 macOS 版本 ,或者贡献 Github Actions 的构建脚本。

如何运行和构建

  1. 克隆仓库
    git clone https://github.com/FuYnAloft/ClearJudge.git
  2. 安装依赖
    flutter pub get
  3. 生成代码重要): 本项目依赖 freezed 进行序列化和 intl 进行国际化,运行前必须执行代码生成:
    dart run build_runner build --delete-conflicting-outputs
  4. 运行调试
    flutter run -d windows # 或 linux / macos
  5. 构建应用
    flutter build windows # 或 linux / macos

许可证 / License

本项目基于 Apache-2.0 License 开源。详情请参阅 LICENSE 文件。

About

一款基于 Flutter 开发的现代化本地判题工具,专为解决 OpenJudge 等平台反馈不明确、调试困难的问题而生。

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors