形を替えても、11人が迷子にならない38のフォーメーションと、選手を移す計算
スタメンを11人並べたあとで、「やっぱり 3バックにしたい」と思うことがあります。形を替えるたびに11人を選び直すのでは、気軽に試せません。マイイレブンとペタスタでは、形を替えると選手が近い役割の位置へ自動で移ります。このノートでは、その計算の中身と、うまくいかない場合を紹介します。
38種類の形を、どう持っているか
形は全部で38種類あり、4バックが17、3バックが12、5バックが9です。数字が同じでも別の形として持っています。たとえば 4-4-2 には、中盤が横に並ぶふつうの形と、ひし形のダイヤモンドがあります。4-2-3-1 にも、2列目が中へ絞る形を別に用意しています。実際の試合より遊びの色が濃い 4-6-0 や、古典の WM(3-2-2-3)も入れました。
1つの形は、11人分の次の情報でできています。
- 位置:左右と前後を、それぞれ0から100の数字で表します。左のタッチラインが左右の0、自陣のゴールラインが前後の0です。
- 役割:左サイドバック、アンカー、トップ下など、全部で25種類あります。形が違っても、同じ役割なら同じ印を付けます。
- 分類:ゴールキーパー・DF・MF・FW の4つのどれかです。
- その形での呼び名:同じ位置づけでも、形によって呼び方が変わります。中央の左の選手は、4-4-2 では「ボランチ」、4-3-3 では「インサイドハーフ」と表示します。
一見すると重なる形もあえて両方入れています。3-4-2-1 と 5-4-1 は、数字はまったく違いますが、同じチームの攻めと守りの姿であることが多い形です。ボールを持っているときは2人のシャドーが前に出て、守るときは下がって中盤に並ぶ、という関係です。どちらの姿で見せたいかは作る人によって違うので、別々に選べるようにしました。
形を足すときには、見た目の決まりを2つ機械で確かめます。1つは名前の札が重ならないことで、横の間が17未満で、しかも縦の間が10未満の2人を作りません。もう1つは左右対称であることです。名前の札は選手の下に付くので、数字の上では離れていても、画像にすると札どうしがぶつかることがあります。形の良し悪しを目で見る前に、ここで落とせるようにしています。
38種類すべてを最初から並べると、選ぶのに迷います。そこで画面には、よく使われる形として選んだ8つを先に出し、残りは「ほかの型」を押すと系統別に出るようにしました。いま使っている形がこの8つにないときは、列の先頭に足します。
どの形にも、短い呼び名(id)を付けています。共有リンクにはこの呼び名が入るので、公開したあとは変えません。呼び名が消えたり変わったりすると、自動のテストが失敗する作りです。表示名は直せても、呼び名を変えると過去に送ったリンクの形が変わってしまうためです。
「近さ」を点数にする
形を替えるときに決めるのは、「今の11の位置にいる選手を、新しい11の位置のどこへ移すか」です。そこで、すべての組み合わせに「動く負担」の点数を付けます。点数が小さいほど自然な移動です。
| 今の役割と、移る先の役割の関係 | 点数 | 例 |
|---|---|---|
| 同じ役割 | 0 | 左サイドバック → 左サイドバック |
| 近い役割 | 1 | 左サイドバック → 左ウイングバック |
| 同じ分類 | 2 | 左サイドバック → 真ん中のセンターバック |
| 別の分類 | 4 | 右サイドバック → 右シャドー |
| ゴールキーパーと、それ以外の間 | 100 | ゴールキーパー → センターバック |
「近い役割」は、役割ごとにあらかじめ決めた一覧です。ここに位置の離れ具合を少しだけ足します。距離を100で割った値なので、10離れていても 0.1 点です。役割の関係で大筋を決め、同じくらいの候補があるときは近い位置を選ぶ、という重みづけになります。
ゴールキーパーの100点は、事実上の禁止です。他の10人がどう動いても、キーパーが前線へ出ていく組み合わせが選ばれることはありません。
ここで見ているのは、選手を今どこに置いているかだけです。その選手が登録上 DF か FW かは見ません。FW の選手をあえてサイドバックに置いた人なら、その選手は「サイドバックの人」として移ります。使う人が置いた場所を尊重するためです。
1人ずつ決めると、最後の1人が困る
いちばん素直な決め方は、点数の小さい組から順に決めていくことです。ところが、これには落とし穴があります。4-2-3-1 から 3-4-2-1 へ替える例で比べてみます。
小さい順に決めると、左右のセンターバックと2人のボランチ、ゴールキーパー、1トップは同じ役割のまま決まります。真ん中のセンターバックには、同じ DF の左サイドバックが入ります。左右のウイングバックには、近い役割として左右のサイドハーフが入ります。すると最後に、右サイドバックと右シャドーの位置が余ります。右サイドバックが、ピッチの後ろから前へ大移動することになるのです。
全体の合計で考えると、別の答えがあります。
- 左側:左サイドバックが左センターバックへ、左センターバックが真ん中へ、1つずつ内側にずれます。左サイドハーフが左ウイングバックに下がります。
- 右側:右サイドバックは、右ウイングバックへ上がります。
- 前線:右サイドハーフが右シャドーへ、トップ下が左シャドーへ移ります。
合計の点数は、小さい順に決めたときの約10.6に対して約7.3です。1人が大きく動く代わりに、数人が少しずつずれることで、全体の負担が小さくなります。38種類の形どうしの替え方は1,406通りありますが、調べると、小さい順の決め方では812通りで合計が最小になりませんでした。
全部は試さず、最小の組を見つける
ゴールキーパーを除いた10人の並べ方は、3,628,800通りあります。全部を計算することもできなくはありませんが、むだの多いやり方です。そこで、「割り当て問題」を解く定番の方法である、ハンガリー法を使っています。1950年代に発表された計算方法で、人と仕事の組み合わせで合計の費用を最小にする、といった問題に使われてきました。
仕組みをおおまかに言うと、点数の表の行と列から同じ数を引いていき、0点の組だけで全員を割り当てられる形を探します。表全体を調整するので、全通りを試さなくても、合計が最小の組み合わせにたどり着けます。
この計算はお使いの端末の中だけで行います。11人なら計算量はわずかで、開発用のパソコンで測ると1回1ミリ秒を大きく下回りました。形のボタンを押してすぐに並び替わるのは、このためです。
実際の動きの例
よくある「守りを固める」変更、4-3-3 から 5-4-1 への動きです。
| 4-3-3 での役割 | 5-4-1 での役割 |
|---|---|
| ゴールキーパー | ゴールキーパー |
| 左・右サイドバック | 左・右ウイングバック |
| 左・右センターバック | 左・右センターバック(そのまま) |
| アンカー | 真ん中のセンターバック |
| 左・右インサイドハーフ | 左・右の中盤(そのまま) |
| 左・右ウイング | 左・右サイドハーフ |
| センターフォワード | センターフォワード(そのまま) |
アンカーが最終ラインに下りて、ウイングが1列下がる形です。サッカーを見ている人の感覚に近い答えが、点数の計算だけで出てきます。1,406通りを平均すると、11人のうち約5.7人は同じ役割のままで、別の分類へ移るのは約1.5人でした。
自動のテストで確かめていること
38種類から38種類への替え方は、同じ形どうしも含めて1,444通りあります。手で全部を確かめるのは無理なので、次のことを自動のテストで毎回確かめています。
- 11人が減らない:どの替え方でも、同じ11人のままで、だれも消えず、だれも重なりません。
- キーパーはキーパーのまま:どの替え方でも、ゴールキーパーの枠の選手はゴールキーパーの枠へ移ります。
- 空きがあっても動く:まだ選んでいない枠があっても替えられます。空きは点数0で扱うので、選手が先に場所を決め、余った場所が空きになります。
なお、ベンチの選手は形を替えても動きません。
この計算の弱点
点数を最小にすることと、見て納得できることは、いつも同じとは限りません。今わかっている弱点を書いておきます。
- 1人だけ大きく動くことがある:4-4-2 から 3-4-2-1 へ替えると、FW の1人が真ん中のセンターバックへ移ります。ほかの全員の負担を抑えた結果ですが、見た人は驚くと思います。こうしたときは、選手を手で入れ替えて直す前提です。
- 左右でそろわないことがある:形はすべて左右対称なので、左右を入れ替えた答えも同じ点数になることがあります。どちらになるかは計算の順番で決まるので、先ほどの 3-4-2-1 の例のように、左と右で動き方が違って見えます。
- 元の形に戻しても、元の並びに戻るとは限らない:計算は「今の並び」だけを見て、替える前の並びは覚えていません。1,406通りのうち、行って戻って完全に元どおりになるのは810通りです。残りは何人かの位置が変わるので、試したあとは並びを見直す必要があります。
- 細かい立ち位置までは表せない:形は38種類から選ぶだけで、選手の位置を指で少しずらすことはできません。偏ったサイドバックのような細かい特徴は、画像には出せません。
点数は表の数字を変えるだけで調整できるので、変な動きが見つかったら、数字か「近い役割」の一覧を見直すつもりです。
小さな問題に、定番の道具を使う
振り返ると、「形を替えても選手が近くへ移る」という小さな機能の中身は、役割の近さを点数にする部分と、割り当て問題を解く部分の2つに分かれました。後半は昔からある解き方をそのまま使えます。工夫のしどころは前半の、サッカーの感覚を数字に置きかえる部分でした。
なお、この計算は端末の中だけで行いますが、ページを表示するためのファイルの取得と、Cookie を使わないアクセス解析の通信は別にあります。サービスに広告を入れるときも、別の通信になります。くわしくは各サービスのプライバシーポリシーをご覧ください。画像を描く部分については「スタメンの画像を、スマホの中で描く」に、それぞれの使い方は「マイイレブン」「ペタスタ」の紹介ページにまとめています。