百人一首

ちはやふる (1) (Be・Loveコミックス)

ちはやふる (1) (Be・Loveコミックス)

  • 正月といえば百人一首。自らを含む周囲のブームである
  • 競技かるたでの百人一首は、2名の対戦形式。100枚のうち20枚の取り札を50枚ずつに分け、それを自陣に置く。置き方に厳密なルールはないが、25枚を3段9列くらいに格子状に整列させる
  • おてつきになるのは、次の4通り
    • A.自陣にある札が読まれたのに、相手陣にある札に触れてしまった。
    • B.相手陣にある札が読まれたのに、自陣にある札に触れてしまった。
    • C.空札が読まれたのに、相手陣にある札に触れてしまった。
    • D.空札が読まれたのに、自陣にある札に触れてしまった。
  • こちらにルール
  • したがって、
    • 自陣の札が読まれた場合には、取るべき札もそうでない札も区別せずに「全部払う」ことも可能。逆に、相手陣の札が読まれた場合にも、取るべき札とそれ以外の札との区別をせずに「全部払う」ことが可能
  • さて。
  • 上の句を読み始めると、全部を聞かずとも、どの札をとるべきかは決まる。ただし、何字まで聞くと決まるかは、札によってことなる。
    • k字決まりの札とは、上の句の上からk字で決まるような札のこと
    • ただし、「できる人」は「普通の人」にとって、k=1のところ、k=0.3だったり、「普通の人」がk=3のところ、k=1.5だったりするらしい
    • また、この決まり字のkの値は、試合開始時にはいつも確定しているが、試合が進むにつれて、すでに読まれた札の様相によって、変化してくる
    • 札の読まれる順序の場合の数は100!である
  • また、「全部払う」ことを想定すると、この決まり字数はさらに変わってくる
    • k'字読まれた時点で、可能性のある札がs枚になったとする。そのs枚が自陣にすべてある、もしくは相手陣にすべてあるときには、それを自陣すべて、もしくは相手陣すべてを「全部払う」ことで、札をとることができる
    • 陣の「全部払う」のではなく、複数枚が集まっている部分s'枚に限局すれば、そのs'枚すべてを払うことで、札をとることができる
    • したがって、札100枚が読まれる順序の場合の数(100!)の他に、取り札50枚の選ばれる場合の数_{100} C_{50}、それが25枚ずつに分けられる場合の数_{50}C_{25}、それらを配置する具合と、何枚を一塊と考えるか(s'=1,2,...,25)…これは分割数…とで決まってくる
  • このように考えつつ、ゲームの進行にあっては、札の配置を変えることができ、さらに相手陣の札を取ったときには、自陣の札を相手陣に渡す、というルールもあり、さらに、場合の数が変わり、「戦略」をたてることができる
  • さて、これをどうやって「ゲームとして実装」しようか…
  • まずは、基礎情報を電子化しよう
  • 上の句の五十音順でソート
79	あきかぜに	たなびくくもの	たえまより	もれいづるつきの	かげのさやけさ
1	あきのたの	かりほのいほの	とまをあらみ	わがころもでは	つゆにぬれつつ
52	あけぬれば	くるるものとは	しりながら	なほうらめしき	あさぼらけかな
39	あさぢふの	をののしのはら	しのぶれど	あまりてなどか	ひとのこひしき
31	あさぼらけ	ありあけのつきと	みるまでに「	よしののさとに	ふれるしらゆき
64	あさぼらけ	うぢのかはぎり	たえだえに	あらはれわたる	せぜのあじろぎ
3	あしびきの	やまどりのをの	しだりおの	ながながしよを	ひとりかもねむ
78	あはぢしま	かよふちどりの	なくこゑに	いくよねざめぬ	すまのせきもり
45	あはれとも	いふべきひとは	おもほえで	みのいたづらに	なりぬべきかな
43	あひめての	のちのこころに	くらぶれば	むかしはものを	おもはざりけり
					
44	あふことの	たえてしなくは	なかなかに	ひとをもみをも	うらみざらまし
12	あまつかぜ	くものかよひじ	ふきとじよ	をとめのすがた	しばしとどめむ
7	あまのはら	ふりさけみれば	かすがなる	みかさのやまに	いでしつきかも
56	あらざらむ	このよのほかの	おもひでに	いまひとたびの	あふこともがな
69	あらしふく	みむろのやまの	もみぢばは	たつたのかはの	にしきなりけり
30	ありあけの	つれなくみえし	わかれより	あかづきばかり	うきものはなし
58	ありまやま	ゐなのささはら	かぜふけば	いでそよひとを	わすれやはする
61	いにしへの	ならのみやこの	やへざくら	けふここのへに	にほひぬるかな
21	いまこむと	いひしばかりに	ながつきの	ありあけのつきを	まちいでつるかな
63	いまはただ	おもひたえなむ	とばかりを	ひとづてならで	いふよしもがな
					
74	うかりける	ひとをはつせの	やまおろしよ	はげしかれとは	いのらぬものを
65	うらみわび	ほさぬそでだに	あるものを	こひにくちなむ	なこそをしけれ
5	おくやまに	もみぢふみわけ	なくしかの	こゑきくときぞ	あきはかなしき
72	おとにきく	たかしのはまの	あだなみは	かけじはそでの	ぬれもこそすれ
60	おほえやま	いくののみちの	とほければ	まだふみもみず	あまのはしだて
95	おほけなく	うきよのたみに	おほふかな	わがたつそまに	すみぞめのそで
82	おもひわび	さてもいのちは	あるものを	うきにたへぬは	わがみなりけり
51	かくとだに	えはやいぶきの	さしもぐさ	さしもしらじな	もゆるおもひを
6	かささぎの	わたせるはしに	おくしもの	しろきをみれば	よぞふけにける
48	かぜをいたみ	いはうつなみの	おのれのみ	くだけてものを	おもふころかな
					
98	かぜをよぐ	ならのをがはの	ゆふぐれは	みそぎぞなつの	しるしなりける
15	きみがため	はるののにいでて	わかなつむ	わがころもでに	ゆきはふりつつ
50	きみがため	をしからざりし	いのちさへ	ながくもがなと	おもひけるかな
91	きりぎりす	なくやしもよの	さむしろに	ころもかたしき	ひとりかもねむ
29	こころあてに	おらばやおらむ	はつしもの	おきまどはせる	しらぎくのはな
68	こころにも	あらでうきをに	ながらへば	こひしかるべき	よはのつきかな
97	こぬひとを	まつほのうらの	ゆふなぎに	やくやもしほの	みもこがれつつ
24	このたびは	ぬさもとりあへず	たむけやま	もみぢのにしき	かみのまにまに
41	こひすてふ	わがなはまだき	たちにけり	ひとしれずこそ	おもひそめしか
10	これやこの	ゆくもかへるも	わかれては	しるもしらぬむ	あふさかのせき
					
70	さひしさに	やどをたちいでて	ながむれば	いづこもおなじ	あきのゆふぐれ
40	しのぶれど	いろにいでにけり	わがこひは	ものやおもふと	ひとのとふまで
37	しらつゆに	かぜのふきしく	あきののは	つらぬきとめぬ	たまぞちりける
18	すみのえの	きにしよるなみ	よるさへや	ゆめのかよひぢ	ひとめよくらむ
77	せをはやみ	いはにせかるる	たきがわの	われてもすゑに	あはんとぞおもふ
73	たかさごの	をのへのさくら	さきにけり	とやまのかすみ	たたずもあらなむ
55	たきのおとは	たえてひさしく	なりぬれど	なこそながれて	なほきこえけれ
4	たごのうらに	うち出でてみれば	しろたへの	ふじのたかねに	ゆきはふりつつ
16	たちわかれ	いなばのやまの	みねにおふる	まつとしきかば	いまかへりこむ
89	たまのをよ	たえなばたえね	ながらへば	しのぶることの	よわりもぞする
					
34	たれをかも	しるひとにせむ	たかさごの	まつもむかしの	ともならなくに
75	ちぎりおきし	させもがつゆを	いのちにて	あはれことしの	あきもいぬめり
42	ちぎりきな	かたみにそでを	しぼりつつ	すえのまつやま	なみこさじとは
17	ちはやぶる	かみよもきかず	たつたがは	からくれなゐに	みずくくるとは
23	つきみれば	ちぢにものこを	かなしけれ	わがみひとつの	あきにはあらねど
13	つくばねの	みねよりおつる	みなのがわ	こひぞつもりて	ふちとなりぬる
80	ながからむ	こころもしらず	くろかみの	みだれてけさは	ものをこそおもへ
84	ながらへば	またこのごろや	しのばれむ	うしとみしよぞ	いまはこひしき
53	なげきつつ	ひとりぬるよの	あくるまは	いかにひさしき	ものとかはしる
86	なげけとて	つきやは	ものをおもはする	かこちがほなる	わがなみだかな
					
36	なつのよは	まだよひながら	あけぬるを	くものいづこに	つきやどるらむ
25	なにしおはば	あうさかやまの	さねがづら	ひとにしられで	くるよしもがな
19	なにはがた	みじかきあしの	ふしのまも	あはでこのよを	すぐしてよとや
88	なにはへの	あしのかりねの	ひとよゆゑ	みをつくしてや	こひわたるべき
96	はなさそふ	あらしのにはの	ゆきならで	ふりゆくものは	わがみなりけり
9	はなのいろは	うつりにけりな	いたづらに	わがみよにゆる	ながめせしまに
2	はるすぎて	なつきにけらし	しろたへの	ころもほすてふ	あまのかぐやま
67	はるのよの	ゆめばかりなる	たまくらに	かひなくたたむ	なこそをしけれ
33	ひさかたの	ひかりのどけき	はるのひに	しづこころなく	はなのちるらむ
35	ひとはいさ	こころもしらず	ふるさとは	はなぞむかしの	かににほひける
					
99	ひともをし	ひともうらめし	あぢきなく	よをおもふゆゑに	ものおもふみは
22	ふくからに	あきのくさきの	しをるれば	むべやまかぜを	あらしといふらむ
81	ほととぎす	なきつるかたを	ながむれば	ただありあけの	つきぞのこれる
49	みかきもり	ゑじのたくひの	よるはもえ	ひるはきえつつ	ものをこそおもへ
27	みかのはら	わきてながるる	いづみがわ	いつみきとてか	こひしかるらむ
90	みせばやな	をじまのあまの	そでだにも	ぬれにぞぬれし	いろはかわらず
14	みちのくの	しのぶもぢずり	たれゆゑに	みだれそめにし	われならなくに
94	みよしのの	やまのあきかぜ	さよふけて	ふるさとさむく	ころもうつなり
87	むらさめの	つゆもまだひぬ	まきのはに	きりたちのぼる	あきのゆふぐれ
57	めぐりあひて	みしやそれとも	わかぬまに	くもがくれにし	よはのつきかな
					
100	ももしきや	ふるきのきばの	しのぶにも	なほあまりある	むかしなりけり
66	もろともに	あはれとおもへ	やまざくら	はなよりほかに	しるひともなし
59	やすらはで	ねなましものを	さよふけて	かたぶくまでの	つきをみしかな
47	やへむぐら	しげれるやどの	さびしさに	ひとこそみえね	あきはきにけり
32	やまがわに	かぜのかけたる	しがらみは	ながれもあへぬ	もみぢなりけり
28	やまざとは	ふゆぞさびささ	まさりける	ひとめもくさも	かれぬとおもへば
71	ゆふされば	かどたのいなば	おとづれて	あしのまろやに	あきかぜぞふく
46	ゆらのとを	わたるふなびと	かぢをたえ	ゆくへもしらぬ	こひのみちかな
93	よのなかは	つねにもがもな	なぎさこぐ	あまのをぶねの	つなでかなしも
83	よのなかよ	みちこそなけれ	おもひいる	やまのおくにも	しかぞなくなる
					
85	よもすがら	ものおもふころは	あけやらで	ねやのひまさへ	つれなかりけり
62	よをこめて	とりのそらねは	かかるとも	よにあふさかの	せきはゆるさじ
8	わがいほは	みやこのたつみ	しかぞすむ	よをうぢやまと	ひとはいふなり
92	わがそでは	しほひにみえぬ	おきのいしの	ひとこそしらね	かわくまもなし
38	わすらるる	みをばおもはず	ちかひてし	ひとのいのちの	をしくもあるかな
54	わすれじの	ゆくすゑまでは	かたければ	けふをかぎりの	いのちともがな
11	わたのはら	やそしまかけて	こぎいでぬと	ひとにはつげよ	あまのつりぶね
76	わたのはら	こぎいでてみれば	ひさかたの	くもゐにまがふ	おきつしらなみ
20	わびぬれば	いまはたおなじ	なにはなる	みをつくしても	あわむとぞおもふ
26	をぐらやま	みねのもみぢば	こころあらば	いまひとたびの	みゆきまたなむ
  • 下の句の五十音順でソート
30	ありあけの	つれなくみえし	わかれより	あかづきばかり	うきものはなし
71	ゆふされば	かどたのいなば	おとづれて	あしのまろやに	あきかぜぞふく
19	なにはがた	みじかきあしの	ふしのまも	あはでこのよを	すぐしてよとや
75	ちぎりおきし	させもがつゆを	いのちにて	あはれことしの	あきもいぬめり
93	よのなかは	つねにもがもな	なぎさこぐ	あまのをぶねの	つなでかなしも
39	あさぢふの	をののしのはら	しのぶれど	あまりてなどか	ひとのこひしき
64	あさぼらけ	うぢのかはぎり	たえだえに	あらはれわたる	せぜのあじろぎ
21	いまこむと	いひしばかりに	ながつきの	ありあけのつきを	まちいでつるかな
53	なげきつつ	ひとりぬるよの	あくるまは	いかにひさしき	ものとかはしる
78	あはぢしま	かよふちどりの	なくこゑに	いくよねざめぬ	すまのせきもり
					
70	さひしさに	やどをたちいでて	ながむれば	いづこもおなじ	あきのゆふぐれ
27	みかのはら	わきてながるる	いづみがわ	いつみきとてか	こひしかるらむ
58	ありまやま	ゐなのささはら	かぜふけば	いでそよひとを	わすれやはする
26	をぐらやま	みねのもみぢば	こころあらば	いまひとたびの	みゆきまたなむ
56	あらざらむ	このよのほかの	おもひでに	いまひとたびの	あふこともがな
82	おもひわび	さてもいのちは	あるものを	うきにたへぬは	わがみなりけり
84	ながらへば	またこのごろや	しのばれむ	うしとみしよぞ	いまはこひしき
29	こころあてに	おらばやおらむ	はつしもの	おきまどはせる	しらぎくのはな
72	おとにきく	たかしのはまの	あだなみは	かけじはそでの	ぬれもこそすれ
86	なげけとて	つきやは	ものをおもはする	かこちがほなる	わがなみだかな
					
59	やすらはで	ねなましものを	さよふけて	かたぶくまでの	つきをみしかな
67	はるのよの	ゆめばかりなる	たまくらに	かひなくたたむ	なこそをしけれ
17	ちはやぶる	かみよもきかず	たつたがは	からくれなゐに	みずくくるとは
87	むらさめの	つゆもまだひぬ	まきのはに	きりたちのぼる	あきのゆふぐれ
48	かぜをいたみ	いはうつなみの	おのれのみ	くだけてものを	おもふころかな
57	めぐりあひて	みしやそれとも	わかぬまに	くもがくれにし	よはのつきかな
36	なつのよは	まだよひながら	あけぬるを	くものいづこに	つきやどるらむ
76	わたのはら	こぎいでてみれば	ひさかたの	くもゐにまがふ	おきつしらなみ
61	いにしへの	ならのみやこの	やへざくら	けふここのへに	にほひぬるかな
54	わすれじの	ゆくすゑまでは	かたければ	けふをかぎりの	いのちともがな
					
68	こころにも	あらでうきをに	ながらへば	こひしかるべき	よはのつきかな
13	つくばねの	みねよりおつる	みなのがわ	こひぞつもりて	ふちとなりぬる
65	うらみわび	ほさぬそでだに	あるものを	こひにくちなむ	なこそをしけれ
91	きりぎりす	なくやしもよの	さむしろに	ころもかたしき	ひとりかもねむ
2	はるすぎて	なつきにけらし	しろたへの	ころもほすてふ	あまのかぐやま
5	おくやまに	もみぢふみわけ	なくしかの	こゑきくときぞ	あきはかなしき
51	かくとだに	えはやいぶきの	さしもぐさ	さしもしらじな	もゆるおもひを
33	ひさかたの	ひかりのどけき	はるのひに	しづこころなく	はなのちるらむ
89	たまのをよ	たえなばたえね	ながらへば	しのぶることの	よわりもぞする
10	これやこの	ゆくもかへるも	わかれては	しるもしらぬむ	あふさかのせき
					
6	かささぎの	わたせるはしに	おくしもの	しろきをみれば	よぞふけにける
42	ちぎりきな	かたみにそでを	しぼりつつ	すえのまつやま	なみこさじとは
81	ほととぎす	なきつるかたを	ながむれば	ただありあけの	つきぞのこれる
69	あらしふく	みむろのやまの	もみぢばは	たつたのかはの	にしきなりけり
37	しらつゆに	かぜのふきしく	あきののは	つらぬきとめぬ	たまぞちりける
73	たかさごの	をのへのさくら	さきにけり	とやまのかすみ	たたずもあらなむ
50	きみがため	をしからざりし	いのちさへ	ながくもがなと	おもひけるかな
3	あしびきの	やまどりのをの	しだりおの	ながながしよを	ひとりかもねむ
32	やまがわに	かぜのかけたる	しがらみは	ながれもあへぬ	もみぢなりけり
55	たきのおとは	たえてひさしく	なりぬれど	なこそながれて	なほきこえけれ
					
100	ももしきや	ふるきのきばの	しのぶにも	なほあまりある	むかしなりけり
52	あけぬれば	くるるものとは	しりながら	なほうらめしき	あさぼらけかな
90	みせばやな	をじまのあまの	そでだにも	ぬれにぞぬれし	いろはかわらず
85	よもすがら	ものおもふころは	あけやらで	ねやのひまさへ	つれなかりけり
74	うかりける	ひとをはつせの	やまおろしよ	はげしかれとは	いのらぬものを
35	ひとはいさ	こころもしらず	ふるさとは	はなぞむかしの	かににほひける
66	もろともに	あはれとおもへ	やまざくら	はなよりほかに	しるひともなし
92	わがそでは	しほひにみえぬ	おきのいしの	ひとこそしらね	かわくまもなし
47	やへむぐら	しげれるやどの	さびしさに	ひとこそみえね	あきはきにけり
41	こひすてふ	わがなはまだき	たちにけり	ひとしれずこそ	おもひそめしか
					
63	いまはただ	おもひたえなむ	とばかりを	ひとづてならで	いふよしもがな
25	なにしおはば	あうさかやまの	さねがづら	ひとにしられで	くるよしもがな
11	わたのはら	やそしまかけて	こぎいでぬと	ひとにはつげよ	あまのつりぶね
38	わすらるる	みをばおもはず	ちかひてし	ひとのいのちの	をしくもあるかな
28	やまざとは	ふゆぞさびささ	まさりける	ひとめもくさも	かれぬとおもへば
44	あふことの	たえてしなくは	なかなかに	ひとをもみをも	うらみざらまし
49	みかきもり	ゑじのたくひの	よるはもえ	ひるはきえつつ	ものをこそおもへ
4	たごのうらに	うち出でてみれば	しろたへの	ふじのたかねに	ゆきはふりつつ
96	はなさそふ	あらしのにはの	ゆきならで	ふりゆくものは	わがみなりけり
94	みよしのの	やまのあきかぜ	さよふけて	ふるさとさむく	ころもうつなり
					
60	おほえやま	いくののみちの	とほければ	まだふみもみず	あまのはしだて
16	たちわかれ	いなばのやまの	みねにおふる	まつとしきかば	いまかへりこむ
34	たれをかも	しるひとにせむ	たかさごの	まつもむかしの	ともならなくに
7	あまのはら	ふりさけみれば	かすがなる	みかさのやまに	いでしつきかも
98	かぜをよぐ	ならのをがはの	ゆふぐれは	みそぎぞなつの	しるしなりける
14	みちのくの	しのぶもぢずり	たれゆゑに	みだれそめにし	われならなくに
80	ながらかむ	こころもしらず	くろかみの	みだれてけさは	ものをこそおもへ
45	あはれとも	いふべきひとは	おもほえで	みのいたづらに	なりぬべきかな
20	わびぬれば	いまはたおなじ	なにはなる	みをつくしても	あわむとぞおもふ
88	なにはへの	あしのかりねの	ひとよゆゑ	みをつくしてや	こひわたるべき
					
43	あひめての	のちのこころに	くらぶれば	むかしはものを	おもはざりけり
22	ふくからに	あきのくさきの	しをるれば	むべやまかぜを	あらしといふらむ
40	しのぶれど	いろにいでにけり	わがこひは	ものやおもふと	ひとのとふまで
24	このたびは	ぬさもとりあへず	たむけやま	もみぢのにしき	かみのまにまに
79	あきかぜに	たなびくくもの	たえまより	もれいづるつきの	かげのさやけさ
97	こぬひとを	まつほのうらの	ゆふなぎに	やくやもしほの	みもこがれつつ
83	よのなかよ	みちこそなけれ	おもひいる	やまのおくにも	しかぞなくなる
46	ゆらのとを	わたるふなびと	かぢをたえ	ゆくへもしらぬ	こひのみちかな
18	すみのえの	きにしよるなみ	よるさへや	ゆめのかよひぢ	ひとめよくらむ
31	あさぼらけ	ありあけのつきと	みるまでに「	よしののさとに	ふれるしらゆき
					
62	よをこめて	とりのそらねは	かかるとも	よにあふさかの	せきはゆるさじ
8	わがいほは	みやこのたつみ	しかぞすむ	よをうぢやまと	ひとはいふなり
99	ひともをし	ひともうらめし	あぢきなく	よをおもふゆゑに	ものおもふみは
15	きみがため	はるののにいでて	わかなつむ	わがころもでに	ゆきはふりつつ
1	あきのたの	かりほのいほの	とまをあらみ	わがころもでは	つゆにぬれつつ
95	おほけなく	うきよのたみに	おほふかな	わがたつそまに	すみぞめのそで
23	つきみれば	ちぢにものこを	かなしけれ	わがみひとつの	あきにはあらねど
9	はなのいろは	うつりにけりな	いたづらに	わがみよにゆる	ながめせしまに
77	せをはやみ	いはにせかるる	たきがわの	われてもすゑに	あはんとぞおもふ
12	あまつかぜ	くものかよひじ	ふきとじよ	をとめのすがた	しばしとどめむ
  • 100首の歌番号、5,7,5,7,7の5つ、の併せて6つをタブ区切りでテキストファイル保管して、試してみる
  • 自陣にも相手陣にも出ていない札も含めてとっていいかどうかの判定をしないといけないところや、送り札のことなどはまだ実装していないけれど、場のどの札が候補かをハイライトするところまでは作ってみた
  • そんなことより、実地で勝つために覚えることの方が大事だと言う意見も周囲から聞こえますが。…

# 百首
n <- 100
# 競技に使う枚数
k <- 50 # 偶数
# 100首を読む順番
yomi <- sample(1:n)
# 場札k枚を選ぶ
tori <- sample(1:n,k)
# 自陣と相手陣とにわける
jijin <- sample(tori)
tekijin <- jijin[(k/2+1):k]
jijin <- jijin[1:(k/2)]
# ファイルcarta.txtを読み込む
# 100行6列タブ区切りファイル
# 第1列は1−100の通し番号
# 2,3,4,5,6列は5,7,5,7,7を音(いろは)で
carta <- as.matrix(read.table("carta.txt",sep="\t"))
# 5,7,5,7,7をつなぐ
kamis <- carta[,2]
for(i in 3:6){
	kamis <- paste(kamis,carta[,i],sep="")
}
# 5,7,5,7,7を1シラブルずつのリストにする
kamis.split <- strsplit(kamis,NULL)
# 各首の頭の文字を格納
head.letter <- rep("",n)
for(i in 1:n){
	head.letter[i] <- kamis.split[[i]][1]
}
head.letter2 <- c("",head.letter)
M <- matrix(0, length(kamis),length(kamis))
# ある札が読まれたときに、100首がそれぞれ何文字目まで同じかを行列に格納
for(i in 1: length(M[,1])){
	 for(j in 1:length(M[1,])){
		tmp <- as.numeric(kamis.split[[i]][1:31] != kamis.split[[j]][1:31])
		tmp.cum <- cumsum(tmp)
		tmp2 <- which(tmp.cum==0)
		if(length(tmp2)>0){
			M[i,j] <- max(tmp2)
		}
		
	}
}

# 自陣・敵陣は3x9=27 > 25 で並べることにする
# 27-25=2の位置は「0」とする
n.col <- 9
n.row <- 3
init.tekijin <- sample(c(tekijin,rep(0,n.col*n.row-length(tekijin))))
init.jijin <- sample(c(jijin,rep(0,n.col*n.row-length(jijin))))
m.tekijin <- matrix(init.tekijin,n.row,n.col)
m.jijin <- matrix(init.jijin,n.row,n.col)

# 一枚ずつ読む
par(ask=TRUE)
for(i in 1:length(yomi)){
	# 読み札を0字から31字まで順番に読む
	loop <- TRUE
	cnt <- 0
	j <-0
	print(kamis[[yomi[i]]])
	# とれる状態になるまで、もしくは、空札と判明するまで読む文字数を増やす
	while(loop){
		# 現在、場にある札を行列化する(ただし、札なし=0を1とするべく、歌番号+1で表しておく
		m.both <- rbind(m.tekijin,m.jijin)+1
		# 読み札について、100首が何文字目まで一致するかをベクトルで取り出す
		tmp <- M[yomi[i],]
		# まだ読まれていない札について、何文字目まで一致するかをベクトルで取り出す
		yets <- M[yomi[i],yomi[i:n]]
		# 今読まれているのはj文字目。その時点で、可能性がある(2)、ない(1)、空き位置(0)とする
		tmp2 <- c(0,(tmp>=j)+1)
		# まだ読まれていない札についても、可能性の点2,1,0をつける
		yets2 <- c(0,(yets>=j)+1)
		# まだ読まれていない札のうち、可能性があるものの枚数
		resid <- length(which(yets2==2))
		# 場の札について、可能性があるかどうかの値をつける
		tmp.m <- matrix(tmp2[m.both],nrow=n.row*2,ncol=n.col)
		# 場になくて、まだ読まれていない、可能性がある札の枚数
		resid.out <- resid-length(which(tmp.m==2))
		#print(length(which(tmp.m==2)))
		#print(resid.out)
		#print(resid)
		# 可能性のない札は黒
		# 可能性はあるが、まだ場になくて、まだ読まれていない札が残っていれば、赤
		# 可能性がある札がすべて場にあれば緑とするために、色ベクトルを作る
		col.tmp2 <- tmp2
		if(resid.out == 0){
			col.tmp2[which(tmp2==2)] <- 3
		}
		#print(tmp2[m.both])

		dims <- which(tmp.m>=0,arr.ind=TRUE)
		# 表示のためのパラメタ
		s <- 0.3

		title <- paste(i,kamis[[yomi[i]]])
		title <- paste(title,kamis.split[[yomi[i]]][j],sep="\n")
		title.sub = paste("場外枚数",resid.out)
		title <- paste(title,title.sub,sep="\n")
		plot(dims[,1],dims[,2],col=col.tmp2[c(m.both)],main=title,pch=head.letter2[c(m.both)],cex=4,xlim=c(min(dims[,1])-s,max(dims[,1])+s),ylim=c(min(dims[,2])-s,max(dims[,2])+s))
		# 自陣・相手陣を分ける線
		abline(v=3.5)
		# 当たり札が無ければ、読み上げを中断
		if(length(which(tmp.m==2))==0){
			j <- 32
		# 当たり札が場に1枚になっていて、場外の該当札が0枚になっていれば
		# それを取って、次の札へ
		}else if(length(which(tmp.m==2)) ==1){
		#}else if(length(which(tmp2>=2)) ==1){
			if(resid.out==0){
				j <- 32
				# とった札は、「場になし」とする
				m.tekijin[which(m.tekijin==yomi[i])] <- 0
				m.jijin[which(m.jijin==yomi[i])] <- 0
			}
		}
		# 読み上げ文字番を次に上げる
		j <- j+1
		# 読み上げ文字のループの中段を制御する処理
		if(j>=31){
			loop <- FALSE
		}
	}
}