"/" にファイルをアップロード

各ポジション選定の条件の作り替え、希少プレースタイルのオンオフ機能追加
This commit is contained in:
2025-12-16 11:54:03 +09:00
parent e4a0f60f3c
commit a34ea86cbc
3 changed files with 531 additions and 122 deletions

View File

@@ -1,101 +1,505 @@
// フォーメーションごとの座標配置と役割キーposは最終役割を示唆するが、実際の役割は生成ロジックで上書きされます
// フォーメーションごとの座標配置(イーフトっぽい並び
final Map<String, List<List<Map<String, double>>>> formationLayouts = {
// 4-1-2-3 (例): 上からFW, 攻撃MF行, 守備MF行, DF行, GK行
// =========================
// 4-1-2-3
// =========================
// 上から FW3列 / 攻撃MF2 / 守備MF1 / DF4 / GK
'4-1-2-3': [
// FW (3)
[
{'x': 0.25, 'y': 0.08}, // LW
{'x': 0.5, 'y': 0.06}, // CF
{'x': 0.75, 'y': 0.08}, // RW
{'x': 0.20, 'y': 0.08}, // LWG
{'x': 0.50, 'y': 0.06}, // CF
{'x': 0.80, 'y': 0.08}, // RWG
],
// 攻撃的MF2
[
{'x': 0.4, 'y': 0.25},
{'x': 0.6, 'y': 0.25},
{'x': 0.40, 'y': 0.22},
{'x': 0.60, 'y': 0.22},
],
// 守備的MF1
[
{'x': 0.5, 'y': 0.4},
{'x': 0.50, 'y': 0.35},
],
// DF (4)
[
{'x': 0.15, 'y': 0.58},
{'x': 0.35, 'y': 0.55},
{'x': 0.65, 'y': 0.55},
{'x': 0.85, 'y': 0.58},
{'x': 0.15, 'y': 0.55},
{'x': 0.35, 'y': 0.53},
{'x': 0.65, 'y': 0.53},
{'x': 0.85, 'y': 0.55},
],
// GK
[
{'x': 0.5, 'y': 0.86},
{'x': 0.50, 'y': 0.86},
],
],
// 4-3-3
// =========================
// 4-3-3
// =========================
'4-3-3': [
// FW (3)
[
{'x': 0.2, 'y': 0.08},
{'x': 0.5, 'y': 0.06},
{'x': 0.8, 'y': 0.08},
{'x': 0.20, 'y': 0.08},
{'x': 0.50, 'y': 0.06},
{'x': 0.80, 'y': 0.08},
],
// MF (3)
[
{'x': 0.3, 'y': 0.26},
{'x': 0.5, 'y': 0.24},
{'x': 0.7, 'y': 0.26},
{'x': 0.30, 'y': 0.24},
{'x': 0.50, 'y': 0.26},
{'x': 0.70, 'y': 0.24},
],
// DF (4)
[
{'x': 0.2, 'y': 0.52},
{'x': 0.4, 'y': 0.5},
{'x': 0.6, 'y': 0.5},
{'x': 0.8, 'y': 0.52},
{'x': 0.15, 'y': 0.55},
{'x': 0.35, 'y': 0.53},
{'x': 0.65, 'y': 0.53},
{'x': 0.85, 'y': 0.55},
],
// GK
[
{'x': 0.5, 'y': 0.86},
{'x': 0.50, 'y': 0.86},
],
],
// =========================
// 4-4-2
// =========================
'4-4-2': [
// FW (2)
[
{'x': 0.35, 'y': 0.08},
{'x': 0.65, 'y': 0.08},
],
// MF (4)
[
{'x': 0.2, 'y': 0.26},
{'x': 0.4, 'y': 0.26},
{'x': 0.6, 'y': 0.26},
{'x': 0.8, 'y': 0.26},
{'x': 0.20, 'y': 0.24},
{'x': 0.40, 'y': 0.24},
{'x': 0.60, 'y': 0.24},
{'x': 0.80, 'y': 0.24},
],
// DF (4)
[
{'x': 0.15, 'y': 0.52},
{'x': 0.35, 'y': 0.5},
{'x': 0.65, 'y': 0.5},
{'x': 0.85, 'y': 0.52},
{'x': 0.15, 'y': 0.55},
{'x': 0.35, 'y': 0.53},
{'x': 0.65, 'y': 0.53},
{'x': 0.85, 'y': 0.55},
],
// GK
[
{'x': 0.5, 'y': 0.86},
{'x': 0.50, 'y': 0.86},
],
],
// 5-3-2
'5-3-2': [
// =========================
// 4-3-2-1クリスマスツリー気味
// =========================
'4-3-2-1': [
// FW (1)
[
{'x': 0.4, 'y': 0.08},
{'x': 0.6, 'y': 0.08},
{'x': 0.50, 'y': 0.06},
],
// 2列目 (2)
[
{'x': 0.3, 'y': 0.26},
{'x': 0.5, 'y': 0.24},
{'x': 0.7, 'y': 0.26},
{'x': 0.35, 'y': 0.18},
{'x': 0.65, 'y': 0.18},
],
// 3列目 (3)
[
{'x': 0.12, 'y': 0.52},
{'x': 0.32, 'y': 0.5},
{'x': 0.5, 'y': 0.48},
{'x': 0.68, 'y': 0.5},
{'x': 0.88, 'y': 0.52},
{'x': 0.25, 'y': 0.30},
{'x': 0.50, 'y': 0.32},
{'x': 0.75, 'y': 0.30},
],
// DF (4)
[
{'x': 0.5, 'y': 0.86},
{'x': 0.15, 'y': 0.55},
{'x': 0.35, 'y': 0.53},
{'x': 0.65, 'y': 0.53},
{'x': 0.85, 'y': 0.55},
],
// GK
[
{'x': 0.50, 'y': 0.86},
],
],
};
// =========================
// 4-3-1-2
// =========================
'4-3-1-2': [
// FW (2)
[
{'x': 0.35, 'y': 0.08},
{'x': 0.65, 'y': 0.08},
],
// 2列目 (1)
[
{'x': 0.50, 'y': 0.20},
],
// 3列目 (3)
[
{'x': 0.25, 'y': 0.32},
{'x': 0.50, 'y': 0.34},
{'x': 0.75, 'y': 0.32},
],
// DF (4)
[
{'x': 0.15, 'y': 0.55},
{'x': 0.35, 'y': 0.53},
{'x': 0.65, 'y': 0.53},
{'x': 0.85, 'y': 0.55},
],
// GK
[
{'x': 0.50, 'y': 0.86},
],
],
// =========================
// 4-2-3-1
// =========================
'4-2-3-1': [
// FW (1)
[
{'x': 0.50, 'y': 0.06},
],
// 2列目 (3) 攻撃的MF
[
{'x': 0.25, 'y': 0.20},
{'x': 0.50, 'y': 0.22},
{'x': 0.75, 'y': 0.20},
],
// 3列目 (2) 守備的MF
[
{'x': 0.40, 'y': 0.34},
{'x': 0.60, 'y': 0.34},
],
// DF (4)
[
{'x': 0.15, 'y': 0.55},
{'x': 0.35, 'y': 0.53},
{'x': 0.65, 'y': 0.53},
{'x': 0.85, 'y': 0.55},
],
// GK
[
{'x': 0.50, 'y': 0.86},
],
],
// =========================
// 4-2-1-3
// =========================
'4-2-1-3': [
// FW (3)
[
{'x': 0.20, 'y': 0.08},
{'x': 0.50, 'y': 0.06},
{'x': 0.80, 'y': 0.08},
],
// 2列目 (1)
[
{'x': 0.50, 'y': 0.22},
],
// 3列目 (2)
[
{'x': 0.40, 'y': 0.34},
{'x': 0.60, 'y': 0.34},
],
// DF (4)
[
{'x': 0.15, 'y': 0.55},
{'x': 0.35, 'y': 0.53},
{'x': 0.65, 'y': 0.53},
{'x': 0.85, 'y': 0.55},
],
// GK
[
{'x': 0.50, 'y': 0.86},
],
],
// =========================
// 4-2-2-22ST + 2OH + 2DM
// =========================
'4-2-2-2': [
// FW (2)
[
{'x': 0.35, 'y': 0.08},
{'x': 0.65, 'y': 0.08},
],
// 2列目 (2) OH
[
{'x': 0.30, 'y': 0.20},
{'x': 0.70, 'y': 0.20},
],
// 3列目 (2) DM
[
{'x': 0.40, 'y': 0.34},
{'x': 0.60, 'y': 0.34},
],
// DF (4)
[
{'x': 0.15, 'y': 0.55},
{'x': 0.35, 'y': 0.53},
{'x': 0.65, 'y': 0.53},
{'x': 0.85, 'y': 0.55},
],
// GK
[
{'x': 0.50, 'y': 0.86},
],
],
// =========================
// 3-4-3
// =========================
'3-4-3': [
// FW (3)
[
{'x': 0.20, 'y': 0.08},
{'x': 0.50, 'y': 0.06},
{'x': 0.80, 'y': 0.08},
],
// MF (4)
[
{'x': 0.20, 'y': 0.24},
{'x': 0.40, 'y': 0.24},
{'x': 0.60, 'y': 0.24},
{'x': 0.80, 'y': 0.24},
],
// DF (3)
[
{'x': 0.30, 'y': 0.55},
{'x': 0.50, 'y': 0.53},
{'x': 0.70, 'y': 0.55},
],
// GK
[
{'x': 0.50, 'y': 0.86},
],
],
// =========================
// 3-2-4-1
// =========================
'3-2-4-1': [
// FW (1)
[
{'x': 0.50, 'y': 0.06},
],
// 2列目 (4)
[
{'x': 0.20, 'y': 0.18},
{'x': 0.40, 'y': 0.20},
{'x': 0.60, 'y': 0.20},
{'x': 0.80, 'y': 0.18},
],
// 3列目 (2)
[
{'x': 0.40, 'y': 0.34},
{'x': 0.60, 'y': 0.34},
],
// DF (3)
[
{'x': 0.30, 'y': 0.55},
{'x': 0.50, 'y': 0.53},
{'x': 0.70, 'y': 0.55},
],
// GK
[
{'x': 0.50, 'y': 0.86},
],
],
// =========================
// 3-2-3-2
// =========================
'3-2-3-2': [
// FW (2)
[
{'x': 0.35, 'y': 0.08},
{'x': 0.65, 'y': 0.08},
],
// 2列目 (3)
[
{'x': 0.25, 'y': 0.20},
{'x': 0.50, 'y': 0.22},
{'x': 0.75, 'y': 0.20},
],
// 3列目 (2)
[
{'x': 0.40, 'y': 0.34},
{'x': 0.60, 'y': 0.34},
],
// DF (3)
[
{'x': 0.30, 'y': 0.55},
{'x': 0.50, 'y': 0.53},
{'x': 0.70, 'y': 0.55},
],
// GK
[
{'x': 0.50, 'y': 0.86},
],
],
// =========================
// 3-1-4-2
// =========================
'3-1-4-2': [
// FW (2)
[
{'x': 0.35, 'y': 0.08},
{'x': 0.65, 'y': 0.08},
],
// 2列目 (4)
[
{'x': 0.20, 'y': 0.22},
{'x': 0.40, 'y': 0.24},
{'x': 0.60, 'y': 0.24},
{'x': 0.80, 'y': 0.22},
],
// 3列目 (1)
[
{'x': 0.50, 'y': 0.36},
],
// DF (3)
[
{'x': 0.30, 'y': 0.55},
{'x': 0.50, 'y': 0.53},
{'x': 0.70, 'y': 0.55},
],
// GK
[
{'x': 0.50, 'y': 0.86},
],
],
// =========================
// 5-3-2
// =========================
'5-3-2': [
// FW (2)
[
{'x': 0.40, 'y': 0.08},
{'x': 0.60, 'y': 0.08},
],
// MF (3)
[
{'x': 0.30, 'y': 0.24},
{'x': 0.50, 'y': 0.26},
{'x': 0.70, 'y': 0.24},
],
// DF (5)
[
{'x': 0.12, 'y': 0.52},
{'x': 0.32, 'y': 0.50},
{'x': 0.50, 'y': 0.48},
{'x': 0.68, 'y': 0.50},
{'x': 0.88, 'y': 0.52},
],
// GK
[
{'x': 0.50, 'y': 0.86},
],
],
// =========================
// 5-2-2-1
// =========================
'5-2-2-1': [
// FW (1)
[
{'x': 0.50, 'y': 0.06},
],
// 2列目 (2)
[
{'x': 0.35, 'y': 0.20},
{'x': 0.65, 'y': 0.20},
],
// 3列目 (2)
[
{'x': 0.40, 'y': 0.34},
{'x': 0.60, 'y': 0.34},
],
// DF (5)
[
{'x': 0.12, 'y': 0.52},
{'x': 0.32, 'y': 0.50},
{'x': 0.50, 'y': 0.48},
{'x': 0.68, 'y': 0.50},
{'x': 0.88, 'y': 0.52},
],
// GK
[
{'x': 0.50, 'y': 0.86},
],
],
// =========================
// 5-2-1-2
// =========================
'5-2-1-2': [
// FW (2)
[
{'x': 0.35, 'y': 0.08},
{'x': 0.65, 'y': 0.08},
],
// 2列目 (1)
[
{'x': 0.50, 'y': 0.20},
],
// 3列目 (2)
[
{'x': 0.40, 'y': 0.34},
{'x': 0.60, 'y': 0.34},
],
// DF (5)
[
{'x': 0.12, 'y': 0.52},
{'x': 0.32, 'y': 0.50},
{'x': 0.50, 'y': 0.48},
{'x': 0.68, 'y': 0.50},
{'x': 0.88, 'y': 0.52},
],
// GK
[
{'x': 0.50, 'y': 0.86},
],
],
// =========================
// 5-2-3
// =========================
'5-2-3': [
// FW (3)
[
{'x': 0.20, 'y': 0.08},
{'x': 0.50, 'y': 0.06},
{'x': 0.80, 'y': 0.08},
],
// 2列目 (2)
[
{'x': 0.40, 'y': 0.24},
{'x': 0.60, 'y': 0.24},
],
// DF (5)
[
{'x': 0.12, 'y': 0.52},
{'x': 0.32, 'y': 0.50},
{'x': 0.50, 'y': 0.48},
{'x': 0.68, 'y': 0.50},
{'x': 0.88, 'y': 0.52},
],
// GK
[
{'x': 0.50, 'y': 0.86},
],
],
};
// formation_generator と home_screen からはこの関数だけ使えばOK
List<List<Map<String, double>>> getFormationLayout(String formation) {
return formationLayouts[formation]!;
}