From 258ec37c6a4a4389563c0b6144b8a38b770c605a Mon Sep 17 00:00:00 2001 From: tkgstrator Date: Fri, 6 Sep 2024 15:25:26 +0000 Subject: [PATCH 01/11] build: change package name --- package.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 4fc29c4..f86e1bd 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "kif_parser", + "name": "@tsshogi/kanna", "version": "0.0.1", "description": "棋譜データをパースするライブラリです", "author": "tkgstrator", @@ -9,6 +9,13 @@ "module": "dist/index.js", "types": "dist/index.d.ts", "files": ["dist"], + "repository": { + "type": "git", + "url": "https://github.com/tsshogi/kanna.git" + }, + "publishConfig": { + "registry": "https://npm.pkg.github.com" + }, "config": { "commitizen": { "path": "@commitlint/cz-commitlint" From a8546eed3c3460dea66039cd36441e71dd9b78e9 Mon Sep 17 00:00:00 2001 From: tkgstrator Date: Fri, 6 Sep 2024 15:26:30 +0000 Subject: [PATCH 02/11] ci: set specific registry --- .github/workflows/deployment.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deployment.yaml b/.github/workflows/deployment.yaml index 387cb39..4f5292a 100644 --- a/.github/workflows/deployment.yaml +++ b/.github/workflows/deployment.yaml @@ -29,6 +29,6 @@ jobs: registry-url: https://npm.pkg.github.com scope: '@tsshogi' - name: Deploy - run: npm publish --access public + run: npm publish --access public --registry=https://npm.pkg.github.com env: NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}} From 157585ab1b89b23319e47b1276f4f795cbd1c231 Mon Sep 17 00:00:00 2001 From: tkgstrator Date: Sat, 7 Sep 2024 00:43:09 +0000 Subject: [PATCH 03/11] fix: remove private field --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 4fc29c4..679c4db 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,6 @@ "version": "0.0.1", "description": "棋譜データをパースするライブラリです", "author": "tkgstrator", - "private": true, "license": "MIT", "main": "dist/index.js", "module": "dist/index.js", From 624fe99e2eed20c607cfb7b19c406d6179c5fbcb Mon Sep 17 00:00:00 2001 From: tkgstrator Date: Wed, 11 Sep 2024 04:24:18 +0000 Subject: [PATCH 04/11] feat: add tsc-alias --- bun.lockb | Bin 108333 -> 118582 bytes package.json | 3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/bun.lockb b/bun.lockb index 5f1df2db41ecb7768b2a962c02d4b04466526f14..4841d43b12b86e71d995760e74dfe698a49dda2d 100755 GIT binary patch delta 26034 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 delta 20504 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 H)a-u&w9cbq diff --git a/package.json b/package.json index 3f52a4a..ad1a274 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "scripts": { "build": "bun build src/index.ts --sourcemap=external --minify --outdir dist", "prebuild": "rimraf dist", - "postbuild": "bunx tsc", + "postbuild": "bunx tsc && tsc-alias", "lint": "bunx @biomejs/biome lint --write src", "format": "bunx @biomejs/biome format --write src", "deploy": "wrangler deploy --minify src/index.ts", @@ -43,6 +43,7 @@ "husky": "^9.1.3", "lint-staged": "^15.2.10", "rimraf": "^6.0.1", + "tsc-alias": "^1.8.10", "zod": "^3.23.8" } } From a436fab816ef7d1f7cea854ae53c53e12474285e Mon Sep 17 00:00:00 2001 From: tkgstrator Date: Wed, 11 Sep 2024 04:29:23 +0000 Subject: [PATCH 05/11] build: update to 0.0.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ad1a274..52e5d3a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@tsshogi/kanna", - "version": "0.0.1", + "version": "0.0.2", "description": "棋譜データをパースするライブラリです", "author": "tkgstrator", "license": "MIT", From d33a749498bb406795dc11ea7e04b5350fa127ac Mon Sep 17 00:00:00 2001 From: tkgstrator Date: Wed, 11 Sep 2024 06:56:38 +0000 Subject: [PATCH 06/11] feat: add return moves --- .devcontainer/docker-compose.yaml | 4 +-- package.json | 2 +- src/format/tsca.ts | 58 +++++++++++++++++++++++++++++-- src/index.ts | 2 ++ src/models/answer.dto.ts | 11 ++++++ src/models/move.dto.ts | 14 ++++++++ src/models/record.dto.ts | 1 + src/tests/index.spec.ts | 9 ++--- 8 files changed, 92 insertions(+), 9 deletions(-) create mode 100644 src/models/answer.dto.ts create mode 100644 src/models/move.dto.ts diff --git a/.devcontainer/docker-compose.yaml b/.devcontainer/docker-compose.yaml index c1660e8..810210b 100644 --- a/.devcontainer/docker-compose.yaml +++ b/.devcontainer/docker-compose.yaml @@ -8,8 +8,8 @@ services: volumes: - node_modules:/home/bun/app/node_modules - ../:/home/bun/app:cached - ports: - - 8787:8787 + # ports: + # - 8787:8787 tty: true stdin_open: true diff --git a/package.json b/package.json index 52e5d3a..4301cd3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@tsshogi/kanna", - "version": "0.0.2", + "version": "0.0.3", "description": "棋譜データをパースするライブラリです", "author": "tkgstrator", "license": "MIT", diff --git a/src/format/tsca.ts b/src/format/tsca.ts index ac34a56..0a2b384 100644 --- a/src/format/tsca.ts +++ b/src/format/tsca.ts @@ -3,13 +3,32 @@ import { MetadataKey } from '@/enums/metadata' import { Board } from '@/models/board.dto' import { Hand } from '@/models/hand.dto' import { Metadata } from '@/models/metadata.dto' +import { Move } from '@/models/move.dto' import { Record } from '@/models/record.dto' import { Square } from '@/models/square.dto' import dayjs from 'dayjs' -import { type Record as TSRecord, importCSA } from 'tsshogi' +import { + PieceType, + SpecialMoveType, + type Move as TSMove, + Node as TSNode, + type Record as TSRecord, + Square as TSSquare, + exportCSA, + exportKIF, + importCSA +} from 'tsshogi' import { z } from 'zod' import type { TCSV } from '..' +const chunk = (arr: T[], size: number): T[][] => { + const results: T[][] = [] + for (let i = 0; i < arr.length; i += size) { + results.push(arr.slice(i, i + size)) + } + return results +} + /** * 詰将棋パラダイス用のフォーマット */ @@ -59,6 +78,22 @@ export const TCSA = z.preprocess( }) ) }, + get answer(): TCSV.Move[][] { + return chunk( + object.answercsv + .split('_') + .filter((value) => value.length > 0) + .map((value, index) => { + const [fromX, fromY, toX, toY, promote] = value.split('').map((value) => Number.parseInt(value)) + return Move.parse({ + from: { x: fromX, y: fromY }, + to: { x: toX, y: toY }, + promote: promote === 1 + }) + }), + object.progresscnt + ) + }, get board(): TCSV.Board { return Board.parse({ pieces: [1, 2, 3, 4, 5, 6, 7, 8, 9].map((y) => @@ -81,7 +116,7 @@ export const TCSA = z.preprocess( ].map((metadata) => Metadata.parse(metadata)) }, get record(): TSRecord | Error { - return importCSA( + const record: TSRecord | Error = importCSA( Record.parse({ metadata: (this as TCSA).metadata, pieces: (this as TCSA).pieces, @@ -89,6 +124,25 @@ export const TCSA = z.preprocess( board: (this as TCSA).board }).csa ) + if (record instanceof Error) { + return record + } + for (const moves of (this as TCSA).answer) { + record.goto(0) + for (const move of moves) { + const m: TSMove | null = record.position.createMove( + move.from.x === 0 ? Object.values(PieceType)[move.from.y - 1] : new TSSquare(move.from.x, move.from.y), + new TSSquare(move.to.x, move.to.y) + ) + if (m !== null) { + m.promote = move.promote + record.append(m) + } + } + // 投了コマンドの追加 + record.append(SpecialMoveType.RESIGN) + } + return record } } }) diff --git a/src/index.ts b/src/index.ts index b423784..8b06169 100644 --- a/src/index.ts +++ b/src/index.ts @@ -6,6 +6,7 @@ import { TCSA } from './format/tsca' import type { Board } from './models/board.dto' import type { Hand } from './models/hand.dto' import type { Metadata } from './models/metadata.dto' +import type { Move } from './models/move.dto' import type { Record } from './models/record.dto' import type { Square } from './models/square.dto' @@ -17,6 +18,7 @@ export namespace TCSV { export type Square = z.infer export type Board = z.infer export type Metadata = z.infer + export type Move = z.infer } declare module '@/models/square.dto' { diff --git a/src/models/answer.dto.ts b/src/models/answer.dto.ts new file mode 100644 index 0000000..c17cdd7 --- /dev/null +++ b/src/models/answer.dto.ts @@ -0,0 +1,11 @@ +import { Square } from '@/models/square.dto' +import { z } from 'zod' + +export const Answer = z.array(z.array(Square)).transform((object) => { + return { + ...object, + get csa(): string { + return object[0].map((move) => move.csa).join('\n') + } + } +}) diff --git a/src/models/move.dto.ts b/src/models/move.dto.ts new file mode 100644 index 0000000..3e8858a --- /dev/null +++ b/src/models/move.dto.ts @@ -0,0 +1,14 @@ +import { Color } from 'tsshogi' +import { z } from 'zod' + +export const Move = z.object({ + from: z.object({ + x: z.number().int().min(0).max(9), + y: z.number().int().min(0).max(9) + }), + to: z.object({ + x: z.number().int().min(0).max(9), + y: z.number().int().min(0).max(9) + }), + promote: z.boolean() +}) diff --git a/src/models/record.dto.ts b/src/models/record.dto.ts index a436b3d..638e712 100644 --- a/src/models/record.dto.ts +++ b/src/models/record.dto.ts @@ -1,4 +1,5 @@ import { z } from 'zod' +import { Answer } from './answer.dto' import { Board } from './board.dto' import { Hand } from './hand.dto' import { Metadata } from './metadata.dto' diff --git a/src/tests/index.spec.ts b/src/tests/index.spec.ts index b2993ff..4613e8d 100644 --- a/src/tests/index.spec.ts +++ b/src/tests/index.spec.ts @@ -1,16 +1,17 @@ import { describe, expect, test } from 'bun:test' import { readFileSync } from 'node:fs' -import { type Record, exportCSA } from 'tsshogi' +import { type Record, exportCSA, exportKIF } from 'tsshogi' import { importTCSV } from '..' describe('math', () => { test('parse', () => { for (const index of [100, 1000]) { const query = readFileSync(`src/tests/csv/${index}.txt`, { encoding: 'utf8' }) - const object: Record | Error = importTCSV(query) - if (object instanceof Error) { - throw object + const record: Record | Error = importTCSV(query) + if (record instanceof Error) { + throw record } + console.log(exportKIF(record)) } }) }) From 3904ba5c7c904a7e7bd38f0e65a433372e5f3df7 Mon Sep 17 00:00:00 2001 From: tkgstrator Date: Wed, 11 Sep 2024 06:57:32 +0000 Subject: [PATCH 07/11] chore: add comments --- src/format/tsca.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/format/tsca.ts b/src/format/tsca.ts index 0a2b384..3f41545 100644 --- a/src/format/tsca.ts +++ b/src/format/tsca.ts @@ -128,12 +128,14 @@ export const TCSA = z.preprocess( return record } for (const moves of (this as TCSA).answer) { + // 初期局面に戻す record.goto(0) for (const move of moves) { const m: TSMove | null = record.position.createMove( move.from.x === 0 ? Object.values(PieceType)[move.from.y - 1] : new TSSquare(move.from.x, move.from.y), new TSSquare(move.to.x, move.to.y) ) + // 不正な指し手でなければ追加する if (m !== null) { m.promote = move.promote record.append(m) From c346afbe74fd4b3e11a292fedc8b22af97b78d5c Mon Sep 17 00:00:00 2001 From: tkgstrator Date: Wed, 11 Sep 2024 07:13:49 +0000 Subject: [PATCH 08/11] docs: add usage --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index 5ef0c34..90b038e 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,18 @@ - [x] 詰将棋パラダイス +### 使い方 + +```ts +import { importTCSV } from '@tsshogi/kanna' +import { Record } from 'tsshogi' + +const text: string = "" // 詰将棋パラダイスのテキストデータ +const record: Record | Error = importTCSV(text) +if (record instanceof Error) return +exportKIF(record) // KIF形式の文字列 +``` + ### 参考 - [tsshogi](https://github.com/sunfish-shogi/tsshogi) From de0947870f2d90755a855f6f442aeb61eda79434 Mon Sep 17 00:00:00 2001 From: tkgstrator Date: Wed, 11 Sep 2024 10:56:20 +0000 Subject: [PATCH 09/11] feat: add test --- src/format/tsca.ts | 48 +++++++++++++++++++++---------------- src/models/move.dto.ts | 53 +++++++++++++++++++++++++++++++---------- src/tests/csv/0.txt | 1 + src/tests/csv/1.txt | 1 + src/tests/csv/10.txt | 1 + src/tests/csv/11.txt | 1 + src/tests/csv/12.txt | 1 + src/tests/csv/13.txt | 1 + src/tests/csv/14.txt | 1 + src/tests/csv/15.txt | 1 + src/tests/csv/16.txt | 1 + src/tests/csv/17.txt | 1 + src/tests/csv/18.txt | 1 + src/tests/csv/19.txt | 1 + src/tests/csv/2.txt | 1 + src/tests/csv/20.txt | 1 + src/tests/csv/21.txt | 1 + src/tests/csv/22.txt | 1 + src/tests/csv/23.txt | 1 + src/tests/csv/24.txt | 1 + src/tests/csv/25.txt | 1 + src/tests/csv/26.txt | 1 + src/tests/csv/27.txt | 1 + src/tests/csv/28.txt | 1 + src/tests/csv/29.txt | 1 + src/tests/csv/3.txt | 1 + src/tests/csv/30.txt | 1 + src/tests/csv/31.txt | 1 + src/tests/csv/32.txt | 1 + src/tests/csv/33.txt | 1 + src/tests/csv/34.txt | 1 + src/tests/csv/35.txt | 1 + src/tests/csv/36.txt | 1 + src/tests/csv/37.txt | 1 + src/tests/csv/38.txt | 1 + src/tests/csv/39.txt | 1 + src/tests/csv/4.txt | 1 + src/tests/csv/40.txt | 1 + src/tests/csv/41.txt | 1 + src/tests/csv/42.txt | 1 + src/tests/csv/43.txt | 1 + src/tests/csv/44.txt | 1 + src/tests/csv/45.txt | 1 + src/tests/csv/46.txt | 1 + src/tests/csv/47.txt | 1 + src/tests/csv/48.txt | 1 + src/tests/csv/49.txt | 1 + src/tests/csv/5.txt | 1 + src/tests/csv/50.txt | 1 + src/tests/csv/51.txt | 1 + src/tests/csv/52.txt | 1 + src/tests/csv/53.txt | 1 + src/tests/csv/54.txt | 1 + src/tests/csv/55.txt | 1 + src/tests/csv/56.txt | 1 + src/tests/csv/57.txt | 1 + src/tests/csv/58.txt | 1 + src/tests/csv/59.txt | 1 + src/tests/csv/6.txt | 1 + src/tests/csv/60.txt | 1 + src/tests/csv/61.txt | 1 + src/tests/csv/62.txt | 1 + src/tests/csv/63.txt | 1 + src/tests/csv/64.txt | 1 + src/tests/csv/65.txt | 1 + src/tests/csv/66.txt | 1 + src/tests/csv/67.txt | 1 + src/tests/csv/68.txt | 1 + src/tests/csv/69.txt | 1 + src/tests/csv/7.txt | 1 + src/tests/csv/70.txt | 1 + src/tests/csv/71.txt | 1 + src/tests/csv/72.txt | 1 + src/tests/csv/73.txt | 1 + src/tests/csv/74.txt | 1 + src/tests/csv/75.txt | 1 + src/tests/csv/76.txt | 1 + src/tests/csv/77.txt | 1 + src/tests/csv/78.txt | 1 + src/tests/csv/79.txt | 1 + src/tests/csv/8.txt | 1 + src/tests/csv/80.txt | 1 + src/tests/csv/81.txt | 1 + src/tests/csv/82.txt | 1 + src/tests/csv/83.txt | 1 + src/tests/csv/84.txt | 1 + src/tests/csv/85.txt | 1 + src/tests/csv/86.txt | 1 + src/tests/csv/87.txt | 1 + src/tests/csv/88.txt | 1 + src/tests/csv/89.txt | 1 + src/tests/csv/9.txt | 1 + src/tests/csv/90.txt | 1 + src/tests/csv/91.txt | 1 + src/tests/csv/92.txt | 1 + src/tests/csv/93.txt | 1 + src/tests/csv/94.txt | 1 + src/tests/csv/96.txt | 1 + src/tests/csv/97.txt | 1 + src/tests/csv/98.txt | 1 + src/tests/csv/99.txt | 1 + src/tests/index.spec.ts | 6 +++-- src/tests/kif/100.kif | 24 ------------------- src/tests/kif/1000.kif | 24 ------------------- src/tests/kif/200.kif | 24 ------------------- src/tests/kif/300.kif | 24 ------------------- src/tests/kif/400.kif | 24 ------------------- src/tests/kif/500.kif | 24 ------------------- src/tests/kif/600.kif | 24 ------------------- src/tests/kif/700.kif | 24 ------------------- src/tests/kif/800.kif | 24 ------------------- src/tests/kif/900.kif | 24 ------------------- 112 files changed, 172 insertions(+), 274 deletions(-) create mode 100644 src/tests/csv/0.txt create mode 100644 src/tests/csv/1.txt create mode 100644 src/tests/csv/10.txt create mode 100644 src/tests/csv/11.txt create mode 100644 src/tests/csv/12.txt create mode 100644 src/tests/csv/13.txt create mode 100644 src/tests/csv/14.txt create mode 100644 src/tests/csv/15.txt create mode 100644 src/tests/csv/16.txt create mode 100644 src/tests/csv/17.txt create mode 100644 src/tests/csv/18.txt create mode 100644 src/tests/csv/19.txt create mode 100644 src/tests/csv/2.txt create mode 100644 src/tests/csv/20.txt create mode 100644 src/tests/csv/21.txt create mode 100644 src/tests/csv/22.txt create mode 100644 src/tests/csv/23.txt create mode 100644 src/tests/csv/24.txt create mode 100644 src/tests/csv/25.txt create mode 100644 src/tests/csv/26.txt create mode 100644 src/tests/csv/27.txt create mode 100644 src/tests/csv/28.txt create mode 100644 src/tests/csv/29.txt create mode 100644 src/tests/csv/3.txt create mode 100644 src/tests/csv/30.txt create mode 100644 src/tests/csv/31.txt create mode 100644 src/tests/csv/32.txt create mode 100644 src/tests/csv/33.txt create mode 100644 src/tests/csv/34.txt create mode 100644 src/tests/csv/35.txt create mode 100644 src/tests/csv/36.txt create mode 100644 src/tests/csv/37.txt create mode 100644 src/tests/csv/38.txt create mode 100644 src/tests/csv/39.txt create mode 100644 src/tests/csv/4.txt create mode 100644 src/tests/csv/40.txt create mode 100644 src/tests/csv/41.txt create mode 100644 src/tests/csv/42.txt create mode 100644 src/tests/csv/43.txt create mode 100644 src/tests/csv/44.txt create mode 100644 src/tests/csv/45.txt create mode 100644 src/tests/csv/46.txt create mode 100644 src/tests/csv/47.txt create mode 100644 src/tests/csv/48.txt create mode 100644 src/tests/csv/49.txt create mode 100644 src/tests/csv/5.txt create mode 100644 src/tests/csv/50.txt create mode 100644 src/tests/csv/51.txt create mode 100644 src/tests/csv/52.txt create mode 100644 src/tests/csv/53.txt create mode 100644 src/tests/csv/54.txt create mode 100644 src/tests/csv/55.txt create mode 100644 src/tests/csv/56.txt create mode 100644 src/tests/csv/57.txt create mode 100644 src/tests/csv/58.txt create mode 100644 src/tests/csv/59.txt create mode 100644 src/tests/csv/6.txt create mode 100644 src/tests/csv/60.txt create mode 100644 src/tests/csv/61.txt create mode 100644 src/tests/csv/62.txt create mode 100644 src/tests/csv/63.txt create mode 100644 src/tests/csv/64.txt create mode 100644 src/tests/csv/65.txt create mode 100644 src/tests/csv/66.txt create mode 100644 src/tests/csv/67.txt create mode 100644 src/tests/csv/68.txt create mode 100644 src/tests/csv/69.txt create mode 100644 src/tests/csv/7.txt create mode 100644 src/tests/csv/70.txt create mode 100644 src/tests/csv/71.txt create mode 100644 src/tests/csv/72.txt create mode 100644 src/tests/csv/73.txt create mode 100644 src/tests/csv/74.txt create mode 100644 src/tests/csv/75.txt create mode 100644 src/tests/csv/76.txt create mode 100644 src/tests/csv/77.txt create mode 100644 src/tests/csv/78.txt create mode 100644 src/tests/csv/79.txt create mode 100644 src/tests/csv/8.txt create mode 100644 src/tests/csv/80.txt create mode 100644 src/tests/csv/81.txt create mode 100644 src/tests/csv/82.txt create mode 100644 src/tests/csv/83.txt create mode 100644 src/tests/csv/84.txt create mode 100644 src/tests/csv/85.txt create mode 100644 src/tests/csv/86.txt create mode 100644 src/tests/csv/87.txt create mode 100644 src/tests/csv/88.txt create mode 100644 src/tests/csv/89.txt create mode 100644 src/tests/csv/9.txt create mode 100644 src/tests/csv/90.txt create mode 100644 src/tests/csv/91.txt create mode 100644 src/tests/csv/92.txt create mode 100644 src/tests/csv/93.txt create mode 100644 src/tests/csv/94.txt create mode 100644 src/tests/csv/96.txt create mode 100644 src/tests/csv/97.txt create mode 100644 src/tests/csv/98.txt create mode 100644 src/tests/csv/99.txt delete mode 100644 src/tests/kif/100.kif delete mode 100644 src/tests/kif/1000.kif delete mode 100644 src/tests/kif/200.kif delete mode 100644 src/tests/kif/300.kif delete mode 100644 src/tests/kif/400.kif delete mode 100644 src/tests/kif/500.kif delete mode 100644 src/tests/kif/600.kif delete mode 100644 src/tests/kif/700.kif delete mode 100644 src/tests/kif/800.kif delete mode 100644 src/tests/kif/900.kif diff --git a/src/format/tsca.ts b/src/format/tsca.ts index 3f41545..549689a 100644 --- a/src/format/tsca.ts +++ b/src/format/tsca.ts @@ -1,3 +1,4 @@ +import { machine } from 'node:os' import { Color } from '@/enums/color' import { MetadataKey } from '@/enums/metadata' import { Board } from '@/models/board.dto' @@ -79,19 +80,24 @@ export const TCSA = z.preprocess( ) }, get answer(): TCSV.Move[][] { - return chunk( - object.answercsv - .split('_') - .filter((value) => value.length > 0) - .map((value, index) => { - const [fromX, fromY, toX, toY, promote] = value.split('').map((value) => Number.parseInt(value)) - return Move.parse({ - from: { x: fromX, y: fromY }, - to: { x: toX, y: toY }, - promote: promote === 1 - }) - }), - object.progresscnt + // 手順分岐は全てが同じ長さなら区切り文字がないが、異なる長さが含まれる場合は`_@`で区切られている + const moves_list: string[][] = ( + object.answercsv.includes('@') + ? object.answercsv.split('_@') + : chunk( + object.answercsv.split('_').filter((value) => value.length > 0), + object.progresscnt + ).map((value) => value.join('_')) + ).map((value) => value.split('_').filter((value) => value.length > 0)) + return moves_list.map((moves) => + moves.map((move) => { + const [fromX, fromY, toX, toY, promote] = move.split('').map((value) => Number.parseInt(value)) + return Move.parse({ + from: { x: fromX, y: fromY }, + to: { x: toX, y: toY }, + promote: promote === 1 + }) + }) ) }, get board(): TCSV.Board { @@ -131,15 +137,17 @@ export const TCSA = z.preprocess( // 初期局面に戻す record.goto(0) for (const move of moves) { - const m: TSMove | null = record.position.createMove( - move.from.x === 0 ? Object.values(PieceType)[move.from.y - 1] : new TSSquare(move.from.x, move.from.y), - new TSSquare(move.to.x, move.to.y) - ) + const m: TSMove | null = record.position.createMove(move.piece, new TSSquare(move.to.x, move.to.y)) // 不正な指し手でなければ追加する - if (m !== null) { - m.promote = move.promote - record.append(m) + if (m === null) { + console.error('[盤面]:', object.csv) + console.error('[盤面]:', (this as TCSA).pieces) + console.error('[解答]:', object.answercsv) + console.error('[棋譜]:', exportKIF(record)) + throw new Error(`Invalid move: ${move}`) } + m.promote = move.promote + record.append(m) } // 投了コマンドの追加 record.append(SpecialMoveType.RESIGN) diff --git a/src/models/move.dto.ts b/src/models/move.dto.ts index 3e8858a..c0c8864 100644 --- a/src/models/move.dto.ts +++ b/src/models/move.dto.ts @@ -1,14 +1,43 @@ -import { Color } from 'tsshogi' +import { Color, PieceType, Square } from 'tsshogi' import { z } from 'zod' -export const Move = z.object({ - from: z.object({ - x: z.number().int().min(0).max(9), - y: z.number().int().min(0).max(9) - }), - to: z.object({ - x: z.number().int().min(0).max(9), - y: z.number().int().min(0).max(9) - }), - promote: z.boolean() -}) +export const Move = z + .object({ + from: z.object({ + x: z.number().int().min(0).max(9), + y: z.number().int().min(0).max(9) + }), + to: z.object({ + x: z.number().int().min(0).max(9), + y: z.number().int().min(0).max(9) + }), + promote: z.boolean() + }) + .transform((object) => { + return { + ...object, + get piece(): PieceType | Square { + if (object.from.x === 0) { + switch (object.from.y - 1) { + case 0: + return PieceType.PAWN + case 1: + return PieceType.LANCE + case 2: + return PieceType.KNIGHT + case 3: + return PieceType.SILVER + case 4: + return PieceType.GOLD + case 5: + return PieceType.ROOK + case 6: + return PieceType.BISHOP + default: + throw new Error(`Unexpected piece type: ${object.from.y}`) + } + } + return new Square(object.from.x, object.from.y) + } + } + }) diff --git a/src/tests/csv/0.txt b/src/tests/csv/0.txt new file mode 100644 index 0000000..d767ee5 --- /dev/null +++ b/src/tests/csv/0.txt @@ -0,0 +1 @@ +d=0&workid=0&csv=0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_3401_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0001_2401_0011_3511_0011_0011_3211_&hint=チュートリアル&progresscnt=3&answercsv=24330_32410_05420_&title=チュートリアル&authorname=アライモン&workupdate=2000/8/4[14:41:00]&point=3&level=0&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=24230&marrcsv1=32231&mdescsv1=▽2三玉で失敗する。&manscsv2=34331&marrcsv2=35331&mdescsv2=▽同飛と取られてしまう。 \ No newline at end of file diff --git a/src/tests/csv/1.txt b/src/tests/csv/1.txt new file mode 100644 index 0000000..41a2434 --- /dev/null +++ b/src/tests/csv/1.txt @@ -0,0 +1 @@ +d=0&workid=1&csv=9611_8611_7611_6611_5611_4611_3611_9901_8901_7901_6901_5901_3901_0011_0011_0011_0011_0011_0001_0011_0011_0011_0001_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0001_0011_0011_0011_9711_0011_&hint=歯が欠けているところを狙え&progresscnt=13&answercsv=06980_97870_98880_87770_88780_77670_78680_67770_79780_77870_03790_87970_68670_66671_02980_@06980_97870_98880_87770_88780_77670_78680_67770_79780_77870_03790_87970_02980_&title=よく噛んで食べよう&authorname=市原誠&workupdate=2008/11/03[00:00:00]&point=10&level=10&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/10.txt b/src/tests/csv/10.txt new file mode 100644 index 0000000..ee2ff57 --- /dev/null +++ b/src/tests/csv/10.txt @@ -0,0 +1 @@ +d=0&workid=10&csv=2311_1311_4401_3401_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0001_0011_0011_0011_1411_0011_0011_0011_5111_0001_0511_0011_4302_0011_0011_0011_2111_0011&hint=合駒問題です&progresscnt=9&answercsv=03330_21120_43320_05220_32220_12220_05210_22320_05430_&title=合駒問題です&authorname=アライモン&workupdate=2009/4/2[11:58:00]&point=30&level=9&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/11.txt b/src/tests/csv/11.txt new file mode 100644 index 0000000..4228d77 --- /dev/null +++ b/src/tests/csv/11.txt @@ -0,0 +1 @@ +d=0&workid=11&csv=2211_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_3601_0011_0011_0011_0011_0011_0011_0011_1111_1401_0011_0011_0011_0011_0011_0011_4202_0011_3502_4612_1211_0011&hint=香筋を通そう&progresscnt=9&answercsv=35340_12210_34430_21120_43210_12210_42320_21120_14231_&title=馬と玉のダンス&authorname=市原誠&workupdate=2008/11/29[16:24:00]&point=13&level=7&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/12.txt b/src/tests/csv/12.txt new file mode 100644 index 0000000..9c818b5 --- /dev/null +++ b/src/tests/csv/12.txt @@ -0,0 +1 @@ +d=0&workid=12&csv=4301_3311_2311_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_2401_0011_0011_0011_2111_0011_0011_0011_0001_0001_0011_0011_0011_0011_0001_0011_2211_0011&hint=43歩に惑わされないで&progresscnt=5&answercsv=05120_21120_07310_22310_05320_&title=角と金の手筋&authorname=市原誠&workupdate=2008/11/29[16:29:00]&point=8&level=3&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=05320&marrcsv1=22131&mdescsv1=▽1三玉と逃げられて捕まらない。この退路を防ぐ手段は?&manscsv2=07310&marrcsv2=22311&mdescsv2=これは筋だが▽3一同玉で失敗。以下▲3二金▽同銀▲4二金▽2二玉で1三玉からの脱出を防げない。&manscsv3=05120_21120_05320&marrcsv3=22131&mdescsv3=▽1三玉で上空へ逃げ出される。上へ行かせてはならぬ。&manscsv4=07110&marrcsv4=22131&mdescsv4=▽1三玉で上空へ逃げ出される。上へ行かせてはならぬ。 \ No newline at end of file diff --git a/src/tests/csv/13.txt b/src/tests/csv/13.txt new file mode 100644 index 0000000..493f4d4 --- /dev/null +++ b/src/tests/csv/13.txt @@ -0,0 +1 @@ +d=0&workid=13&csv=1211_2411_2501_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1111_3601_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0001_0011_0011_0011_4102_0011_0011_0011_2211_0011&hint=25歩の意味を考えれば簡単&progresscnt=3&answercsv=41210_22210_05320_&title=香の力で決まる&authorname=市原誠&workupdate=2008/11/30[11:21:00]&point=3&level=2&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=41320&marrcsv1=22131&mdescsv1=▽1三玉で失敗。以下▲3三竜は▽2三香合。▲2三金は▽1四玉で不詰となる。玉を上空へ逃がすと詰ませにくくなる。&manscsv2=36321&marrcsv2=22131&mdescsv2=▽1三玉で失敗。玉を上空へ逃がすと詰ませにくくなる。玉は下段に落とすと詰ませやすい。&manscsv3=41310&marrcsv3=22131&mdescsv3=▽1三玉で失敗。以下▲3三竜は▽2三香合。▲2三金は▽1四玉で不詰となる。玉を上空へ逃がすと詰ませにくくなる。&manscsv4=05330&marrcsv4=22131&mdescsv4=▽1三玉で失敗。玉を上空へ逃がすと詰ませにくくなる。&manscsv5=05230&marrcsv5=22231&mdescsv5=▽2三同玉で失敗。玉を上空へ逃がすと詰ませにくくなる。以下▽2一竜なら▲2二香合で詰まない。&manscsv6=05330&marrcsv6=22131&mdescsv6=▽1三玉で失敗。玉を上空へ逃がすと詰ませにくくなる。 \ No newline at end of file diff --git a/src/tests/csv/14.txt b/src/tests/csv/14.txt new file mode 100644 index 0000000..0f54cde --- /dev/null +++ b/src/tests/csv/14.txt @@ -0,0 +1 @@ +d=0&workid=14&csv=3211_1411_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1211_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0001_0011_0011_0011_4202_0011_4102_0011_1311_0011&hint=馬道を通せ&progresscnt=3&answercsv=42330_32330_05230_&title=犠牲心が大事&authorname=市原誠&workupdate=2008/11/30[11:28:00]&point=3&level=1&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=05230&marrcsv1=13231&mdescsv1=▽2三同玉に▲3二馬は▽2四玉▲3三竜▽2五玉と上空へ逃がしてしまう。▽2四玉を防ぐ一手は?。&manscsv2=41310&marrcsv2=13241&mdescsv2=▽2四玉で失敗する。玉を上へ逃がすと捕まりにくくなる。▽2四玉を防ぐ一手は?。 \ No newline at end of file diff --git a/src/tests/csv/15.txt b/src/tests/csv/15.txt new file mode 100644 index 0000000..0aa4a03 --- /dev/null +++ b/src/tests/csv/15.txt @@ -0,0 +1 @@ +d=0&workid=15&csv=2311_3411_2601_1601_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1111_0011_0011_0011_0011_0011_0011_0011_2201_3601_0011_0011_0011_0011_0011_0011_0001_0011_3312_0011_2411_0011&hint=飛車は捨てる&progresscnt=3&answercsv=06140_11140_26250_&title=シャレた決め手&authorname=市原誠&workupdate=2008/11/30[12:1:00]&point=3&level=2&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=26250&marrcsv1=24141&mdescsv1=▽1四玉で1五には相手の馬が利いてくるため失敗。&manscsv2=06250&marrcsv2=24141&mdescsv2=▽1四玉と逃がし、次の▲1五歩は▽同馬とされて失敗する。飛車の打ち場所を深く考えてみよう。&manscsv3=36250&marrcsv3=24351&mdescsv3=▽3五玉で広いほうへ逃がしてしまう。相手を狭いほうへ誘ってみよう。&manscsv4=06140_11140_36250&marrcsv4=24351&mdescsv4=▽3五玉で広いほうへ逃がしてしまう。歩を「打って」詰ますのは反則だが、歩を動かして詰ますのは反則にならない。 \ No newline at end of file diff --git a/src/tests/csv/16.txt b/src/tests/csv/16.txt new file mode 100644 index 0000000..914e77f --- /dev/null +++ b/src/tests/csv/16.txt @@ -0,0 +1 @@ +d=0&workid=16&csv=0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_6301_4301_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_5611_0001_0011_0011_0001_0011_6412_4412_5111_0011&hint=左右対称中央に手アリ&progresscnt=3&answercsv=06540_44540_05620_&title=馬の守備を回避&authorname=市原誠&workupdate=2008/11/30[12:14:00]&point=3&level=4&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=06410&marrcsv1=51521&mdescsv1=▽5二玉以下、▲4二飛成は▽6三玉で失敗。▲6二金は▽5三玉で失敗する。馬の守備をいなしてみよう。&manscsv2=05520&marrcsv2=51521&mdescsv2=▽5二同玉以下、▽4三玉または▽6三玉からの逃れを同時に防げない。▲6二金もしくは▲4二金を狙うためには...?&manscsv3=06530&marrcsv3=44531&mdescsv3=狙いは良いが▽5三同馬で守備力が変わってない。&manscsv4=05420&marrcsv4=64421&mdescsv4=馬の利きを生かされて詰まない。この馬をいなす手順がある。&manscsv5=06520&marrcsv5=51521&mdescsv5=▽5二同玉以下、▽4三玉または▽6三玉からの逃れを同時に防げない。▲6二金もしくは▲4二金を狙うためには...?&manscsv6=05410&marrcsv6=51521&mdescsv6=▽5二玉で失敗。以下▲5一飛は▽6三玉で詰まないし、▲5一飛以外は全て▽5三玉から逃げられる。 \ No newline at end of file diff --git a/src/tests/csv/17.txt b/src/tests/csv/17.txt new file mode 100644 index 0000000..4cc56c1 --- /dev/null +++ b/src/tests/csv/17.txt @@ -0,0 +1 @@ +d=0&workid=17&csv=0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_2111_0011_0011_0011_0011_0011_0011_0011_4411_0001_0011_0011_1101_1301_4112_0011_2211_0011&hint=どちらかは捨てる&progresscnt=5&answercsv=11121_22310_13331_21330_05210_&title=どちらかは捨てる&authorname=市原誠&workupdate=2008/11/30[12:19:00]&point=6&level=3&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=11211&marrcsv1=22211&mdescsv1=▽同玉で▲2三飛成は馬の利きがあるのでできない。&manscsv2=13121&marrcsv2=22331&mdescsv2=▽3三玉で上空へ逃がしてしまう。となると使うべき飛車は…&manscsv3=05330&marrcsv3=22311&mdescsv3=▽3一玉で不詰め。以下▲2一飛成▽同玉とすすめると次の▲2三飛成が馬で取られてしまうため失敗。 \ No newline at end of file diff --git a/src/tests/csv/18.txt b/src/tests/csv/18.txt new file mode 100644 index 0000000..e222ab1 --- /dev/null +++ b/src/tests/csv/18.txt @@ -0,0 +1 @@ +d=0&workid=18&csv=4311_3311_2311_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_5101_0001_0011_0011_3111_0001_0011_0011_1102_0011_0011_0011_3211_0011&hint=銀を放り捨てる&progresscnt=3&answercsv=04410_32410_05420_&title=31金を動けなくする&authorname=市原誠&workupdate=2008/11/30[12:22:00]&point=5&level=3&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=04210&marrcsv1=32411&mdescsv1=これは取ってくれない。▽4一玉で失敗する。&manscsv2=05420&marrcsv2=31421&mdescsv2=▽4二同金で失敗する。以下▲2一銀には▽4一玉で逃れる。竜のにらみを最大限に生かすには?&manscsv3=05220&marrcsv3=32411&mdescsv3=これは取ってくれず▽4一玉で失敗する。以下▲3一竜▽5二玉で大海に逃がす。 \ No newline at end of file diff --git a/src/tests/csv/19.txt b/src/tests/csv/19.txt new file mode 100644 index 0000000..2af192d --- /dev/null +++ b/src/tests/csv/19.txt @@ -0,0 +1 @@ +d=0&workid=19&csv=0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_2202_2512_3202_3501_1511_0011&hint=竜と玉を引き離す&progresscnt=3&answercsv=32140_15140_22130_32140_15140_22120_&title=竜と玉を引き離す&authorname=市原誠&workupdate=2008/11/30[12:26:00]&point=6&level=2&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=22130&marrcsv1=14214&mdescsv1=▽1四歩と合駒されて詰まない。相手は盤上にない駒全て持っています。相手竜を翻弄する手は?&manscsv2=22120&marrcsv2=14214&mdescsv2=▽1四歩と合駒されて詰まない。相手は盤上にない駒全て持っています。相手竜を翻弄する手は?&manscsv3=22250&marrcsv3=15251&mdescsv3=▽同玉で広くなってしまう。竜の筋を最大限に生かす初手がある。&manscsv4=35240&marrcsv4=15261&mdescsv4=くるっと▽2六玉と広い場所へ逃げられると困るね。竜の筋を最大限に生かす初手がある。&manscsv5=32330&marrcsv5=15161&mdescsv5=すっと▽1六玉と広い場所へ逃げられる。以下▲2五竜▽同玉▲2四馬▽3六玉で失敗。竜の筋を最大限に生かす初手がある。 \ No newline at end of file diff --git a/src/tests/csv/2.txt b/src/tests/csv/2.txt new file mode 100644 index 0000000..971a8fb --- /dev/null +++ b/src/tests/csv/2.txt @@ -0,0 +1 @@ +d=0&workid=2&csv=0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0001_0011_0011_0011_3211_2401_3312_3502_1311_0011&hint=両王手を決めろ&progresscnt=3&answercsv=24231_13230_05130_24230_13230_05130_&title=飛角図式の両王手&authorname=市原誠&workupdate=2008/11/16[13:37:00]&point=4&level=2&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=24221&marrcsv1=13221&mdescsv1=▽同玉と取られて詰まない。相手がもっとも詰みやすい場所をさがそう。&manscsv2=24250&marrcsv2=24214&mdescsv2=▽2四歩と受けられて詰まない。飛車を捨てて馬の勢力範囲に玉を呼ぼう&manscsv3=05230&marrcsv3=33231&mdescsv3=▽同馬で詰まない。以下▲同飛成▽同玉は持ち駒角一枚では詰まない。&manscsv4=24140&marrcsv4=13141&mdescsv4=▽同玉となって、▲1三金は▽1五玉。▲2五金は▽2三玉で詰まない。飛車を捨てる筋は正しい。&manscsv5=05140&marrcsv5=13121&mdescsv5=▽1二玉と下がられて、馬が使えなくなる。馬を最大限に活かしたい。&manscsv6=24211&marrcsv6=24214&mdescsv6=▽2四歩と受けられて詰まない。飛車を捨てて馬の勢力範囲に玉を呼ぼう \ No newline at end of file diff --git a/src/tests/csv/20.txt b/src/tests/csv/20.txt new file mode 100644 index 0000000..b770e6d --- /dev/null +++ b/src/tests/csv/20.txt @@ -0,0 +1 @@ +d=0&workid=20&csv=1111_2501_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_3301_0001_0011_0011_0011_0011_3211_0001_1211_0011&hint=角には角&progresscnt=3&answercsv=07210_12210_05220_&title=角には角&authorname=市原誠&workupdate=2008/11/30[12:29:00]&point=5&level=1&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=07230&marrcsv1=32231&mdescsv1=▽2三同角で失敗。以下▲2二金打は筋だが▽1三玉▲2三金下▽1四玉で不詰。&manscsv2=07340&marrcsv2=23234&mdescsv2=▽2三桂合(限定)で詰まない。以下▲同角成▽同角▲2二金打▽1三玉で失敗する。&manscsv3=05220&marrcsv3=12131&mdescsv3=▽1三玉で失敗する。以下▲3四角と打って追撃しても▽1四玉と上へ上へと逃がしてしまう。「玉は下段へ落とせ」という格言があります。 \ No newline at end of file diff --git a/src/tests/csv/21.txt b/src/tests/csv/21.txt new file mode 100644 index 0000000..c588812 --- /dev/null +++ b/src/tests/csv/21.txt @@ -0,0 +1 @@ +d=0&workid=21&csv=5211_2311_5501_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_2111_5311_3401_4501_0011_0011_0011_0011_0001_0011_0011_0011_4111_0001_0011_0011_3211_0011&hint=桂馬利きを見極めよう&progresscnt=3&answercsv=06310_32310_05220_&title=桂馬利きを見極めよう&authorname=市原誠&workupdate=2008/11/30[12:34:00]&point=7&level=3&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=06220&marrcsv1=32431&mdescsv1=▽4三玉で失敗。以下▲2三飛成は▽4四玉だし、▲5四金は▽3四玉で脱出される。&manscsv2=05330&marrcsv2=21331&mdescsv2=▽3三同桂で失敗。上部に行かせない発想は正しい。&manscsv3=06330&marrcsv3=21331&mdescsv3=▽3三同桂で失敗。上部に行かせない発想は正しい。&manscsv4=06420&marrcsv4=41421&mdescsv4=▽同飛▲同桂成▽同玉で絶望的。もっと軽い攻めがある。 \ No newline at end of file diff --git a/src/tests/csv/22.txt b/src/tests/csv/22.txt new file mode 100644 index 0000000..70fea85 --- /dev/null +++ b/src/tests/csv/22.txt @@ -0,0 +1 @@ +d=0&workid=22&csv=0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_2501_0011_0011_0011_2111_0011_0011_0011_1111_2301_0001_0011_2411_0011_0011_0011_0001_0011_0011_0011_1311_0011&hint=銀には紐がつく&progresscnt=5&answercsv=04140_24140_06120_11120_23220_&title=銀には紐がつく&authorname=市原誠&workupdate=2008/11/30[12:37:00]&point=8&level=4&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=06140&marrcsv1=13231&mdescsv1=取ってくれたら詰むが、▽2三玉で不詰。2三の銀を守ろう。&manscsv2=04220&marrcsv2=13231&mdescsv2=▽2三玉で不詰。2三の銀を守ろう。&manscsv3=06120&marrcsv3=13231&mdescsv3=取ってくれたら詰むが、▽2三玉で不詰。2三の銀を守ろう。 \ No newline at end of file diff --git a/src/tests/csv/23.txt b/src/tests/csv/23.txt new file mode 100644 index 0000000..f7a3f07 --- /dev/null +++ b/src/tests/csv/23.txt @@ -0,0 +1 @@ +d=0&workid=23&csv=1411_2501_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_3211_0011_0011_0011_0011_0011_0011_0011_0001_0011_0011_0011_0001_0011_0011_0011_2411_0001_1102_5611_1311_0011&hint=飛角を翻弄する&progresscnt=5&answercsv=04220_24220_06230_13230_05240_&title=飛角を翻弄する&authorname=市原誠&workupdate=2008/11/30[12:42:00]&point=9&level=6&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=04220_24220_06120&marrcsv1=56121&mdescsv1=▽同角で失敗。 \ No newline at end of file diff --git a/src/tests/csv/24.txt b/src/tests/csv/24.txt new file mode 100644 index 0000000..cbb2f3a --- /dev/null +++ b/src/tests/csv/24.txt @@ -0,0 +1 @@ +d=0&workid=24&csv=3311_1411_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0001_0011_0011_0011_0001_0011_1301_3411_1211_0011&hint=上に逃がさない&progresscnt=3&answercsv=06110_12110_05220_&title=上に逃がさない&authorname=市原誠&workupdate=2008/11/30[12:45:00]&point=5&level=4&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=06220&marrcsv1=12131&mdescsv1=▽1三玉と逃げられて▲1二金は▽同角と取られてしまう。&manscsv2=05220&marrcsv2=12131&mdescsv2=▽1三玉で失敗。以下▲2三飛や▲1二飛は▽同角で不詰。 \ No newline at end of file diff --git a/src/tests/csv/25.txt b/src/tests/csv/25.txt new file mode 100644 index 0000000..a5ca596 --- /dev/null +++ b/src/tests/csv/25.txt @@ -0,0 +1 @@ +d=0&workid=25&csv=4501_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_5101_1201_5311_0011_0011_0011_0011_0011_2101_0001_0011_0011_3211_0011&hint=空間へ捨てる&progresscnt=3&answercsv=06330_32330_21231_&title=空間へ捨てる&authorname=市原誠&workupdate=2008/11/30[12:49:00]&point=7&level=5&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=21231&marrcsv1=32411&mdescsv1=▽4一玉と逃げられて、以下▲4三竜は▽4二歩合で失敗。▲4二飛▽同銀▲同銀成▽同玉は駒が足らない。4一へ逃がさないためのうまい初手があるよ。&manscsv2=12231&marrcsv2=32431&mdescsv2=飛車をおとりにしたいい手だが、▽4三玉で失敗する。この4三玉を防ぐ手とは...?&manscsv3=06310&marrcsv3=32431&mdescsv3=さすがに重い手で、▽4三玉で失敗する。この4三玉を防ぐ手とは...?&manscsv4=06420&marrcsv4=53421&mdescsv4=▽同銀で進展がない。思い切りのよい捨て駒が必要となる。 \ No newline at end of file diff --git a/src/tests/csv/26.txt b/src/tests/csv/26.txt new file mode 100644 index 0000000..a72ae37 --- /dev/null +++ b/src/tests/csv/26.txt @@ -0,0 +1 @@ +d=0&workid=26&csv=3202_1211_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_2111_0011_0011_0011_0011_0011_0011_0011_0001_0011_3101_0011_1111_0011&hint=どっちが大事なの&progresscnt=3&answercsv=31221_21220_06210_31220_21220_06210_&title=どっちが大事なの&authorname=市原誠&workupdate=2008/11/30[12:51:00]&point=2&level=1&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/27.txt b/src/tests/csv/27.txt new file mode 100644 index 0000000..b951f3b --- /dev/null +++ b/src/tests/csv/27.txt @@ -0,0 +1 @@ +d=0&workid=27&csv=3311_0001_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1111_0011_0011_0011_1501_0011_0011_0011_0001_0011_0011_0011_2401_0011_0011_0011_1211_0011&hint=飛の運命は&progresscnt=5&answercsv=01130_12130_15140_13240_05250_&title=飛の運命は&authorname=市原誠&workupdate=2008/11/30[12:55:00]&point=7&level=5&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=05220&marrcsv1=12130&mdescsv1=▽1三玉で詰まない。以下▲1四歩は打歩詰の反則だし、▲2三飛成は▽同桂と取られて失敗する。 \ No newline at end of file diff --git a/src/tests/csv/28.txt b/src/tests/csv/28.txt new file mode 100644 index 0000000..9911556 --- /dev/null +++ b/src/tests/csv/28.txt @@ -0,0 +1 @@ +d=0&workid=28&csv=0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0001_0011_0011_0011_0011_0011_0011_0011_4401_4511_5411_5501_1111_0011&hint=どんなアキ王手&progresscnt=3&answercsv=44421_45550_04120_44420_45550_04120_&title=どんなアキ王手&authorname=市原誠&workupdate=2008/11/30[12:58:00]&point=4&level=3&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=44140&marrcsv1=11211&mdescsv1=▽2一玉とかわされる。以下▲2二銀や▲1一竜は▽3二玉で失敗。&manscsv2=44411&marrcsv2=11121&mdescsv2=▽1二玉とかわされる。以下▲3二竜は▽同角。 \ No newline at end of file diff --git a/src/tests/csv/29.txt b/src/tests/csv/29.txt new file mode 100644 index 0000000..0c45b14 --- /dev/null +++ b/src/tests/csv/29.txt @@ -0,0 +1 @@ +d=0&workid=29&csv=3111_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1111_0011_0011_0011_2111_0011_0011_0011_0011_0011_0011_0011_0001_0011_0011_0011_4301_0011_3301_0011_1311_0011&hint=あわてず攻めよう&progresscnt=5&answercsv=05240_13120_33221_12220_24230_05240_13120_33221_12220_43231_&title=あわてず攻めよう&authorname=市原誠&workupdate=2008/11/30[13:2:00]&point=5&level=4&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=33221&marrcsv1=13241&mdescsv1=▽2四玉とかわされる。以下▲2三飛成は▽3五玉で大海へ。&manscsv2=33151&marrcsv2=33224&mdescsv2=▽3三香合で失敗。攻め駒が遠いと玉の守りも多彩となってしまう。手厚い攻めが必要。&manscsv3=33111&marrcsv3=33224&mdescsv3=▽3三香合▲1九香▽1四歩合で失敗。攻め駒が遠いと玉の守りも多彩となってしまう。手厚い攻めが必要。&manscsv4=33241&marrcsv4=13241&mdescsv4=▽同玉で絶望。ここでは手厚い攻めが必要。&manscsv5=05240_13120_43421&marrcsv5=32224&mdescsv5=▽3二香合で失敗。飛車をもっとうまく活用できる手がある。 \ No newline at end of file diff --git a/src/tests/csv/3.txt b/src/tests/csv/3.txt new file mode 100644 index 0000000..72cfcce --- /dev/null +++ b/src/tests/csv/3.txt @@ -0,0 +1 @@ +d=0&workid=3&csv=0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_3611_1602_1101_1502_1211_0011&hint=取られてもいいです&progresscnt=3&answercsv=15330_36160_33220_15330_36160_11221_&title=11角との連動&authorname=市原誠&workupdate=2008/11/18[2:48:00]&point=2&level=1&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=15240&marrcsv1=36161&mdescsv1=▽1六飛で失敗。この竜が取られても大丈夫なように攻めよう。 \ No newline at end of file diff --git a/src/tests/csv/30.txt b/src/tests/csv/30.txt new file mode 100644 index 0000000..e09ae8b --- /dev/null +++ b/src/tests/csv/30.txt @@ -0,0 +1 @@ +d=0&workid=30&csv=0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1111_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_3301_3511_1201_3401_2411_0011&hint=大駒の触手をイかす&progresscnt=3&answercsv=33131_24130_12231_33131_24130_34231_&title=大駒の触手を生かす&authorname=市原誠&workupdate=2008/11/30[13:5:00]&point=4&level=2&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=33231&marrcsv1=24151&mdescsv1=▽1五玉で詰まない。2五には相手の飛車が利いている。1五に行かせないための好手とは?&manscsv2=12231&marrcsv2=24151&mdescsv2=▽1五玉で詰まない。1五に行かせないための好手とは?&manscsv3=34231&marrcsv3=24251&mdescsv3=▽2五玉で上空が広すぎて失敗。上空に逃がさない手がある。 \ No newline at end of file diff --git a/src/tests/csv/31.txt b/src/tests/csv/31.txt new file mode 100644 index 0000000..ce92ca8 --- /dev/null +++ b/src/tests/csv/31.txt @@ -0,0 +1 @@ +d=0&workid=31&csv=5102_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_5401_4601_0011_0011_5311_0011_0011_0011_0011_0011_0011_0011_0011_0011_3301_3502_4311_0011&hint=上下からウマ攻め&progresscnt=3&answercsv=35440_53440_33421_&title=上下からウマ攻め&authorname=須藤大輔&workupdate=2008/12/6[23:12:00]&point=2&level=4&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=33421&marrcsv1=53421&mdescsv1=▽同銀で以下3二への退路を防げない。初手は勇気を使う手。&manscsv2=35340&marrcsv2=43321&mdescsv2=▽3二玉で捕まらない。3二に逃げられたときの対処を考えて初手を指してみよう。&manscsv3=54421&marrcsv3=43331&mdescsv3=▽3三玉で捕まらない。以下3四馬は2二玉で失敗。上下から包むような寄せがある。&manscsv4=33441&marrcsv4=43321&mdescsv4=▽3二玉で捕まらない。3二に逃げられたときの対処を考えて初手を指してみよう。 \ No newline at end of file diff --git a/src/tests/csv/32.txt b/src/tests/csv/32.txt new file mode 100644 index 0000000..7a0665e --- /dev/null +++ b/src/tests/csv/32.txt @@ -0,0 +1 @@ +d=0&workid=32&csv=4311_3401_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_2211_3511_0011_0011_1501_0001_0011_0011_0001_0011_2101_0011_2311_0011&hint=34歩を守るには&progresscnt=3&answercsv=06130_23130_05140_&title=34歩を守るには&authorname=須藤大輔&workupdate=2008/12/6[23:8:00]&point=10&level=5&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=06330&marrcsv1=22331&mdescsv1=▽3三同銀▲同歩成▽同玉で詰まない。&manscsv2=05330&marrcsv2=22331&mdescsv2=▽3三同銀▲同歩成▽同玉で詰まない。&manscsv3=21121&marrcsv3=23121&mdescsv3=▽同玉で絶望的となる。頭金を狙ってみよう&manscsv4=05240&marrcsv4=35241&mdescsv4=▽同銀で絶望的となる。うまい捨て駒で頭金を狙ってみよう&manscsv5=06240&marrcsv5=35241&mdescsv5=▽同銀で絶望的となる。うまい捨て駒で頭金を狙ってみよう \ No newline at end of file diff --git a/src/tests/csv/33.txt b/src/tests/csv/33.txt new file mode 100644 index 0000000..1acfd98 --- /dev/null +++ b/src/tests/csv/33.txt @@ -0,0 +1 @@ +d=0&workid=33&csv=1411_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_2111_2501_0011_0011_3111_0011_0011_0011_0011_0011_0011_0011_0001_0011_0011_0011_3211_0001_1102_0011_1311_0011&hint=ここでいう焦点は&progresscnt=3&answercsv=06330_32330_05120_&title=焦点を見抜け&authorname=須藤大輔&workupdate=2008/12/6[23:10:00]&point=7&level=4&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=06230&marrcsv1=21231&mdescsv1=▽同香で失敗。以下同香成同玉で広くて捕まらない。&manscsv2=06120&marrcsv2=32121&mdescsv2=▽同飛で失敗。以下同馬同玉で捕まらない。焦点を見抜こう。&manscsv3=05230&marrcsv3=21231&mdescsv3=▽同香で失敗。ダイレクトに焦点に合わせずに...&manscsv4=05120&marrcsv4=32121&mdescsv4=▽同飛で失敗。依然として2三に打てない。&manscsv5=05240&marrcsv5=21241&mdescsv5=▽同香で失敗。1二には飛車が利いている。 \ No newline at end of file diff --git a/src/tests/csv/34.txt b/src/tests/csv/34.txt new file mode 100644 index 0000000..06e46f6 --- /dev/null +++ b/src/tests/csv/34.txt @@ -0,0 +1 @@ +d=0&workid=34&csv=3311_2311_1411_1701_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1311_0011_0011_0011_0001_0011_0011_0011_0001_0011_0011_0011_3601_0011_0011_0011_2611_0011_0001_0011_1511_0011&hint=飛車に気をつけろ(解説動画あり)&progresscnt=5&answercsv=07240_23240_04160_26160_03270_&title=飛車に気をつけろ(解説動画あり)&authorname=須藤大輔&workupdate=2008/12/6[23:19:00]&point=9&level=5&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=07240_23240_03270&marrcsv1=26271&mdescsv1=▽同飛「成」!で失敗する。▲1六銀には▽同竜とされてしまう。&manscsv2=03270&marrcsv2=26271&mdescsv2=▽同飛成で守備力があがり、失敗する。&manscsv3=04160&marrcsv3=15241&mdescsv3=▽2四玉で失敗する。銀を持っていれば▲3五銀で詰むのだが・・・。 \ No newline at end of file diff --git a/src/tests/csv/35.txt b/src/tests/csv/35.txt new file mode 100644 index 0000000..74fd944 --- /dev/null +++ b/src/tests/csv/35.txt @@ -0,0 +1 @@ +d=0&workid=35&csv=1311_2611_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_2311_0011_0011_0011_0011_0011_0011_0011_2111_0001_0011_0011_0011_0011_0011_0011_3301_0011_4502_1612_2511_0011&hint=初手にワナがある&progresscnt=5&answercsv=45360_25150_04240_15240_33351_&title=裏拳をかます&authorname=須藤大輔&workupdate=2008/12/6[23:23:00]&point=15&level=5&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=33351&marrcsv1=25141&mdescsv1=迫っているようだが▽1四玉で手がない。1四のスポットをケアしていこう \ No newline at end of file diff --git a/src/tests/csv/36.txt b/src/tests/csv/36.txt new file mode 100644 index 0000000..b8e4885 --- /dev/null +++ b/src/tests/csv/36.txt @@ -0,0 +1 @@ +d=0&workid=36&csv=1211_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1111_0011_0011_0011_4111_0011_0011_0011_3101_4401_0011_0011_0001_0011_0011_0011_2411_0011_5402_0001_2311_0011&hint=玉と飛車を混乱させる&progresscnt=5&answercsv=54320_23320_07140_24140_05220_&title=角達の暗躍&authorname=須藤大輔&workupdate=2008/12/6[23:26:00]&point=13&level=7&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/37.txt b/src/tests/csv/37.txt new file mode 100644 index 0000000..944576e --- /dev/null +++ b/src/tests/csv/37.txt @@ -0,0 +1 @@ +d=0&workid=37&csv=1411_3611_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_3311_3501_1701_0001_0011_0011_0011_0011_0011_0011_1301_1512_2511_0011&hint=手順を見極めよう&progresscnt=5&answercsv=04340_33340_13241_15240_35260_&title=いぶし銀がしぶい&authorname=須藤大輔&workupdate=2008/12/6[23:33:00]&point=15&level=6&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/38.txt b/src/tests/csv/38.txt new file mode 100644 index 0000000..ae981ce --- /dev/null +++ b/src/tests/csv/38.txt @@ -0,0 +1 @@ +d=0&workid=38&csv=0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_3401_0011_0011_0011_0001_0011_0011_0011_3301_0011_0011_0011_0001_0011_0011_0011_1111_1311_3111_0011_2111_0011&hint=ナマ大駒の弱点を突け&progresscnt=5&answercsv=05220_31220_33320_21120_03240_&title=飛角の目をかいくぐれ&authorname=須藤大輔&workupdate=2008/12/6[23:37:00]&point=10&level=6&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/39.txt b/src/tests/csv/39.txt new file mode 100644 index 0000000..47f4b2b --- /dev/null +++ b/src/tests/csv/39.txt @@ -0,0 +1 @@ +d=0&workid=39&csv=0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_7301_3301_0011_0011_0001_0001_0001_0011_0011_0011_5212_0011_5111_0011&hint=馬をずらす&progresscnt=7&answercsv=05410_51410_05320_41510_33420_52420_05620_05410_51410_05320_41510_33421_52420_05620_05610_51610_05720_61510_73620_52620_05420_05610_51610_05720_61510_73621_52620_05420_&title=ふんぞり返った馬&authorname=須藤大輔&workupdate=2008/12/6[23:42:00]&point=18&level=9&arrayflg=1&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/4.txt b/src/tests/csv/4.txt new file mode 100644 index 0000000..ce1897f --- /dev/null +++ b/src/tests/csv/4.txt @@ -0,0 +1 @@ +d=0&workid=4&csv=3411_2411_1411_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_4401_0011_0011_0011_1301_0011_0011_0011_3311_0011_0011_0011_0011_0011_0011_0011_0001_0011_4302_0011_1211_0011&hint=玉を飛び道具で挟め&progresscnt=5&answercsv=06110_12230_43320_23320_11211_&title=玉を飛び道具で挟む&authorname=アライモン&workupdate=2008/11/18[3:15:00]&point=3&level=2&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=43210&marrcsv1=12231&mdescsv1=▽1三玉なら詰むが、▽2三玉とかわされて詰まない。一番詰みやすい場所はどこだろう?&manscsv2=06110_12230_11211&marrcsv2=22224&mdescsv2=▽2二香合とされて失敗。以下▲3二馬は▽1三玉。&manscsv3=06320&marrcsv3=22224&mdescsv3=▽2二香合とされて失敗。※相手は盤上に無い駒を全て持っています&manscsv4=06220&marrcsv4=12221&mdescsv4=▽同玉▲2一馬▽1三玉で失敗する。飛車が取られたらすぐに詰むようにしたい。&manscsv5=06420&marrcsv5=33421&mdescsv5=▽同銀で詰まない。飛車を捨てるのは正しいが、取られたときに詰むようにしよう。&manscsv6=06110_12230_43330&marrcsv6=43331&mdescsv6=取ると4四からの脱出が防げなくなる。相手の駒は脱出路を塞いでいることもある。 \ No newline at end of file diff --git a/src/tests/csv/40.txt b/src/tests/csv/40.txt new file mode 100644 index 0000000..cd90223 --- /dev/null +++ b/src/tests/csv/40.txt @@ -0,0 +1 @@ +d=0&workid=40&csv=1611_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_2401_1511_0011_0011_0001_0011_0011_0011_2301_0011_0011_0011_0011_0011_0011_0011_0001_0011_1201_3611_1311_0011&hint=埋め立てろ&progresscnt=7&answercsv=03250_36250_23141_25140_06230_13120_23211_12130_21220_@03250_36250_23141_25140_06230_13120_23221_&title=埋立工事実施&authorname=須藤大輔&workupdate=2008/12/6[23:46:00]&point=17&level=8&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=23141&marrcsv1=13141&mdescsv1=▽1四同玉で失敗。 \ No newline at end of file diff --git a/src/tests/csv/41.txt b/src/tests/csv/41.txt new file mode 100644 index 0000000..dfa5a9e --- /dev/null +++ b/src/tests/csv/41.txt @@ -0,0 +1 @@ +d=0&workid=41&csv=2311_1311_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1501_0011_0011_0011_2111_0011_0011_0011_0011_0011_0011_0011_4201_0011_0011_0011_3501_0011_0011_0011_2211_0011&hint=慌てると後悔する(解説動画あり)&progresscnt=7&answercsv=35320_22110_15130_21130_01120_11210_42310_&title=慌てると後悔する(解説動画あり)&authorname=スドファエ&workupdate=2008/12/7[16:14:00]&point=8&level=5&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=35321&marrcsv1=22111&mdescsv1=▽1一玉とされ、以下▲1三香不成▽同桂に▲1二歩が打歩詰となって失敗する。&manscsv2=42320&marrcsv2=22121&mdescsv2=▽1二玉で詰まない。この作品は初手に妙手があります。&manscsv3=35311&marrcsv3=22121&mdescsv3=▽1二玉で詰まない。この作品は初手に妙手があります。&manscsv4=15131&marrcsv4=22131&mdescsv4=▽同玉で詰まない。この作品は実戦ではあまり見かけない妙手があります。&manscsv5=35331&marrcsv5=21331&mdescsv5=▽同桂で詰まない。この作品は実戦ではあまり見かけない妙手があります。 \ No newline at end of file diff --git a/src/tests/csv/42.txt b/src/tests/csv/42.txt new file mode 100644 index 0000000..8c0bd67 --- /dev/null +++ b/src/tests/csv/42.txt @@ -0,0 +1 @@ +d=0&workid=42&csv=0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_2111_1111_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0001_0011_0011_0011_0001_0001_3111_3202_1211_0011&hint=豊富な持ち駒を生かす&progresscnt=5&answercsv=06220_21220_05130_12130_06140_&title=豊富な持ち駒を生かす&authorname=市原誠&workupdate=2008/12/15[8:4:00]&point=3&level=2&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=06130&marrcsv1=31131&mdescsv1=▽同角で詰まない。以下▲2二飛は▽同香となって届かないし、▲2三金も▽同香▲2二飛▽同角となるので進展がない。&manscsv2=06140&marrcsv2=13214&mdescsv2=▽1四歩合で失敗。以下▲2二飛や▲2三金は同香で詰まないし、▲同飛成も▽同角で届かない。&manscsv3=05220&marrcsv3=31221&mdescsv3=▽同角で失敗。以下▲1三飛と攻めてもまたしても角で取られて進展しない。 \ No newline at end of file diff --git a/src/tests/csv/43.txt b/src/tests/csv/43.txt new file mode 100644 index 0000000..a160cee --- /dev/null +++ b/src/tests/csv/43.txt @@ -0,0 +1 @@ +d=0&workid=43&csv=0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_3501_0011_0011_0011_4111_2111_1301_0011_3411_0011_0011_0011_0001_0001_3101_0011_3211_0011&hint=美しき連続捨駒&progresscnt=7&answercsv=06120_21120_06220_32330_22421_41420_31221_&title=美しき連続捨駒&authorname=市原誠&workupdate=2008/12/20[20:54:00]&point=15&level=6&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/44.txt b/src/tests/csv/44.txt new file mode 100644 index 0000000..8abc5e8 --- /dev/null +++ b/src/tests/csv/44.txt @@ -0,0 +1 @@ +d=0&workid=44&csv=1311_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1111_3311_0001_0011_6211_0011_0011_0011_0011_0011_0011_0011_0001_0011_5111_1401_3111_0011&hint=11に居る駒がヒント&progresscnt=7&answercsv=06320_31210_32121_21120_03240_12210_14321_&title=11に居る駒がヒント&authorname=アライモン&workupdate=2008/12/29[22:19:00]&point=12&level=6&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/45.txt b/src/tests/csv/45.txt new file mode 100644 index 0000000..d9a9188 --- /dev/null +++ b/src/tests/csv/45.txt @@ -0,0 +1 @@ +d=0&workid=45&csv=4511_0001_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_2111_3501_0011_0011_0011_0011_0011_0011_0001_0011_0011_0011_0001_0011_3111_0001_1311_0011&hint=角のために犠牲にする駒は?&progresscnt=13&answercsv=06230_13120_23221_12220_05230_22110_23120_11120_07340_12110_01120_11220_35231_06230_13120_23221_12220_05230_22110_23120_11120_07340_12110_01120_11220_34231_06230_13120_23220_12220_05230_22110_23120_11120_07340_12110_01120_11220_35231_06230_13120_23220_12220_05230_22110_23120_11120_07340_12110_01120_11220_34231_&title=角のために犠牲にする駒は?&authorname=市原誠&workupdate=2009/1/1[12:4:00]&point=45&level=20&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/46.txt b/src/tests/csv/46.txt new file mode 100644 index 0000000..07d135e --- /dev/null +++ b/src/tests/csv/46.txt @@ -0,0 +1 @@ +d=0&workid=46&csv=0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1211_0011_0011_0011_0001_0011_0011_0011_3101_0001_0011_0011_2311_0001_0011_0011_6101_0011_0011_0011_1111_0011&hint=陰からスゴイ睨み&progresscnt=5&answercsv=04220_23220_05210_22210_03230_&title=陰からスゴイ睨み&authorname=ゴルゴ40&workupdate=2009/1/13[2:44:00]&point=5&level=3&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/47.txt b/src/tests/csv/47.txt new file mode 100644 index 0000000..8e7f132 --- /dev/null +++ b/src/tests/csv/47.txt @@ -0,0 +1 @@ +d=0&workid=47&csv=3411_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1601_0011_0011_0011_3101_3311_0011_0011_0011_0011_0011_0011_2101_0011_4202_0011_1211_0011&hint=どの駒を押し売りする?&progresscnt=7&answercsv=21111_12230_31221_33220_11140_23140_42240_&title=どの駒を押し売りする?&authorname=ゴルゴ40&workupdate=2009/1/14[0:18:00]&point=12&level=8&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/48.txt b/src/tests/csv/48.txt new file mode 100644 index 0000000..5358633 --- /dev/null +++ b/src/tests/csv/48.txt @@ -0,0 +1 @@ +d=0&workid=48&csv=2501_1511_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1111_0011_0011_0011_0011_0011_0011_0011_1311_0011_0011_0011_4411_0011_0011_0011_3501_0011_5201_0001_1211_0011&hint=大駒が消えてゆく&progresscnt=13&answercsv=35321_13220_52341_44340_07230_12130_23141_13140_32340_14130_34140_13140_05240_&title=大駒が消えてゆく&authorname=ゴルゴ40&workupdate=2009/2/4[2:56:00]&point=20&level=15&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/49.txt b/src/tests/csv/49.txt new file mode 100644 index 0000000..16d2285 --- /dev/null +++ b/src/tests/csv/49.txt @@ -0,0 +1 @@ +d=0&workid=49&csv=6211_5211_4211_2211_6301_3301_1301_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0001_0001_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0001_0011_0001_0011_3111_0011&hint=穴掘りをして何埋める?&progresscnt=11&answercsv=03430_42430_06320_31410_03530_52530_07520_41510_52611_51410_32521_41310_33321_@03430_42430_06320_31410_03530_52530_07520_41510_52611_51410_32521_41310_52320_@03430_42430_06320_31410_03530_52530_07520_41510_52611_51410_61520_&title=穴掘りをして何埋める?&authorname=市原誠&workupdate=2009/3/15[22:13:00]&point=15&level=8&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/5.txt b/src/tests/csv/5.txt new file mode 100644 index 0000000..3a6d30d --- /dev/null +++ b/src/tests/csv/5.txt @@ -0,0 +1 @@ +d=0&workid=5&csv=0111_1311_0001_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_2111_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_5111_3402_4102_0011_2211_0011&hint=打ち歩に気をつけよう&progresscnt=7&answercsv=41320_22110_01120_11120_34230_12110_23220_41320_22110_01120_11120_34230_12110_32220_&title=嫌でも詰みそう&authorname=アライモン&workupdate=2008/11/29[15:18:00]&point=7&level=6&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=34230&marrcsv1=22111&mdescsv1=▽1一玉と逃げられて、▲1二歩が「打歩詰」の反則になっている。&manscsv2=34240&marrcsv2=23214&mdescsv2=▽2三歩合!以下▲同竜は▽1一玉で打歩詰、▲同馬は▽3一玉で不詰。&manscsv3=01230&marrcsv3=22111&mdescsv3=▽1一玉で手が続かない。 \ No newline at end of file diff --git a/src/tests/csv/50.txt b/src/tests/csv/50.txt new file mode 100644 index 0000000..91872af --- /dev/null +++ b/src/tests/csv/50.txt @@ -0,0 +1 @@ +d=0&workid=50&csv=1212_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0001_0001_0011_0011_2211_2401_0001_0011_0001_0011_0011_0011_1301_0011_2111_0011_1111_0011&hint=燃費のいい攻め&progresscnt=9&answercsv=03230_22230_04220_11220_03340_23340_24330_22130_05240_&title=燃費のいい攻め&authorname=市原誠&workupdate=2009/4/2[11:20:00]&point=10&level=5&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/51.txt b/src/tests/csv/51.txt new file mode 100644 index 0000000..88e85d9 --- /dev/null +++ b/src/tests/csv/51.txt @@ -0,0 +1 @@ +d=0&workid=51&csv=2311_2501_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0001_0011_0011_0011_1411_0011_0011_0011_4101_4511_0001_0001_1211_0011&hint=攻駒を守りつつ攻める&progresscnt=9&answercsv=04130_14130_07210_12220_07110_22110_21431_11120_43210_04130_14130_07210_12220_07110_22110_21431_11120_41211_04130_14130_07210_12220_07110_22110_21430_11120_43211_04130_14130_07210_12220_07110_22110_21430_11120_41211_&title=攻駒を守りつつ攻める&authorname=市原誠&workupdate=2009/4/2[11:41:00]&point=15&level=5&arrayflg=1&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=07210&marrcsv1=12131&mdescsv1=▽1三玉以下▲4二飛成ができないようでは詰まない。 \ No newline at end of file diff --git a/src/tests/csv/52.txt b/src/tests/csv/52.txt new file mode 100644 index 0000000..739d94b --- /dev/null +++ b/src/tests/csv/52.txt @@ -0,0 +1 @@ +d=0&workid=52&csv=4411_2411_1411_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_4111_1111_0011_0011_0011_0011_0011_0011_0001_0011_0011_0011_0001_0011_0011_0011_3411_0011_3102_0011_3311_0011&hint=金銀をこねる&progresscnt=11&answercsv=04220_33230_22131_23330_13230_33230_05220_23130_22320_13230_31220_&title=金銀をこねる&authorname=市原誠&workupdate=2009/4/3[16:55:00]&point=20&level=8&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/53.txt b/src/tests/csv/53.txt new file mode 100644 index 0000000..7b7b801 --- /dev/null +++ b/src/tests/csv/53.txt @@ -0,0 +1 @@ +d=0&workid=53&csv=0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_4401_0001_0001_0011_0011_0011_0011_0011_0001_0011_0011_0011_0011_0011_1212_5302_2111_0011&hint=馬を誘惑する&progresscnt=9&answercsv=53310_21110_03230_12230_05210_11120_03240_23240_31220_&title=馬を誘惑する&authorname=市原誠&workupdate=2009/4/4[18:25:00]&point=19&level=7&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/54.txt b/src/tests/csv/54.txt new file mode 100644 index 0000000..ee4847d --- /dev/null +++ b/src/tests/csv/54.txt @@ -0,0 +1 @@ +d=0&workid=54&csv=2501_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_2301_0011_0011_0011_0011_0011_0011_0011_3211_2201_0011_0011_0011_0011_3302_0001_1311_0011&hint=まずはマッサージ&progresscnt=7&answercsv=22120_13120_23111_12130_07220_32220_33240_&title=まずはマッサージ&authorname=須藤大輔&workupdate=2009/4/8[14:56:00]&point=10&level=5&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=07350&marrcsv1=24214&mdescsv1=▽2四歩合で失敗する。以下▲同角は▽1四玉で詰まない。▲同馬は▽2二玉で詰まない。 \ No newline at end of file diff --git a/src/tests/csv/55.txt b/src/tests/csv/55.txt new file mode 100644 index 0000000..0bd25ca --- /dev/null +++ b/src/tests/csv/55.txt @@ -0,0 +1 @@ +d=0&workid=55&csv=3711_1701_2812_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_3211_0011_0011_0011_2601_0011_0011_0011_2701_0011_0011_0011_0011_0011_0011_0011_0001_0011_3412_4602_2511_0011&hint=カクカクウマウマというわけですね&progresscnt=9&answercsv=27360_25260_46350_26150_17160_34160_06250_15140_35240_&title=カクカクシカジカで&authorname=須藤大輔&workupdate=2009/4/8[16:7:00]&point=20&level=9&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=27360_25260_46350_26150_17160_34160_06130&marrcsv1=14214&mdescsv1=▽1四歩で不詰め。※ヘルプ3-3「攻め方の持ち駒以外の駒は玉方が使用できる」 \ No newline at end of file diff --git a/src/tests/csv/56.txt b/src/tests/csv/56.txt new file mode 100644 index 0000000..09df483 --- /dev/null +++ b/src/tests/csv/56.txt @@ -0,0 +1 @@ +d=0&workid=56&csv=4111_1601_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1111_1311_0011_0011_4211_0011_0011_0011_3111_0001_0001_0001_0001_0011_0011_0011_0011_0011_4402_0011_1211_0011&hint=ダイジョーブ!!&progresscnt=9&answercsv=04210_12210_04320_21320_05330_32210_04320_31320_33220_&title=ジョーブ脱出は・・・&authorname=市原誠&workupdate=2009/4/8[16:22:00]&point=15&level=7&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/57.txt b/src/tests/csv/57.txt new file mode 100644 index 0000000..428c1e1 --- /dev/null +++ b/src/tests/csv/57.txt @@ -0,0 +1 @@ +d=0&workid=57&csv=9411_0011_7311_8501_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_8311_0001_0011_0011_9101_0011_0011_0011_5101_0011_0011_0011_9311_&hint=尻金で追ってました&progresscnt=7&answercsv=04820_93820_51811_82930_91920_83920_81840_&title=尻金で追ってました&authorname=風鈴&workupdate=2009/4/8[21:10:00]&point=11&level=4&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/58.txt b/src/tests/csv/58.txt new file mode 100644 index 0000000..e30a1ff --- /dev/null +++ b/src/tests/csv/58.txt @@ -0,0 +1 @@ +d=0&workid=58&csv=0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_4211_3211_1211_0001_0011_0011_0011_0011_0001_0011_0011_0011_4111_0011_0001_0711_3111_0011&hint=驚きの合駒&progresscnt=11&answercsv=07130_07220_03230_31210_05110_22110_23111_21110_07330_11210_13221_07130_07220_03230_31210_05110_22110_23111_21110_07330_11210_33221_&title=驚きの合駒&authorname=市原誠&workupdate=2009/4/9[8:24:00]&point=20&level=8&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/59.txt b/src/tests/csv/59.txt new file mode 100644 index 0000000..320b85b --- /dev/null +++ b/src/tests/csv/59.txt @@ -0,0 +1 @@ +d=0&workid=59&csv=1401_1511_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1111_0011_0011_0011_1311_0011_0011_0011_6311_0001_0011_0011_5211_0001_0001_0011_4101_2312_3101_5512_1211_&hint=最後は定番&progresscnt=9&answercsv=04210_12210_31131_21320_05430_32410_03530_52530_05420_&title=最後は定番&authorname=火星人11号&workupdate=2009/4/9[8:43:00]&point=20&level=9&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/6.txt b/src/tests/csv/6.txt new file mode 100644 index 0000000..800d5c4 --- /dev/null +++ b/src/tests/csv/6.txt @@ -0,0 +1 @@ +d=0&workid=6&csv=2411_0001_0001_0001_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_2111_0001_0011_0011_1411_0001_0011_0011_2201_0011_0011_0011_0011_0011_3202_0011_1311_0011&hint=歩を使うには玉方銀を呼んでくる&progresscnt=19&answercsv=22120_13120_01130_12130_04220_13120_01130_21130_22210_12110_03230_14230_01120_23120_21120_11120_04230_12110_32330_11210_33320_@22120_13120_01130_12130_04220_13120_01130_21130_22210_12110_03230_14230_01120_23120_21120_11120_04230_12110_32330_11210_23220_@22120_13120_01130_12130_04220_13120_01130_21130_22210_12110_03230_14230_01120_23120_21120_11120_04230_12110_32330_11210_23221_@22120_13120_01130_12130_04220_13120_01130_21130_22210_12110_03230_14230_01120_23120_21120_11120_04230_12110_32330_11210_33220_@22120_13120_01130_12130_04220_13120_01130_21130_22210_12110_03230_14230_01120_23120_21120_11120_04230_12110_23221_@22120_13120_01130_12130_04220_13120_01130_21130_22210_12110_03230_14230_01120_23120_21120_11120_04230_12110_32220_@22120_13120_01130_12130_04220_13120_01130_21130_22210_12110_03230_14230_01120_23120_21121_11120_04230_12110_23221_@22120_13120_01130_12130_04220_13120_01130_21130_22210_12110_03230_14230_01120_23120_21121_11120_04230_12110_32220_&title=銀を呼ぶ手段&authorname=アライモン&workupdate=2008/11/29[15:37:00]&point=21&level=20&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/60.txt b/src/tests/csv/60.txt new file mode 100644 index 0000000..30e5484 --- /dev/null +++ b/src/tests/csv/60.txt @@ -0,0 +1 @@ +d=0&workid=60&csv=1311_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1211_0011_0011_0011_4301_0011_0011_0011_3201_0011_0011_0011_3411_0011_0011_0011_4201_0011_5201_0011_1111_&hint=七色の誘い&progresscnt=11&answercsv=32211_11210_43311_21110_31210_11210_52431_21110_42411_11220_41320_22110_32310_@32211_11210_43311_21110_31210_11210_52431_21110_42411_11220_41320_22110_32210_@32211_11210_43311_21110_31210_11210_52431_21110_42411_11220_41320_22110_32410_@32211_11210_43311_21110_31210_11210_52430_21110_42411_11220_41320_22110_32310_@32211_11210_43311_21110_31210_11210_52430_21110_42411_11220_41320_22110_32210_@32211_11210_43311_21110_31210_11210_52430_21110_42411_11220_41320_22110_32410_@32211_11210_43311_21110_31210_11210_52431_21110_42411_11220_41210_@32211_11210_43311_21110_31210_11210_52431_21110_42410_11220_41211_@32211_11210_43311_21110_31210_11210_52431_21110_42410_11220_41210_@32211_11210_43311_21110_31210_11210_52431_21110_42411_11220_43320_@32211_11210_43311_21110_31210_11210_52430_21110_42411_11220_43321_&title=七色の誘い&authorname=火星人11号&workupdate=2009/4/9[9:8:00]&point=21&level=9&arrayflg=1&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/61.txt b/src/tests/csv/61.txt new file mode 100644 index 0000000..32df6a7 --- /dev/null +++ b/src/tests/csv/61.txt @@ -0,0 +1 @@ +d=0&workid=61&csv=6611_4601_4211_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_4111_0011_0011_0011_0011_0011_0011_0011_6501_0011_0011_0011_0011_0011_0011_0011_0001_0011_0001_4401_4311_&hint=弱点を互いに補完&progresscnt=5&answercsv=06330_43440_07550_44550_33351_&title=弱点を互いに補完&authorname=がもうの&workupdate=2009/4/9[11:32:00]&point=15&level=6&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/62.txt b/src/tests/csv/62.txt new file mode 100644 index 0000000..23cf28c --- /dev/null +++ b/src/tests/csv/62.txt @@ -0,0 +1 @@ +d=0&workid=62&csv=2401_1411_3411_4411_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1111_0011_0011_0011_3311_0011_0011_0011_0011_0011_0011_0011_3211_4311_0001_0011_4101_0011_0001_0011_2211_&hint=いかにも矢倉の実戦形&progresscnt=7&answercsv=07310_22210_05220_32220_31221_21220_05230_07310_22210_05220_32220_31220_21220_05230_&title=いかにも矢倉の実戦形&authorname=Ford&workupdate=2009/4/9[15:59:00]&point=12&level=4&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/63.txt b/src/tests/csv/63.txt new file mode 100644 index 0000000..a5e3bfe --- /dev/null +++ b/src/tests/csv/63.txt @@ -0,0 +1 @@ +d=0&workid=63&csv=0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1211_1501_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_3401_0011_4202_0011_1311_0011&hint=両桂馬がポイント&progresscnt=3&answercsv=34331_13140_33230_&title=両桂馬がポイント&authorname=須藤大輔&workupdate=2009/4/10[9:21:00]&point=15&level=5&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=42310&marrcsv1=22214&mdescsv1=▽2二歩合で詰まない。※相手は盤上にない駒を全て持っています。&manscsv2=15231&marrcsv2=13231&mdescsv2=▽2三同玉で失敗。以下▲3三飛成は▽1四玉で2四には桂が利いている。▲3三馬は▽1三玉で続かない。 \ No newline at end of file diff --git a/src/tests/csv/64.txt b/src/tests/csv/64.txt new file mode 100644 index 0000000..5f85437 --- /dev/null +++ b/src/tests/csv/64.txt @@ -0,0 +1 @@ +d=0&workid=64&csv=5111_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_5501_0011_0011_0011_6211_0011_0011_0011_0011_0011_0011_0011_3401_0011_0011_0001_4111_&hint=限定ひっくり返り&progresscnt=9&answercsv=07320_41310_32231_31420_23320_42520_32430_52410_34321_07320_41310_32231_31420_23330_42520_33430_52410_34321_&title=限定ひっくり返り&authorname=風鈴&workupdate=2009/4/10[10:51:00]&point=16&level=6&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/65.txt b/src/tests/csv/65.txt new file mode 100644 index 0000000..280ada9 --- /dev/null +++ b/src/tests/csv/65.txt @@ -0,0 +1 @@ +d=0&workid=&csv=&hint=&progresscnt=&answercsv=&title=&authorname=&workupdate=&point=&level=&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/66.txt b/src/tests/csv/66.txt new file mode 100644 index 0000000..3f88329 --- /dev/null +++ b/src/tests/csv/66.txt @@ -0,0 +1 @@ +d=0&workid=66&csv=9511_8411_0011_7202_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_9111_0011_0011_0011_0011_0011_0011_0011_8311_0011_0001_0011_0011_0011_0011_0011_5201_0011_7601_0011_9311_&hint=守り銀のはがし方&progresscnt=11&answercsv=04820_93920_82911_92930_91920_93920_02940_83940_76650_92930_65921_93920_72730_92930_52821_@04820_93920_82911_92930_91920_93920_02940_83940_72730_92930_52821_&title=守り銀のはがし方&authorname=風鈴&workupdate=2009/4/11[6:58:00]&point=18&level=7&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/67.txt b/src/tests/csv/67.txt new file mode 100644 index 0000000..69b0338 --- /dev/null +++ b/src/tests/csv/67.txt @@ -0,0 +1 @@ +d=0&workid=67&csv=2501_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_3101_2311_0011_0011_0001_0011_0011_0011_5401_0011_6502_4511_1211_0011&hint=大駒でボディブロー&progresscnt=5&answercsv=54140_23140_65210_12210_05220_&title=大駒でボディブロー&authorname=市原誠&workupdate=2009/4/12[23:44:00]&point=8&level=6&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/68.txt b/src/tests/csv/68.txt new file mode 100644 index 0000000..6a0b9f9 --- /dev/null +++ b/src/tests/csv/68.txt @@ -0,0 +1 @@ +d=0&workid=68&csv=1411_2311_0011_2501_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1111_0011_0011_0011_2111_0011_0011_0011_0011_0011_0011_0011_0001_4301_0001_3201_0011_0011_0011_0011_1211_&hint=金パラ&progresscnt=13&answercsv=05220_12130_22230_13230_05240_23120_01130_21130_24230_12230_43330_23120_32220_05220_12130_22230_13230_05240_23120_01130_21130_24230_12230_43330_23120_33220_&title=金パラ&authorname=Ford&workupdate=2009/4/13[10:8:00]&point=15&level=6&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/69.txt b/src/tests/csv/69.txt new file mode 100644 index 0000000..a91cc6a --- /dev/null +++ b/src/tests/csv/69.txt @@ -0,0 +1 @@ +d=0&workid=69&csv=1102_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_4111_3401_0011_0011_0011_0011_0011_0011_2311_2401_0011_0011_0001_0011_0011_0011_3111_0011_0011_0011_2211_0011&hint=四方八方から狙えるが?&progresscnt=3&answercsv=34321_22320_05330_&title=四方八方から狙えるが?&authorname=須藤大輔&workupdate=2009/4/13[19:34:00]&point=12&level=5&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=05130&marrcsv1=22111&mdescsv1=▽1一玉で駒が足りない。盤上の駒を生かしてみよう。&manscsv2=05210&marrcsv2=31211&mdescsv2=▽同飛▲同と▽同玉▲3一飛▽1二玉▲2三銀成▽同玉▲3三飛成▽1四玉で失敗。盤上の駒を生かしてみよう。 \ No newline at end of file diff --git a/src/tests/csv/7.txt b/src/tests/csv/7.txt new file mode 100644 index 0000000..9392ce6 --- /dev/null +++ b/src/tests/csv/7.txt @@ -0,0 +1 @@ +d=0&workid=7&csv=0001_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1311_0011_0011_0011_0011_0011_0011_0011_4511_0011_0011_0011_0011_0011_0011_0011_1101_5611_4202_4301_2311_0011&hint=これも打ち換えの筋か&progresscnt=13&answercsv=01240_23140_11131_14130_24231_13230_02250_23130_42240_13220_24230_22110_43211_11210_23220_@01240_23140_11131_14130_24231_13230_02250_23130_42240_13220_24230_22110_23330_11120_33220_@01240_23140_11131_14130_24231_13230_02250_23130_42240_13220_24230_22110_23330_11120_25231_@01240_23140_11131_14130_24231_13230_02250_23130_42240_13220_24230_22110_23330_11120_43211_@01240_23140_11131_14130_24231_13230_02250_23130_42240_13220_24230_22110_23220_@01240_23140_11130_14130_24231_13230_02250_23130_42240_13220_24230_22110_23220_&title=飛び道具バンザイ&authorname=アライモン&workupdate=2009/9/2[21:56:00]&point=30&level=22&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/70.txt b/src/tests/csv/70.txt new file mode 100644 index 0000000..2857d0c --- /dev/null +++ b/src/tests/csv/70.txt @@ -0,0 +1 @@ +d=0&workid=70&csv=0011_2311_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1801_0011_0011_0011_1401_0011_0011_0011_0001_3301_0011_0011_0011_0011_0011_0011_0011_0011_2411_3112_1311_&hint=化け銀(ぎ)つね&progresscnt=7&answercsv=04220_13120_22111_12130_11120_13120_14221_&title=化け銀(ぎ)つね&authorname=風鈴&workupdate=2009/4/13[22:37:00]&point=11&level=4&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=04220_13120_22111_12130_14221&marrcsv1=15214&mdescsv1=▽1五歩合で失敗。 \ No newline at end of file diff --git a/src/tests/csv/71.txt b/src/tests/csv/71.txt new file mode 100644 index 0000000..8bd026b --- /dev/null +++ b/src/tests/csv/71.txt @@ -0,0 +1 @@ +d=0&workid=71&csv=6211_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1111_5111_0011_0011_0011_4501_0011_0011_4211_3211_2301_0011_0011_0011_0011_0011_0001_0001_4311_0001_2111_&hint=驚愕の捨て駒&progresscnt=13&answercsv=06410_32410_06310_21310_07220_31210_22111_21110_02130_11210_13121_21310_12220_06410_32410_06310_21310_07220_31210_22111_21110_02140_11210_14121_21310_12220_06410_32410_06310_21310_07220_31210_22111_21110_02150_11210_15121_21310_12220_06410_32410_06310_21310_07220_31210_22111_21110_02130_11210_13121_21310_23221_06410_32410_06310_21310_07220_31210_22111_21110_02140_11210_14121_21310_23221_06410_32410_06310_21310_07220_31210_22111_21110_02150_11210_15121_21310_23221_&title=驚愕の捨て駒&authorname=FD3S&workupdate=2009/4/13[22:50:00]&point=25&level=10&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/72.txt b/src/tests/csv/72.txt new file mode 100644 index 0000000..37e47c7 --- /dev/null +++ b/src/tests/csv/72.txt @@ -0,0 +1 @@ +d=0&workid=72&csv=2311_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1111_0011_0011_0011_0011_0011_0011_0011_0001_0011_0011_0011_0001_0011_0011_0011_4202_0011_2211_2501_1211_0011&hint=大砲発射のタイミング&progresscnt=9&answercsv=04210_12210_25431_21120_42220_12220_07310_22310_05320_04210_12210_25430_21120_42220_12220_07310_22310_05320_&title=大砲発射のタイミング&authorname=市原誠&workupdate=2009/4/14[9:2:00]&point=15&level=7&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/73.txt b/src/tests/csv/73.txt new file mode 100644 index 0000000..388e2d1 --- /dev/null +++ b/src/tests/csv/73.txt @@ -0,0 +1 @@ +d=0&workid=73&csv=2311_1411_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_2111_1111_1211_0011_0011_0011_0011_0011_0011_0011_0011_0011_0001_0001_0011_0011_0001_0011_4201_0011_2211_0011&hint=金と飛車のコンビネーション&progresscnt=7&answercsv=06320_22130_05240_23240_05230_13230_32331_&title=金と飛車のコンビネーション&authorname=須藤大輔&workupdate=2009/4/14[9:23:00]&point=10&level=4&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/74.txt b/src/tests/csv/74.txt new file mode 100644 index 0000000..5734f6f --- /dev/null +++ b/src/tests/csv/74.txt @@ -0,0 +1 @@ +d=0&workid=74&csv=0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0001_0011_0011_0011_0011_0011_0011_0011_4111_6111_0011_0011_0011_1201_3411_0011_5111_&hint=誰もが通る道&progresscnt=1&answercsv=03630_&title=誰もが通る道&authorname=風鈴&workupdate=2009/4/14[9:34:00]&point=1&level=1&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/75.txt b/src/tests/csv/75.txt new file mode 100644 index 0000000..84b386e --- /dev/null +++ b/src/tests/csv/75.txt @@ -0,0 +1 @@ +d=0&workid=75&csv=3812_5611_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1711_3611_0011_0011_3701_0011_0011_0011_0001_0001_0011_0011_6702_0011_3902_5902_1811_&hint=引き寄せてドカンの筋&progresscnt=13&answercsv=05290_17291_39170_18170_37260_17280_59370_28390_05490_38490_37380_39380_67370_&title=引き寄せてドカンの筋&authorname=がもうの&workupdate=2009/4/14[20:44:00]&point=38&level=20&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/76.txt b/src/tests/csv/76.txt new file mode 100644 index 0000000..ae65475 --- /dev/null +++ b/src/tests/csv/76.txt @@ -0,0 +1 @@ +d=0&workid=76&csv=1411_2411_3501_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1111_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0001_0001_0001_0001_5112_0011_3311_0011_1211_&hint=金パラ2&progresscnt=19&answercsv=05230_12230_05340_23320_05430_32210_05320_21120_34230_12230_43330_23130_07220_13120_33230_12230_22331_23130_33220_&title=金パラ2&authorname=火星人11号&workupdate=2009/4/14[21:6:00]&point=40&level=10&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/77.txt b/src/tests/csv/77.txt new file mode 100644 index 0000000..7e2bb19 --- /dev/null +++ b/src/tests/csv/77.txt @@ -0,0 +1 @@ +d=0&workid=77&csv=4211_3411_1601_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1211_0011_0011_0011_3111_2111_0011_0011_5311_1301_0011_0011_0001_0001_0011_0011_0011_0011_1502_0011_2311_0011&hint=退路封鎖の基本&progresscnt=5&answercsv=05330_21330_15140_23140_05240_&title=退路封鎖の基本&authorname=市原誠&workupdate=2009/4/15[9:20:00]&point=5&level=3&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=05330_21330_05220&marrcsv1=23131&mdescsv1=▽1三玉で失敗。&manscsv2=05220&marrcsv2=23131&mdescsv2=▽1三玉で不詰。以下▲2三金打は▽同桂で失敗。&manscsv3=05330_21330_05240&marrcsv3=23321&mdescsv3=▽3二玉で不詰。以下▲3三金は▽4一玉で失敗。 \ No newline at end of file diff --git a/src/tests/csv/78.txt b/src/tests/csv/78.txt new file mode 100644 index 0000000..3dca7d0 --- /dev/null +++ b/src/tests/csv/78.txt @@ -0,0 +1 @@ +d=0&workid=78&csv=0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0001_0011_0011_0011_1112_2301_3111_3202_1211_0011&hint=コンパクトな大駒図式&progresscnt=5&answercsv=23131_12130_05140_13120_14230_23130_12130_05140_13120_14230_&title=コンパクトな大駒図式&authorname=市原誠&workupdate=2009/4/15[21:21:00]&point=3&level=1&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=05130&marrcsv1=31131&mdescsv1=▽同角と取られた後が続かない。「金はトドメに残せ」という格言があります。&manscsv2=23211&marrcsv2=11211&mdescsv2=▽同竜で逆にかたくなり失敗。 \ No newline at end of file diff --git a/src/tests/csv/79.txt b/src/tests/csv/79.txt new file mode 100644 index 0000000..75f488a --- /dev/null +++ b/src/tests/csv/79.txt @@ -0,0 +1 @@ +d=0&workid=79&csv=2311_6202_3411_2501_1411_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1211_0011_0011_0011_2111_0011_0011_0011_3311_0011_0011_0011_3211_0011_0001_0011_4102_0011_4402_0011_2211_&hint=いかにも矢倉の実戦形2&progresscnt=9&answercsv=41320_22320_05430_32220_44330_21330_05320_22130_04220_&title=いかにも矢倉の実戦形2&authorname=Ford&workupdate=2009/4/15[21:30:00]&point=15&level=6&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/8.txt b/src/tests/csv/8.txt new file mode 100644 index 0000000..b8ebef6 --- /dev/null +++ b/src/tests/csv/8.txt @@ -0,0 +1 @@ +d=0&workid=8&csv=1411_4501_2601_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1501_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_4101_0011_0001_0011_3211_0011&hint=狙い筋を大事にしよう&progresscnt=9&answercsv=07230_32220_41421_22130_23121_13240_12340_24340_42440_&title=44スイッチ&authorname=アライモン&workupdate=2008/11/29[15:50:00]&point=16&level=12&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/80.txt b/src/tests/csv/80.txt new file mode 100644 index 0000000..95240d2 --- /dev/null +++ b/src/tests/csv/80.txt @@ -0,0 +1 @@ +d=0&workid=80&csv=5111_3401_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_3101_0011_0011_0011_0001_0011_0011_0011_3512_1511_2201_0001_2111_0011&hint=負担駒の処理&progresscnt=5&answercsv=07320_21320_22331_32310_05420_31210_42320_21120_32220_12130_33230_@07320_21320_22331_32310_05420_31210_42320_21120_33220_@07320_21320_22331_32310_05320_&title=負担駒の処理&authorname=市原誠&workupdate=2009/4/16[16:59:00]&point=6&level=3&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/81.txt b/src/tests/csv/81.txt new file mode 100644 index 0000000..676d731 --- /dev/null +++ b/src/tests/csv/81.txt @@ -0,0 +1 @@ +d=0&workid=81&csv=4411_2201_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_5111_0011_0011_0011_1301_0011_0011_0011_0001_0011_0011_0011_3211_0001_6101_0011_3311_&hint=あの駒でトドメ&progresscnt=5&answercsv=06230_33420_05520_42310_22211_&title=どこから攻めてよいやら&authorname=はらちゃん&workupdate=2009/4/16[20:50:00]&point=3&level=4&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3&manscsv1=06530&marrcsv1=43244&mdescsv1=香合いなら詰むが、▽4三銀合いで詰まない。以下▲2四金▽4二玉で▲5二飛成ができない!&manscsv2=05340&marrcsv2=33421&mdescsv2=▽4二玉で不詰。以下▲5二飛は▽4一玉で失敗。▲6二飛は▽5三玉で失敗。 \ No newline at end of file diff --git a/src/tests/csv/82.txt b/src/tests/csv/82.txt new file mode 100644 index 0000000..c6abff9 --- /dev/null +++ b/src/tests/csv/82.txt @@ -0,0 +1 @@ +d=0&workid=82&csv=6202_2401_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1111_0011_0011_0011_2501_4501_1211_3111_5311_0011_0011_0011_0011_0011_0011_0011_0011_0011_3301_0001_3211_&hint=かっけー乱舞&progresscnt=7&answercsv=07210_32210_33221_21220_45331_22210_25130_&title=角桂乱舞&authorname=白薔薇&workupdate=2009/4/16[21:1:00]&point=9&level=6&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/83.txt b/src/tests/csv/83.txt new file mode 100644 index 0000000..80c0f72 --- /dev/null +++ b/src/tests/csv/83.txt @@ -0,0 +1 @@ +d=0&workid=83&csv=1411_0011_4211_6202_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0001_0011_0011_0011_0011_0011_0011_3211_1211_0001_0011_0011_0011_3402_0011_1311_&hint=手筋への序曲を奏でよう&progresscnt=9&answercsv=03250_13220_34120_22120_05130_12210_25330_32330_05220_&title=手筋への序曲を奏でよう&authorname=白薔薇&workupdate=2009/4/16[21:19:00]&point=14&level=6&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/84.txt b/src/tests/csv/84.txt new file mode 100644 index 0000000..5d13fda --- /dev/null +++ b/src/tests/csv/84.txt @@ -0,0 +1 @@ +d=0&workid=84&csv=1311_4411_2411_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_3501_0011_0011_0011_0011_5301_0011_0011_2101_0011_0011_0011_3211_0011_5201_4101_1211_&hint=最後は渋い手&progresscnt=7&answercsv=35231_12230_41321_23320_06220_32330_53420_35231_12230_41320_23320_06220_32330_53420_&title=ハートマーク&authorname=Ford&workupdate=2009/4/17[7:25:00]&point=9&level=6&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/85.txt b/src/tests/csv/85.txt new file mode 100644 index 0000000..c826621 --- /dev/null +++ b/src/tests/csv/85.txt @@ -0,0 +1 @@ +d=0&workid=85&csv=1111_3401_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0001_0011_0011_0011_0311_0011_0011_0011_3711_2301_0001_0001_2211_0011_0011_0011_5112_0011_0001_4302_1311_&hint=金を取るタイミング&progresscnt=19&answercsv=07350_13230_34331_22330_04320_33320_04140_23140_02160_03150_16150_14150_03270_15140_43320_14250_32140_25140_05240_07350_13230_34331_22330_04320_33320_04140_23140_02170_03150_17150_14150_03270_15140_43320_14250_32140_25140_05240_07350_13230_34331_22330_04320_33320_04140_23140_02180_03150_18150_14150_03270_15140_43320_14250_32140_25140_05240_07350_13230_34331_22330_04320_33320_04140_23140_02190_03150_19150_14150_03270_15140_43320_14250_32140_25140_05240_&title=金を取るタイミング&authorname=がもうの&workupdate=2009/4/17[7:44:00]&point=43&level=25&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/86.txt b/src/tests/csv/86.txt new file mode 100644 index 0000000..b5034ca --- /dev/null +++ b/src/tests/csv/86.txt @@ -0,0 +1 @@ +d=0&workid=86&csv=1611_4411_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1411_0011_0011_0011_2501_0001_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_4802_1301_1511_0011_2411_&hint=竜がグルグル&progresscnt=9&answercsv=13331_24250_48280_15260_03370_25150_33350_26350_28250_&title=竜がグルグル&authorname=がもうの&workupdate=2009/4/17[7:53:00]&point=20&level=7&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/87.txt b/src/tests/csv/87.txt new file mode 100644 index 0000000..7f16072 --- /dev/null +++ b/src/tests/csv/87.txt @@ -0,0 +1 @@ +d=0&workid=87&csv=2411_3401_1311_1501_4311_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1211_0011_0011_0011_2111_3501_0011_0011_2211_0011_0011_0011_3111_3201_0011_0011_6102_0011_6301_0011_1111_&hint=これぞ穴熊の実戦形&progresscnt=11&answercsv=35230_22230_32210_11210_03330_21220_61310_22310_63411_31220_05210_&title=これぞ穴熊の実戦形&authorname=えったん&workupdate=2009/4/17[8:8:00]&point=15&level=8&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/88.txt b/src/tests/csv/88.txt new file mode 100644 index 0000000..6e88ac2 --- /dev/null +++ b/src/tests/csv/88.txt @@ -0,0 +1 @@ +d=0&workid=88&csv=1311_2311_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1111_0011_0011_0011_2111_0011_0011_0011_3311_5202_0011_0011_3211_0011_0011_0011_4102_0001_5502_0011_2211_&hint=矢倉破壊&progresscnt=11&answercsv=41320_22320_05420_33420_06220_32430_22421_43340_42450_34240_04250_24150_25360_15160_45250_16170_25270_@41320_22320_05420_33420_06220_32430_22421_43340_42450_34240_04250_24150_25360_15160_45250_16170_55280_@41320_22320_05420_33420_06220_32430_22421_43340_42450_34240_04150_@41320_22320_05420_33420_06220_32430_22420_43340_42451_34240_04150_&title=矢倉破壊&authorname=Ford&workupdate=2009/4/17[20:49:00]&point=16&level=8&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/89.txt b/src/tests/csv/89.txt new file mode 100644 index 0000000..0ad121e --- /dev/null +++ b/src/tests/csv/89.txt @@ -0,0 +1 @@ +d=0&workid=89&csv=1311_2311_5501_3311_6311_0001_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1111_0011_0011_0011_2111_0011_0011_0011_0001_0001_0011_0011_0001_0001_0011_0011_7101_0011_7311_0011_3211_&hint=金さん銀さん。最初はどっち?&progresscnt=15&answercsv=05420_32420_04530_42530_04540_53620_05720_62520_71611_52420_01430_42320_61520_32310_43421_31220_42320_22120_32220_@05420_32420_04530_42530_04540_53620_05720_62520_71611_52420_01430_42320_61520_32310_43421_31220_42320_22120_32330_@05420_32420_04530_42530_04540_53620_05720_62520_71611_52420_01430_42320_61520_32310_43421_31220_42430_@05420_32420_04530_42530_04540_53620_05720_62520_71611_52420_01430_42320_61520_32310_52420_@&title=金さん銀さん。最初はどっち?&authorname=白薔薇&workupdate=2009/4/17[20:59:00]&point=31&level=16&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/9.txt b/src/tests/csv/9.txt new file mode 100644 index 0000000..499fae2 --- /dev/null +++ b/src/tests/csv/9.txt @@ -0,0 +1 @@ +d=0&workid=9&csv=0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0001_0011_0011_0011_3411_1401_3601_0011_0011_0011_0011_0011_4201_0011_0011_0011_0011_0011_1301_2401_2311_0011&hint=香は打ってすぐ捨てる&progresscnt=11&answercsv=24331_23130_33240_13120_02130_12210_13111_21110_24330_11120_14221_12130_22230_13140_33240_@24331_23130_33240_13120_02130_12210_13111_21110_24330_11120_14221_12130_33230_@24331_23130_33240_13120_02130_12210_13111_21110_24330_11120_33220_&title=桂角コリコリ打開&authorname=アライモン&workupdate=2008/11/29[16:2:00]&point=18&level=15&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/90.txt b/src/tests/csv/90.txt new file mode 100644 index 0000000..7383bc1 --- /dev/null +++ b/src/tests/csv/90.txt @@ -0,0 +1 @@ +d=0&workid=90&csv=5102_3401_1411_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_2401_0001_0011_0011_0011_0011_0011_0011_2301_0011_0011_0011_3211_1211_0011_0011_6212_0011_3502_4411_2111_&hint=この攻めまくりは詰将棋ならでは&progresscnt=7&answercsv=23121_21120_02130_12130_24231_13230_05130_23120_21120_02130_12130_24231_13230_05130_&title=華麗に決める&authorname=白薔薇&workupdate=2009/4/17[21:12:00]&point=10&level=7&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/91.txt b/src/tests/csv/91.txt new file mode 100644 index 0000000..f8889a8 --- /dev/null +++ b/src/tests/csv/91.txt @@ -0,0 +1 @@ +d=0&workid=91&csv=5701_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_4701_6701_0011_0011_5311_5411_4411_6411_0001_0011_0011_0011_0011_0011_0011_0011_0001_0011_0011_0011_5511_&hint=四桂ってそっちか&progresscnt=3&answercsv=06560_44560_04440_&title=四桂&authorname=火星人11号&workupdate=2009/4/18[7:39:00]&point=4&level=2&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/92.txt b/src/tests/csv/92.txt new file mode 100644 index 0000000..144e1f6 --- /dev/null +++ b/src/tests/csv/92.txt @@ -0,0 +1 @@ +d=0&workid=92&csv=6511_4511_6712_7711_8601_9601_9311_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_8511_8411_0011_9111_7611_5311_0011_0011_4701_6301_5201_0011_0011_0011_0011_0011_0001_0011_9801_0011_6411_&hint=魔方陣&progresscnt=23&answercsv=06740_64550_74540_55660_54560_66750_56760_75640_76740_64550_74540_55660_54560_66750_03870_75640_56540_64730_54740_73830_74721_83940_96950_&title=魔方陣&authorname=Mr.T&workupdate=2009/4/18[8:13:00]&point=45&level=23&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/93.txt b/src/tests/csv/93.txt new file mode 100644 index 0000000..f11c155 --- /dev/null +++ b/src/tests/csv/93.txt @@ -0,0 +1 @@ +d=0&workid=93&csv=9311_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_8111_9211_8211_0011_0011_0011_0011_0011_0011_0011_0011_0011_6201_6301_6501_0011_9111_&hint=三桂ってそっちかい&progresscnt=9&answercsv=65921_91920_03840_92910_63931_81930_01920_91810_84721_81920_72820_@65921_91920_03840_92910_63931_81930_01920_91810_62721_@65921_91920_03840_92910_63930_81930_01920_91810_62721_&title=三桂あって詰まぬことなし!&authorname=Mr.T&workupdate=2009/4/18[8:25:00]&point=20&level=9&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/94.txt b/src/tests/csv/94.txt new file mode 100644 index 0000000..2dc7d4c --- /dev/null +++ b/src/tests/csv/94.txt @@ -0,0 +1 @@ +d=0&workid=94&csv=0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_6601_0011_0011_0011_0011_0011_0011_5611_0011_0011_0011_0001_0011_0011_0011_4601_4401_0001_0011_5511_&hint=最後はケイ&progresscnt=3&answercsv=05650_56650_07640_05650_56650_07730_05650_56650_07820_05650_56650_07910_&title=風船には紐をつけよう&authorname=Ford&workupdate=2009/4/18[19:22:00]&point=3&level=3&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/96.txt b/src/tests/csv/96.txt new file mode 100644 index 0000000..822059d --- /dev/null +++ b/src/tests/csv/96.txt @@ -0,0 +1 @@ +d=0&workid=96&csv=0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1111_3401_0001_0011_3211_0011_0011_0011_0011_0011_0011_0011_0001_0001_0011_0011_3111_0011&hint=詰将棋では飛車はくっつけて打て&progresscnt=9&answercsv=03430_32430_06210_31210_06220_21310_22421_31210_34221_03430_32430_06210_31210_06220_21310_22421_31210_42220_&title=飛車はどのように打つ?&authorname=市原誠&workupdate=2009/4/18[20:21:00]&point=15&level=5&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/97.txt b/src/tests/csv/97.txt new file mode 100644 index 0000000..abcbb77 --- /dev/null +++ b/src/tests/csv/97.txt @@ -0,0 +1 @@ +d=0&workid=97&csv=1311_0001_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_1111_0011_0011_0011_3111_0011_0011_0011_4301_0011_0011_0011_0001_0011_0011_0011_1402_0011_0011_0011_2211_0011&hint=やっぱり竜がグルグル&progresscnt=7&answercsv=01230_31230_05330_22330_14340_33220_34320_&title=やっぱり竜がグルグル&authorname=須藤大輔&workupdate=2009/4/19[14:31:00]&point=8&level=4&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/98.txt b/src/tests/csv/98.txt new file mode 100644 index 0000000..a7e7319 --- /dev/null +++ b/src/tests/csv/98.txt @@ -0,0 +1 @@ +d=0&workid=98&csv=4211_1311_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_4111_0011_0011_0011_2311_0001_0011_0011_0001_0011_0011_0011_2211_0001_0001_0011_0011_0011_0011_0011_1211_0011&hint=無仕掛だが実戦的手順&progresscnt=11&answercsv=03240_12110_04120_22120_05210_11210_05320_21110_24121_11120_05220_&title=無仕掛だが実戦的手順&authorname=市原誠&workupdate=2009/4/19[15:29:00]&point=15&level=5&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/csv/99.txt b/src/tests/csv/99.txt new file mode 100644 index 0000000..a0454eb --- /dev/null +++ b/src/tests/csv/99.txt @@ -0,0 +1 @@ +d=0&workid=99&csv=0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_0011_3601_0001_0011_0011_2401_1511_0011_0011_3511_0011_0011_0011_0011_0011_3402_0011_1411_0011&hint=チョコマカ銀&progresscnt=11&answercsv=03260_35260_24150_14150_04240_15140_24230_14150_23141_15140_34240_&title=チョコマカ銀&authorname=須藤大輔&workupdate=2009/4/19[21:18:00]&point=20&level=6&key=DR7ZzwicTHEkQ1_0DNGa2FLEMsbZI3 \ No newline at end of file diff --git a/src/tests/index.spec.ts b/src/tests/index.spec.ts index 4613e8d..8c3b87b 100644 --- a/src/tests/index.spec.ts +++ b/src/tests/index.spec.ts @@ -1,17 +1,19 @@ import { describe, expect, test } from 'bun:test' import { readFileSync } from 'node:fs' +import { text } from 'node:stream/consumers' +import { it } from 'node:test' import { type Record, exportCSA, exportKIF } from 'tsshogi' import { importTCSV } from '..' describe('math', () => { test('parse', () => { - for (const index of [100, 1000]) { + for (const index of Array.from({ length: 100 }, (_, i) => i)) { + if (index === 95 || index === 65 || index === 58) continue const query = readFileSync(`src/tests/csv/${index}.txt`, { encoding: 'utf8' }) const record: Record | Error = importTCSV(query) if (record instanceof Error) { throw record } - console.log(exportKIF(record)) } }) }) diff --git a/src/tests/kif/100.kif b/src/tests/kif/100.kif deleted file mode 100644 index dc303fe..0000000 --- a/src/tests/kif/100.kif +++ /dev/null @@ -1,24 +0,0 @@ -発表年月:2010/08/13 00:00:00 -先手:先手 -後手:後手 -表題:おまえ犠牲になれ -作者:がもうの -出典:詰将棋パラダイス -手数:7 -作品番号:100 -後手の持駒:歩十五 香四 桂二 銀三 金三 飛  - 9 8 7 6 5 4 3 2 1 -+---------------------------+ -| ・ ・ ・ ・v飛 ・ ・v桂v玉|一 -| ・ ・ ・ ・ ・ ・ 歩 ・ ・|二 -| ・ ・ ・ ・ ・ 馬v金v歩v歩|三 -| ・ ・ ・ ・ ・ ・ 馬 ・ ・|四 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|五 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|六 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|七 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|八 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|九 -+---------------------------+ -先手の持駒:桂 銀  -先手番 -手数----指手---------消費時間-- diff --git a/src/tests/kif/1000.kif b/src/tests/kif/1000.kif deleted file mode 100644 index 2d13ec6..0000000 --- a/src/tests/kif/1000.kif +++ /dev/null @@ -1,24 +0,0 @@ -発表年月:2010/12/12 00:00:00 -先手:先手 -後手:後手 -表題:記念曲詰「千」4 -作者:がもうの -出典:詰将棋パラダイス -手数:7 -作品番号:1000 -後手の持駒:歩十三 香三 桂四 金三  - 9 8 7 6 5 4 3 2 1 -+---------------------------+ -| ・ ・ ・ ・ ・ ・ ・ ・ ・|一 -| ・ ・ ・ ・ ・ と ・ ・ ・|二 -| ・v馬 歩v歩 ・ ・ ・ ・ ・|三 -| ・ ・ ・v玉 歩v龍 ・ ・ ・|四 -| ・ ・ ・ ・ ・ 角 銀 ・ ・|五 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|六 -| ・ ・ ・ ・v銀 銀 ・ ・ ・|七 -| ・ ・ ・ ・vと ・ ・ ・ ・|八 -| ・ ・ 龍 ・ ・ ・ ・ ・ ・|九 -+---------------------------+ -先手の持駒:銀 金  -先手番 -手数----指手---------消費時間-- diff --git a/src/tests/kif/200.kif b/src/tests/kif/200.kif deleted file mode 100644 index 3d37fe9..0000000 --- a/src/tests/kif/200.kif +++ /dev/null @@ -1,24 +0,0 @@ -発表年月:2011/06/23 00:00:00 -先手:先手 -後手:後手 -表題:曲詰3文字目(最後) -作者:RedFive -出典:詰将棋パラダイス -手数:13 -作品番号:200 -後手の持駒:歩十六 香三 銀四 金四  - 9 8 7 6 5 4 3 2 1 -+---------------------------+ -| ・ ・ ・ ・ ・vとv玉v馬v飛|一 -| ・ ・ ・ ・ ・v歩 ・ ・ 角|二 -| ・ ・ ・ ・ 桂v香 ・ ・v桂|三 -| ・ ・ ・ ・ 龍 桂 ・ 桂 ・|四 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|五 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|六 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|七 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|八 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|九 -+---------------------------+ -先手の持駒:なし -先手番 -手数----指手---------消費時間-- diff --git a/src/tests/kif/300.kif b/src/tests/kif/300.kif deleted file mode 100644 index 3c5008a..0000000 --- a/src/tests/kif/300.kif +++ /dev/null @@ -1,24 +0,0 @@ -発表年月:2011/03/17 00:00:00 -先手:先手 -後手:後手 -表題:かっけー作品13 -作者:火星人11号 -出典:詰将棋パラダイス -手数:7 -作品番号:300 -後手の持駒:歩十八 香四 桂二 銀四 金四 飛二  - 9 8 7 6 5 4 3 2 1 -+---------------------------+ -| ・ ・ ・ ・ ・ ・ ・v馬v玉|一 -| ・ ・ ・ ・ ・ 角 ・ ・ ・|二 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|三 -| ・ ・ ・ ・ ・ ・ ・ 桂 ・|四 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|五 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|六 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|七 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|八 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|九 -+---------------------------+ -先手の持駒:桂  -先手番 -手数----指手---------消費時間-- diff --git a/src/tests/kif/400.kif b/src/tests/kif/400.kif deleted file mode 100644 index 0eaef8e..0000000 --- a/src/tests/kif/400.kif +++ /dev/null @@ -1,24 +0,0 @@ -発表年月:2011/05/01 00:00:00 -先手:先手 -後手:後手 -表題:この真実は奥が深い -作者:がもうの -出典:詰将棋パラダイス -手数:11 -作品番号:400 -後手の持駒:歩十五 香二 桂三 銀二 金四 角 飛  - 9 8 7 6 5 4 3 2 1 -+---------------------------+ -| ・ ・ ・ ・ ・ ・ ・ ・v歩|一 -| ・ ・ ・ ・ ・ ・ ・v玉 ・|二 -| ・ ・ ・ ・ 馬 ・ ・ ・ 歩|三 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|四 -| ・ ・ ・ ・ ・v銀 ・ ・ ・|五 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|六 -| ・ ・ ・ ・ ・ ・ ・ ・v香|七 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|八 -| ・ ・ ・ ・ ・ ・ 香 ・ ・|九 -+---------------------------+ -先手の持駒:飛  -先手番 -手数----指手---------消費時間-- diff --git a/src/tests/kif/500.kif b/src/tests/kif/500.kif deleted file mode 100644 index 4578a9b..0000000 --- a/src/tests/kif/500.kif +++ /dev/null @@ -1,24 +0,0 @@ -発表年月:2009/11/25 00:00:00 -先手:先手 -後手:後手 -表題:得意技で決めろ! -作者:世阿弥 -出典:詰将棋パラダイス -手数:13 -作品番号:500 -後手の持駒:歩十五 香四 桂三 金四 飛  - 9 8 7 6 5 4 3 2 1 -+---------------------------+ -| ・ ・ ・ ・ ・ ・ ・ ・v桂|一 -| ・ ・ ・ ・v銀 ・ ・ ・v玉|二 -| ・ ・ ・ ・ ・v銀 ・v歩 ・|三 -| ・ ・ ・ ・ ・ 飛 銀 角 ・|四 -| ・ ・ ・ ・ ・ ・ ・ 歩v歩|五 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|六 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|七 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|八 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|九 -+---------------------------+ -先手の持駒:銀 角  -先手番 -手数----指手---------消費時間-- diff --git a/src/tests/kif/600.kif b/src/tests/kif/600.kif deleted file mode 100644 index 0856e89..0000000 --- a/src/tests/kif/600.kif +++ /dev/null @@ -1,24 +0,0 @@ -発表年月:2011/06/25 00:00:00 -先手:先手 -後手:後手 -表題:全てを破壊する秘術 -作者:がもうの -出典:詰将棋パラダイス -手数:19 -作品番号:600 -後手の持駒:歩十六 香四 桂三 銀三 金二  - 9 8 7 6 5 4 3 2 1 -+---------------------------+ -| ・ ・ ・ ・ ・ ・ 龍 ・ ・|一 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|二 -| ・ ・ ・ ・ ・ ・ 飛 ・ ・|三 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|四 -| ・ ・ ・ ・ ・ 銀 ・ 桂 ・|五 -| ・ ・ ・ 馬 ・vと 金 ・ 馬|六 -| ・ ・ ・ ・ ・ ・ ・ ・ 金|七 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|八 -| ・ ・ ・ ・ ・ ・ ・ ・v玉|九 -+---------------------------+ -先手の持駒:なし -先手番 -手数----指手---------消費時間-- diff --git a/src/tests/kif/700.kif b/src/tests/kif/700.kif deleted file mode 100644 index 20236ac..0000000 --- a/src/tests/kif/700.kif +++ /dev/null @@ -1,24 +0,0 @@ -発表年月:2011/11/21 00:00:00 -先手:先手 -後手:後手 -表題:入り口が見えない -作者:暁人 -出典:詰将棋パラダイス -手数:13 -作品番号:700 -後手の持駒:歩十五 香二 銀四 金二  - 9 8 7 6 5 4 3 2 1 -+---------------------------+ -| ・ ・ ・ ・ ・ ・v歩 ・ ・|一 -| ・ ・ ・ ・ ・v桂v玉 ・ ・|二 -| ・ ・v角 ・ ・ ・ ・ ・ ・|三 -| ・ ・ ・ ・v歩v歩v桂v桂 ・|四 -| ・ ・ ・ ・ ・ ・ ・v香 ・|五 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|六 -| ・ ・ ・ ・ ・ ・v角 ・ ・|七 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|八 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|九 -+---------------------------+ -先手の持駒:桂 金二 飛二  -先手番 -手数----指手---------消費時間-- diff --git a/src/tests/kif/800.kif b/src/tests/kif/800.kif deleted file mode 100644 index daa99f2..0000000 --- a/src/tests/kif/800.kif +++ /dev/null @@ -1,24 +0,0 @@ -発表年月:2011/10/22 00:00:00 -先手:先手 -後手:後手 -表題:綺麗な囲いしてるだろ2 -作者:SEN -出典:詰将棋パラダイス -手数:19 -作品番号:800 -後手の持駒:歩十二 香三 桂三 銀 金 角  - 9 8 7 6 5 4 3 2 1 -+---------------------------+ -| ・ ・ ・ ・ ・ ・v玉v桂v香|一 -| ・ ・ ・ ・ 金 ・v金 ・ ・|二 -| ・ ・ ・ ・ ・v金v銀v歩v歩|三 -| ・ ・ ・ ・ ・v歩v歩 ・ ・|四 -| ・ ・ ・ ・ ・ ・ ・ ・ 歩|五 -| ・ ・ ・ ・ ・ ・ ・ 歩 ・|六 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|七 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|八 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|九 -+---------------------------+ -先手の持駒:銀二 角 飛二  -先手番 -手数----指手---------消費時間-- diff --git a/src/tests/kif/900.kif b/src/tests/kif/900.kif deleted file mode 100644 index 41dc82f..0000000 --- a/src/tests/kif/900.kif +++ /dev/null @@ -1,24 +0,0 @@ -発表年月:2011/12/20 00:00:00 -先手:先手 -後手:後手 -表題:メントスコーラ -作者:老島正 -出典:詰将棋パラダイス -手数:23 -作品番号:900 -後手の持駒:歩十四 香二 桂四 銀四 金三  - 9 8 7 6 5 4 3 2 1 -+---------------------------+ -| ・ ・ ・ 龍 ・ ・ ・ ・ 馬|一 -| ・ ・ ・ ・v香 ・ ・ 歩 ・|二 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|三 -| ・ ・ ・ ・ ・ 飛 ・ ・ ・|四 -| ・ ・ ・ ・ ・ ・ ・ ・v玉|五 -| ・ ・ ・ ・ ・ 角v歩 ・ ・|六 -| ・ ・ ・ ・ ・ ・ ・ ・ ・|七 -| ・ ・ ・ ・ 歩 ・ ・ ・ ・|八 -| ・ ・ ・ ・ ・ 金 ・ 香vと|九 -+---------------------------+ -先手の持駒:なし -先手番 -手数----指手---------消費時間-- From e4cb358d4461159b16283c90d3488a8f63dde65a Mon Sep 17 00:00:00 2001 From: tkgstrator Date: Wed, 11 Sep 2024 11:01:35 +0000 Subject: [PATCH 10/11] refactor: update to 0.0.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4301cd3..dda9c18 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@tsshogi/kanna", - "version": "0.0.3", + "version": "0.0.4", "description": "棋譜データをパースするライブラリです", "author": "tkgstrator", "license": "MIT", From 2d7482f9ec58de078f25dfb0c7ad55014cf93781 Mon Sep 17 00:00:00 2001 From: Shota Morimoto Date: Thu, 12 Sep 2024 03:12:16 +0000 Subject: [PATCH 11/11] docs: update README.md --- README.md | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++--- bun.lockb | Bin 118582 -> 118582 bytes 2 files changed, 70 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 90b038e..43c9d25 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -## Shogi Kif Parser +## Kanna 独自形式で配布されている棋譜データをtsshogiのRecord型に変換するためのライブラリです. @@ -6,6 +6,31 @@ - [x] 詰将棋パラダイス +### 導入 + +GitHub Package Registryを利用しているので`.npmrc`または`npm login`が必要になります + +```zsh +# .npmrc +registry=https://npm.pkg.github.com/tsshogi +``` + +インストールは以下のコマンドをご利用ください + +```zsh +# npm +npm install @tsshogi/kanna + +# yarn +yarn add @tsshogi/kanna + +# pnpm +pnpm install @tsshogi/kanna + +# bun +bun add @tsshogi/kanna +``` + ### 使い方 ```ts @@ -18,10 +43,52 @@ if (record instanceof Error) return exportKIF(record) // KIF形式の文字列 ``` -### 参考 +この結果、以下のようなレスポンスが得られます + +```zsh +表題:チョコマカ銀 +作者:須藤大輔 +発表誌:詰将棋パラダイス +発表年月:2010/07/21 +レベル:6 +ポイント:20 +ヒント:チョコマカ銀 +手数:11 +作品名:詰将棋パラダイス +作品番号:99 +後手の持駒:歩十八 香四 桂二 銀二 金三 角 飛二  + 9 8 7 6 5 4 3 2 1 ++---------------------------+ +| ・ ・ ・ ・ ・ ・ ・ ・ ・|一 +| ・ ・ ・ ・ ・ ・ ・ ・ ・|二 +| ・ ・ ・ ・ ・ ・ ・ ・ ・|三 +| ・ ・ ・ ・ ・ ・ 馬 銀v玉|四 +| ・ ・ ・ ・ ・ ・v金 ・v銀|五 +| ・ ・ ・ ・ ・ ・ 桂 ・ ・|六 +| ・ ・ ・ ・ ・ ・ ・ ・ ・|七 +| ・ ・ ・ ・ ・ ・ ・ ・ ・|八 +| ・ ・ ・ ・ ・ ・ ・ ・ ・|九 ++---------------------------+ +先手の持駒:桂  +先手番 +手数----指手---------消費時間-- +``` + +> 指し手も出力されますが、ネタバレ防止のためにここでは記載していません + +複数の詰み手順がある場合、それら全てを出力します。 + +KIF形式以外の出力をした場合、カスタムメタデータは失われてしまいます。 + +### 既知の問題 + +- 盤面情報が正しくないデータに対してパースが失敗してしまう + - 問題番号58など + +## 参考 - [tsshogi](https://github.com/sunfish-shogi/tsshogi) -### ライセンス +## ライセンス [MIT License](https://github.com/tsshogi/kanna/blob/main/LICENSE) diff --git a/bun.lockb b/bun.lockb index 4841d43b12b86e71d995760e74dfe698a49dda2d..ed07a08f551e3b428b467059cd0ddc74ba5eb493 100755 GIT binary patch delta 26 icmdlskA2%b_J%Et)m|KoafW&pdWHtuo4pt}w*UZtj0pMw delta 26 dcmdlskA2%b_J%Et)m|J-3=pur*^6;=3jlBE2X_Df