https://github.com/baban/trick2022
trick2022に応募して落選したコードの墓標です
https://github.com/baban/trick2022
Last synced: about 2 months ago
JSON representation
trick2022に応募して落選したコードの墓標です
- Host: GitHub
- URL: https://github.com/baban/trick2022
- Owner: baban
- Created: 2022-09-08T14:48:08.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-09-08T14:57:23.000Z (over 3 years ago)
- Last Synced: 2025-06-13T01:05:52.224Z (12 months ago)
- Language: Ruby
- Size: 8.79 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Authors: authors.markdown
Awesome Lists containing this project
README
# trick2022
trick2022に応募して落選したコードの墓標です
https://github.com/tric/trick2022
### Remarks
以下のコマンドで、引数で指定されたファイルにある数独の問題を解きます。
```
$ ruby -F" " -r ./suudoku.rb -W1 -a -n entry.rb problem.txt
```
また、オプションを指定することで、解いた問題を一部入れ替えて、新しい数独のパズルを生成します。
```
$ ruby -l -F" " -r ./suudoku.rb -W1 -a -n entry.rb problem.txt new_problem.txt
```
同じファイル名を指定すれば、問題を入れ替える事が出来ます
```
$ ruby -l -F" " -r ./suudoku.rb -W1 -a -n entry.rb problem.txt problem.txt
```
以下の実装/プラットフォームを用いて動作確認しています。
* ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]
* ruby 3.0.4p208 (2022-04-12 revision 3fa771dded) [x86_64-linux]
* ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]
### Description
このプログラムは、数独の問題を解きます。
また、オプションを指定することで、解いた問題の数値を一部入れ替えて新しい問題を生成します。
問題は`problem.txt`ファイルを中身を参考に、'-'で指定された部分を空欄にスペース区切りで記述します。
### Internals
* $で始まる1文字、または2文字の特殊変数を、すべて1回以上使用するプログラムにしました
- entry.rbは、ファイルの読み込みと、関数の呼び出しに使用しています
- 特殊変数は多少強引でも、意味を持たせて呼び出すようにしました
- 特殊変数はなるべく少ない回数使う用にしましたが、$"、$-iだけは2回使用しています
* 数独を解くプログラムは、suudoku.rbという別ファイルに書いています。
* "suudoku"の綴りがローマ字である理由は、アスキーアートにしたときの文字数を増やすためですです。
* 数独を生成するプログラムはかなり荒い作りです。解決できない問題を生成する事があります。