From 283dba9fe13c6bd1ba044cd6d7d3031c812db36e Mon Sep 17 00:00:00 2001 From: happyZYM Date: Mon, 25 Sep 2023 20:27:38 +0800 Subject: [PATCH] Initial commit --- .clang-format | 4 + .gitignore | 4 + CMakeLists.txt | 5 + LICENSE | 21 ++++ README.md | 187 ++++++++++++++++++++++++++++++ figures/microsoft-minesweeper.png | Bin 0 -> 121749 bytes src/CMakeLists.txt | 10 ++ src/advanced.cpp | 41 +++++++ src/include/client.h | 63 ++++++++++ src/include/server.h | 106 +++++++++++++++++ src/main.cpp | 19 +++ testcases/basic/basic1.in | 12 ++ testcases/basic/basic1.out | 37 ++++++ testcases/basic/basic2.in | 22 ++++ testcases/basic/basic2.out | 87 ++++++++++++++ testcases/basic/basic3.in | 25 ++++ testcases/basic/basic3.out | 102 ++++++++++++++++ testcases/basic/basic4.in | 11 ++ testcases/basic/basic4.out | 20 ++++ testcases/basic/basic5.in | 26 +++++ testcases/basic/basic5.out | 155 +++++++++++++++++++++++++ 21 files changed, 957 insertions(+) create mode 100644 .clang-format create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100644 LICENSE create mode 100644 README.md create mode 100644 figures/microsoft-minesweeper.png create mode 100644 src/CMakeLists.txt create mode 100644 src/advanced.cpp create mode 100644 src/include/client.h create mode 100644 src/include/server.h create mode 100644 src/main.cpp create mode 100644 testcases/basic/basic1.in create mode 100644 testcases/basic/basic1.out create mode 100644 testcases/basic/basic2.in create mode 100644 testcases/basic/basic2.out create mode 100644 testcases/basic/basic3.in create mode 100644 testcases/basic/basic3.out create mode 100644 testcases/basic/basic4.in create mode 100644 testcases/basic/basic4.out create mode 100644 testcases/basic/basic5.in create mode 100644 testcases/basic/basic5.out diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..bbbb66e --- /dev/null +++ b/.clang-format @@ -0,0 +1,4 @@ +BasedOnStyle: Google +DerivePointerAlignment: false +PointerAlignment: Right +ColumnLimit: 120 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1a5fc55 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.cache/ +.vscode/ +build/ +src/std/ diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..6423ec8 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,5 @@ +cmake_minimum_required(VERSION 3.10) + +project(Minesweeper) + +add_subdirectory(src) \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..71acbeb --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 ACMClassCourse-2023 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..1d13c1e --- /dev/null +++ b/README.md @@ -0,0 +1,187 @@ +# Minesweeper-2023 +> ACM 班 2023 级程序设计第一次大作业 + +~~大作业~~ 扫雷,启动! + +## 目录 + +1. [Minesweeper-2023](#minesweeper-2023) + 1. [目录](#目录) + 2. [简介](#简介) + 1. [背景](#背景) + 2. [作业目标](#作业目标) + 3. [作业要求](#作业要求) + 1. [术语解释](#术语解释) + 2. [作业任务](#作业任务) + 1. [基础任务](#基础任务) + 2. [进阶任务](#进阶任务) + 3. [数据范围](#数据范围) + 4. [须知](#须知) + 1. [截止时间](#截止时间) + 2. [评分规则](#评分规则) + 1. [A班](#a班) + 2. [B班](#b班) + +## 简介 +### 背景 + +Minesweeper(扫雷)是我们熟悉的经典轻量级小游戏,作为老版本 Windows 操作系统的内置应用,它在许多人的回忆中可能是学生时代在老电脑里的娱乐,信息课上的摸鱼或是竞赛中垃圾时间的消遣。 + +![微软扫雷](figures/microsoft-minesweeper.png) + +自从 Windows 8 从内置游戏中移除了扫雷,关于扫雷的回忆可能已经随我们的那段童年一起被慢慢地尘封。那么在这里,在你初入 ACM 班的第一个大作业中,让我们来回顾一下扫雷吧~ + +### 作业目标 + +我们想通过本次作业达到以下目标: +1. 基础任务 + - 熟悉基本的输入输出与控制流语句 + - 熟悉函数的使用 + - 熟悉数组的使用 + - 熟悉函数的递归 + - 了解搜索算法(可选) + - 边界情况的处理 + - 规范代码风格 +2. 进阶任务 + - 提高模拟水平 + - 运用算法解决实际问题的能力 + - 使用 git 与 cmake 管理项目(可选) + - 运用机器学习解决问题(可选) + +## 作业要求 + +在本次作业中,你需要实现一个扫雷游戏(如果你不知道扫雷是什么,你可以参考 [扫雷_百度百科](https://baike.baidu.com/item/扫雷/12543) )。 + +### 术语解释 +由于本次作业涉及到一些为了方便表述而使用的术语,我们会先进行解释 +- 地图,格子:在上面的游戏截图中,每一个小方块被我们称为一个格子,所有的格子构成地图 +- 地雷,非地雷格子,非地雷格子的地雷计数:游戏中的格子可能是地雷或非地雷格子;若一个格子是非地雷格子,则我们将其周围八个格子中地雷的总数称为其地雷计数。 +- 访问一个格子:在游戏最开始,所有格子都是**未被访问**的(即其内容对于用户是未知的),用户访问一个格子相当于传统扫雷游戏中左键单击该格子,其状态将变为已访问。 + - 需要注意的是,与实际的扫雷游戏相同,**当你访问某个地雷计数为 0 的格子时,周围的所有格子将自动被访问**(相应地,若自动被访问的格子中也有地雷计数为 0 的,该过程需继续进行下去;对于 B 班同学,你可能需要运用递归的思想解决这一问题,如果你对这一任务的实现没有头绪,请咨询助教) +- 游戏结束条件:若一个格子是地雷,则访问该格子将**立即**导致游戏失败,否则游戏继续,直到所有非地雷的格子均被访问(即游戏胜利)。 + +### 作业任务 + +#### 基础任务 + +在本次作业中,你的基础任务是模拟实现一个命令行交互的扫雷小游戏,即实现该游戏的服务端。 + +首先,你会通过标准输入得到给定地图的信息(行列数量与每个格子是否为地雷),形式化地,第一行输入两个整数 `n` `m` ,代表地图有 `n` 行 `m` 列,随后 `n` 行,每行输入 `m` 个字符(不计换行符),以换行符结尾,其中第 `i` 行第 `j` 列(0-based,下同)代表地图中第 `i` 行第 `j` 个格子的内容,`.` 代表未放置地雷,`X` 代表放置地雷。 + +例如下面的输入 +``` +3 3 +.X. +... +..X +``` +代表当前游戏的地图大小为 3 * 3,在地图的第 0 行第 1 列与第 2 行第 2 列放置了地雷。 + +在初始状态下,地图中的所有格子都是未被访问的。 + +初始化完成后,你需要输出地图(格式见下)。随后,你会通过标准输入得到若干行字符串来表示玩家的操作,每一行有两个正整数 `x y`,分别是两个在 `[0, n - 1]` 和 `[0, m - 1]` 范围的数字,代表玩家这一步希望访问第 `x` 行第 `y` 列的格子。 + +在读取玩家的输入后,你需要访问指定的格子(若格子本身已被访问,不做任何操作);并将访问后的地图状态输出,格式与输入相仿,具体地 + +- 输出 `n` 行 `m` 列,最后输出换行符 + - 未被访问的格子输出为 `?`,例如上面的地图在初始状态下的输出应当为 + ``` + ??? + ??? + ??? + ``` + - 对于已被访问过的格子,若其为地雷,输出 `X`,若其不是地雷,输出一个正整数 `k`,表示其地雷计数。例如对于上面的地图,若从左到右依次访问最下面一行的格子,在右下角的地雷被访问后的输出应当为 + ``` + ??? + 12? + 01X + ``` + (若你不明白为什么 (1, 0) 和 (1, 1) 两个格子也被访问,请参考 [术语解释](#术语解释)) + - 当所有非地雷格子已被访问后(即游戏胜利前最后一次输出地图时),你需要将在所有为地雷的格子处(均未访问)输出 `@`,非地雷格子同上。例如,对于上面的地图,游戏胜利前最后一次输出应当为 + ``` + 1@1 + 122 + 01@ + ``` + +- 输出地图后,你需要判定游戏是否结束(失败或胜利),若游戏结束,你应当先输出一行文字,**胜利则为 "YOU WIN!",失败则为 "GAME OVER!"**,再输出一行两个整数 `visit_count step_count`,以空格分隔,分别代表玩家访问过的**非地雷格子**的个数与总操作数,并立即以 0 为返回值退出程序。 + - 例如,在上面的访问了右下角地雷的例子中,当你输出完地图后,你应输出下面的信息并退出程序: + ``` + GAME OVER! + 4 3 + ``` + +#### 进阶任务 + +在本次作业中,你的进阶任务是游玩你刚刚设计的扫雷小游戏,即实现该游戏的用户端。这一任务是为 A 班,即参加过算法竞赛的同学准备的,你可以将其类比为算法竞赛中的交互题。有所不同的是,我们这里不使用标准输入输出进行交互,而是通过你刚刚自己写的游戏程序交互。 + +我们下面将游戏程序称为服务端代码(即 `server.h`),游玩程序称为用户端代码(即 `client.h`)。 + +首先,我们将读入游戏地图作为服务端代码的输入,用户端代码仅可以获知游戏地图的行数与列数;接下来,用户端代码不断发起 `Execute(row, column)` 指令(第一次将由输入数据代你发出,防止第一次就踩雷),即访问某一个方块并获得该访问后的地图情况,具体地,`Execute(row, column)` 函数的实现形如 +``` +Execute(row, column): + VisitBlock(row, column) + ReadMap() from result of PrintMap() +``` +因此,如你所见,你需要在 ReadMap 函数中读取有限的地图信息,并储存到一些全局变量中,随后根据这些地图信息做出下一步的决策,通过 `Execute` 再次发起决策。具体的代码结构逻辑可以参考 `advanced.cpp` 和 `client.cpp`,如果你不明白代码的实现方式,请立即询问助教!!! + +例如,若输入数据为 +``` +3 3 +.X. +... +..X +2 0 +``` +最下面一行 `2 0` 是输入数据代你做出的第一次决策,下面给出了一组交互的例子。 + +``` +(Decision) (result of PrintMap) + ??? + 12? + 01? +1 2 + ??? + 122 + 01? +0 1 + ?X? + 122 + 01? + GAME OVER! + 5 3 +``` + +注意这里的最后两行是游戏结束(失败)的输出,`step_count` 为 3 是因为将第一次操作 `2 0` 计算入中操作数。 + +### 数据范围 + +对于基础任务,地图的行数`n`、列数`m`、地雷数`x`满足:1 < `n`, `m` < 31,0 < `x` < mn。保证输入合法。 + +## 须知 + +### 截止时间 + +第五周周一(10/9)18:00 + +### 评分规则 + +A班、B班均有最多 10% 的 bonus 分数。 + +#### A班 + +| 任务 | 占比 | +| :---: | :---: | +| 基础任务公开测试点 | 60% | +| 进阶任务 | 30% | +| Code Review | 20% | + +#### B班 + +| 任务 | 占比 | +| :---: | :---: | +| 基础任务 | 80% | +| 进阶任务 | 10% | +| Code Review | 20% | + +关于进阶任务的评分细则,我们将稍后发布。 diff --git a/figures/microsoft-minesweeper.png b/figures/microsoft-minesweeper.png new file mode 100644 index 0000000000000000000000000000000000000000..74b9cb220c00787de9207634d88d020c854a6898 GIT binary patch literal 121749 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 literal 0 HcmV?d00001 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..c814149 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,10 @@ +set(PROJECT_NAME ${CMAKE_PROJECT_NAME}) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_FLAGS "-g -O2") + +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) + +add_executable(server main.cpp) + +# add_executable(client advanced.cpp) # For advanced task \ No newline at end of file diff --git a/src/advanced.cpp b/src/advanced.cpp new file mode 100644 index 0000000..82af80b --- /dev/null +++ b/src/advanced.cpp @@ -0,0 +1,41 @@ +#include +#include +#include +#include + +#include "client.h" +#include "server.h" + +/** + * @brief The implementation of function Execute + * @details Use it only when trying advanced task. Do NOT modify it before discussing with TA. + */ +void Execute(int row, int column) { + std::string str; + VisitBlock(row, column); + if (game_state != 0) { + ExitGame(); + } + std::ostringstream oss; + std::streambuf *old_output_buffer = std::cout.rdbuf(); + std::cout.rdbuf(oss.rdbuf()); + // Here, we redirect the output stream to the string stream. + // By this way the output of PrintMap() would be stored in the string. + // If you do not understand, you can try to compare it with freopen, which redirect the output stream to a file. + PrintMap(); + std::cout.rdbuf(old_output_buffer); // Restore the output buffer + str = oss.str(); // Read the output + std::istringstream iss(str); // Redirect the input to the string, which stores the output recently + std::streambuf *old_input_buffer = std::cin.rdbuf(); + ReadMap(); + std::cin.rdbuf(old_input_buffer); +} + +int main() { + InitMap(); + std::cout << rows << " " << columns << std::endl; + InitGame(); + while (true) { + Decide(); // Exit() will be called in this function + } +} \ No newline at end of file diff --git a/src/include/client.h b/src/include/client.h new file mode 100644 index 0000000..c1154e8 --- /dev/null +++ b/src/include/client.h @@ -0,0 +1,63 @@ +#ifndef CLIENT_H +#define CLIENT_H + +#include +#include + +extern int rows; // The count of rows of the game map +extern int columns; // The count of columns of the game map + +// You can not use any other external variables except for rows and columns. + +/** + * @brief The definition of function Execute(int, int) + * + * @details This function is designed to take a step when player the client's (or player's) role, and the implementation + * of it has been finished by TA. (I hope my comments in code would be easy to understand T_T) If you do not understand + * the contents, please ask TA for help immediately!!! + * + * @param row The row coordinate (0-based) of the block to be visited. + * @param column The column coordinate (0-based) of the block to be visited. + */ +void Execute(int row, int column); + +/** + * @brief The definition of function InitGame() + * + * @details This function is designed to initialize the game. It should be called at the beginning of the game, which + * will read the scale of the game map and the first step taken by the server (see README). + */ +void InitGame() { + int first_row, first_column; + std::cin >> first_row >> first_column; + Execute(first_row, first_column); +} + +/** + * @brief The definition of function ReadMap() + * + * @details This function is designed to read the game map from stdin when playing the client's (or player's) role. + * Since the client (or player) can only get the limited information of the game map, so if there is a 3 * 3 map as + * above and only the block (2, 0) has been visited, the stdin would be + * ??? + * 12? + * 01? + */ +void ReadMap() { + // TODO (student): Implement me! +} + +/** + * @brief The definition of function Decide() + * + * @details This function is designed to decide the next step when playing the client's (or player's) role. Open up your + * mind and make your decision here! + */ +void Decide() { + // TODO (student): Implement me! + // while (true) { + // Execute(0, 0); + // } +} + +#endif \ No newline at end of file diff --git a/src/include/server.h b/src/include/server.h new file mode 100644 index 0000000..4592243 --- /dev/null +++ b/src/include/server.h @@ -0,0 +1,106 @@ +#ifndef SERVER_H +#define SERVER_H + +#include +#include + +/* + * You may need to define some global variables for the information of the game map here. + * Although we don't encourage to uss global variables in real cpp projects, you may have to use them because the use of + * class is not taught yet. However, if you are member of A-class or have learnt the use of cpp class, member functions, + * etc., you're free to modify this structure. + */ +int rows; // The count of rows of the game map +int columns; // The count of columns of the game map +int game_state; // The state of the game, 0 for continuing, 1 for winning, -1 for losing + +/** + * @brief The definition of function InitMap() + * + * @details This function is designed to read the initial map from stdin. For example, if there is a 3 * 3 map in which + * mines are located at (0, 1) and (1, 2) (0-based), the stdin would be + * 3 3 + * .X. + * ... + * ..X + * where X stands for a mine block and . stands for a normal block. After executing this function, your game map would + * be initialized, with all the blocks unvisited. + */ +void InitMap() { + std::cin >> rows >> columns; + // TODO (student): Implement me! +} + +/** + * @brief The definition of function VisitBlock(int, int) + * + * @details This function is designed to visit a block in the game map. We take the 3 * 3 game map above as an example. + * At the beginning, if you call VisitBlock(0, 0), the return value would be 0 (game continues), and the game map would + * be + * 1?? + * ??? + * ??? + * If you call VisitBlock(0, 1) after that, the return value would be -1 (game ends and the players loses) , and the + * game map would be + * 1X? + * ??? + * ??? + * If you call VisitBlock(0, 2), VisitBlock(2, 0), VisitBlock(1, 2) instead, the return value of the last operation + * would be 1 (game ends and the player wins), and the game map would be + * 1@1 + * 122 + * 01@ + * + * @param row The row coordinate (0-based) of the block to be visited. + * @param column The column coordinate (0-based) of the block to be visited. + * + * @note You should edit the value of game_state in this function. Precisely, edit it to + * 0 if the game continues after visit that block, or that block has already been visited before. + * 1 if the game ends and the player wins. + * -1 if the game ends and the player loses. + */ +void VisitBlock(int row, int column) { + // TODO (student): Implement me! +} + +/** + * @brief The definition of function PrintMap() + * + * @details This function is designed to print the game map to stdout. We take the 3 * 3 game map above as an example. + * At the beginning, if you call PrintMap(), the stdout would be + * ??? + * ??? + * ??? + * If you call VisitBlock(2, 0) and PrintMap() after that, the stdout would be + * ??? + * 12? + * 01? + * If you call VisitBlock(0, 1) and PrintMap() after that, the stdout would be + * ?X? + * 12? + * 01? + * If the player visits all blocks without mine and call PrintMap() after that, the stdout would be + * 1@1 + * 122 + * 01@ + * (You may find the global variable game_state useful when implementing this function.) + * + * @note Use std::cout to print the game map, especially when you want to try the advanced task!!! + */ +void PrintMap() { + // TODO (student): Implement me! +} + +/** + * @brief The definition of function ExitGame() + * + * @details This function is designed to exit the game. + * It outputs a line according to the result, and a line of two integers, visit_count and step_count, + * representing the number of blocks visited and the number of steps taken respectively. + */ +void ExitGame() { + // TODO (student): Implement me! + exit(0); // Exit the game immediately +} + +#endif diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..06fbb8e --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,19 @@ +#include + +#include "server.h" + +int main() { + InitMap(); + PrintMap(); + while (true) { + int pos_x; + int pos_y; + std::cin >> pos_x >> pos_y; + VisitBlock(pos_x, pos_y); + PrintMap(); + if (game_state != 0) { + ExitGame(); + } + } + return 0; +} diff --git a/testcases/basic/basic1.in b/testcases/basic/basic1.in new file mode 100644 index 0000000..214b4df --- /dev/null +++ b/testcases/basic/basic1.in @@ -0,0 +1,12 @@ +5 5 +..X.. +.X.X. +X.X.X +.X.X. +..X.. +0 0 +0 1 +1 2 +3 4 +4 4 +2 2 diff --git a/testcases/basic/basic1.out b/testcases/basic/basic1.out new file mode 100644 index 0000000..b592ca1 --- /dev/null +++ b/testcases/basic/basic1.out @@ -0,0 +1,37 @@ +????? +????? +????? +????? +????? +1???? +????? +????? +????? +????? +12??? +????? +????? +????? +????? +12??? +??4?? +????? +????? +????? +12??? +??4?? +????? +????2 +????? +12??? +??4?? +????? +????2 +????1 +12??? +??4?? +??X?? +????2 +????1 +GAME OVER! +5 6 diff --git a/testcases/basic/basic2.in b/testcases/basic/basic2.in new file mode 100644 index 0000000..cfbb07b --- /dev/null +++ b/testcases/basic/basic2.in @@ -0,0 +1,22 @@ +5 5 +...XX +.X..X +..X.. +.X.X. +X...X +0 2 +0 0 +0 1 +1 0 +1 2 +1 3 +2 3 +2 4 +3 4 +3 2 +2 0 +2 1 +3 0 +4 3 +4 2 +4 4 diff --git a/testcases/basic/basic2.out b/testcases/basic/basic2.out new file mode 100644 index 0000000..ed61c91 --- /dev/null +++ b/testcases/basic/basic2.out @@ -0,0 +1,87 @@ +????? +????? +????? +????? +????? +??2?? +????? +????? +????? +????? +1?2?? +????? +????? +????? +????? +112?? +????? +????? +????? +????? +112?? +1???? +????? +????? +????? +112?? +1?3?? +????? +????? +????? +112?? +1?34? +????? +????? +????? +112?? +1?34? +???3? +????? +????? +112?? +1?34? +???32 +????? +????? +112?? +1?34? +???32 +????2 +????? +112?? +1?34? +???32 +??3?2 +????? +112?? +1?34? +2??32 +??3?2 +????? +112?? +1?34? +23?32 +??3?2 +????? +112?? +1?34? +23?32 +2?3?2 +????? +112?? +1?34? +23?32 +2?3?2 +???2? +112?? +1?34? +23?32 +2?3?2 +??22? +112?? +1?34? +23?32 +2?3?2 +??22X +GAME OVER! +15 16 diff --git a/testcases/basic/basic3.in b/testcases/basic/basic3.in new file mode 100644 index 0000000..31cdee8 --- /dev/null +++ b/testcases/basic/basic3.in @@ -0,0 +1,25 @@ +5 5 +....X +XX..X +.X... +..X.. +.X..X +4 3 +4 3 +4 2 +4 0 +0 0 +2 0 +2 2 +2 3 +2 4 +0 1 +0 2 +0 3 +1 2 +1 3 +3 0 +3 1 +3 3 +3 3 +3 4 diff --git a/testcases/basic/basic3.out b/testcases/basic/basic3.out new file mode 100644 index 0000000..b9bc241 --- /dev/null +++ b/testcases/basic/basic3.out @@ -0,0 +1,102 @@ +????? +????? +????? +????? +????? +????? +????? +????? +????? +???2? +????? +????? +????? +????? +???2? +????? +????? +????? +????? +??22? +????? +????? +????? +????? +1?22? +2???? +????? +????? +????? +1?22? +2???? +????? +3???? +????? +1?22? +2???? +????? +3?3?? +????? +1?22? +2???? +????? +3?32? +????? +1?22? +2???? +????? +3?321 +????? +1?22? +22??? +????? +3?321 +????? +1?22? +221?? +????? +3?321 +????? +1?22? +2212? +????? +3?321 +????? +1?22? +2212? +??2?? +3?321 +????? +1?22? +2212? +??22? +3?321 +????? +1?22? +2212? +??22? +3?321 +2???? +1?22? +2212? +??22? +3?321 +23??? +1?22? +2212? +??22? +3?321 +23?2? +1?22? +2212? +??22? +3?321 +23?2? +1?22? +2212@ +@@22@ +3@321 +23@21 +1@22@ +YOU WIN! +17 19 diff --git a/testcases/basic/basic4.in b/testcases/basic/basic4.in new file mode 100644 index 0000000..c8d4271 --- /dev/null +++ b/testcases/basic/basic4.in @@ -0,0 +1,11 @@ +9 9 +......... +......... +..X...X.. +......... +......... +......... +..X...X.. +......... +......... +4 4 diff --git a/testcases/basic/basic4.out b/testcases/basic/basic4.out new file mode 100644 index 0000000..e1a2a5e --- /dev/null +++ b/testcases/basic/basic4.out @@ -0,0 +1,20 @@ +????????? +????????? +????????? +????????? +????????? +????????? +????????? +????????? +????????? +000000000 +011101110 +01@101@10 +011101110 +000000000 +011101110 +01@101@10 +011101110 +000000000 +YOU WIN! +77 1 diff --git a/testcases/basic/basic5.in b/testcases/basic/basic5.in new file mode 100644 index 0000000..8d09a75 --- /dev/null +++ b/testcases/basic/basic5.in @@ -0,0 +1,26 @@ +9 9 +......... +...X..... +.....X.XX +......... +..X...... +......... +......... +X.....X.. +......... +8 8 +8 6 +8 0 +3 1 +3 0 +2 6 +2 4 +2 3 +1 8 +1 7 +1 6 +1 5 +1 4 +0 3 +0 4 +0 5 diff --git a/testcases/basic/basic5.out b/testcases/basic/basic5.out new file mode 100644 index 0000000..fba7fe1 --- /dev/null +++ b/testcases/basic/basic5.out @@ -0,0 +1,155 @@ +????????? +????????? +????????? +????????? +????????? +????????? +????????? +????????? +????????? +????????? +????????? +????????? +???111222 +???100000 +?11100000 +?10001110 +?10001?10 +?10001?10 +????????? +????????? +????????? +???111222 +???100000 +?11100000 +?10001110 +?10001?10 +?10001110 +????????? +????????? +????????? +???111222 +???100000 +?11100000 +?10001110 +?10001?10 +110001110 +????????? +????????? +????????? +?1?111222 +???100000 +?11100000 +?10001110 +?10001?10 +110001110 +001?????? +001?????? +001?????? +011111222 +01?100000 +011100000 +110001110 +?10001?10 +110001110 +001?????? +001?????? +001???2?? +011111222 +01?100000 +011100000 +110001110 +?10001?10 +110001110 +001?????? +001?????? +001?2?2?? +011111222 +01?100000 +011100000 +110001110 +?10001?10 +110001110 +001?????? +001?????? +00112?2?? +011111222 +01?100000 +011100000 +110001110 +?10001?10 +110001110 +001?????? +001?????2 +00112?2?? +011111222 +01?100000 +011100000 +110001110 +?10001?10 +110001110 +001?????? +001????22 +00112?2?? +011111222 +01?100000 +011100000 +110001110 +?10001?10 +110001110 +001?????? +001???222 +00112?2?? +011111222 +01?100000 +011100000 +110001110 +?10001?10 +110001110 +001?????? +001??1222 +00112?2?? +011111222 +01?100000 +011100000 +110001110 +?10001?10 +110001110 +001?????? +001?21222 +00112?2?? +011111222 +01?100000 +011100000 +110001110 +?10001?10 +110001110 +0011????? +001?21222 +00112?2?? +011111222 +01?100000 +011100000 +110001110 +?10001?10 +110001110 +00111???? +001?21222 +00112?2?? +011111222 +01?100000 +011100000 +110001110 +?10001?10 +110001110 +001110000 +001@21222 +00112@2@@ +011111222 +01@100000 +011100000 +110001110 +@10001@10 +110001110 +YOU WIN! +74 16