Power Apps Advent Calendar 2024シリーズ2 12月6日分の記事です
今回のコンセプトは?
さて前回はトップページ作った内容でしたが
今回はメニュー・・・と行きたいところですが、メニューは何の変哲もないギャラリー使ったメニューなので割愛します。
ということで今回のコンセプトはというと
それは「興行」です!!
前作はリーグ戦、タッグリーグ戦、シングルマッチ、タッグマッチ、試練の十番勝負、勝ち抜き戦と試合形式にこだわりました(笑)
がしかし、今回のコンセプトは昭和の時代ならではの「興行」です
つまり何月何日にどこの会場で全〇試合、ということがコンセプトなのです
恐らく今までにそんなところに焦点を当てたプロレスゲームはないと思います
さあ、マッチメイクだ!!
レスラーマスターは前作のをそのまま使用しています
権利関係があるのでここでは画像は掲載しません(実際には画像もあります)
さて、どんなふうにマッチメイクしていくのでしょうか
まず選手を選ぶボタンには
- ButtonCanvasRedselect:
Control: Button
Properties:
OnSelect: =Select(Parent);Collect(colred,{name:ThisItem.name});Collect(colwrestler,{name:ThisItem.name})
BasePaletteColor: =Color.Red
Text: ="Select"
DisplayMode: =If(CountRows(Filter(colred,name=ThisItem.name))=1||CountRows(Filter(colblue,name=ThisItem.name))=1||CountRows(Filter(colwrestler,name=ThisItem.name))=1,DisplayMode.Disabled,DisplayMode.Edit)
Width: =50
X: =190
Y: =14
赤コーナーか青コーナーで選ばれていたら選択させないようにしています
いくつかコレクションを作ります
colredには赤コーナーで選択した選手を
colblueには青コーナーで選択した選手を
colwrestlerにはどちらかで選択した選手の判定用にそれぞれコレクションを作ります
Removeボタンには
- ButtonCanvasRedremove:
Control: Button
Properties:
OnSelect: =Select(Parent);RemoveIf(colred,name=ThisItem.name);RemoveIf(colwrestler,name=ThisItem.name)
BasePaletteColor: =Color.Red
Text: ="Remove"
Width: =50
X: =255
Y: =14
ではちょっと選手を選んでみましょうか
おっと2025.1.4東京ドームでは三沢VS武藤ですよ!!
今となっては絶対に見ることの出来ない夢カードですね
レスラー名のテキスト表示はこうしてあります
- TextCanvasRed:
Control: Text
Properties:
Align: ='TextCanvas.Align'.Center
Font: =Font.Georgia
FontColor: =Color.White
Size: =25
Text: =Concat(colred,name," ")
Weight: ='TextCanvas.Weight'.Bold
Height: =60
Width: =Parent.Width
さて、なぜConcatしてる?
それはですね、今回はシングルマッチだけではなくタッグマッチや6人タッグマッチにも対応させるべく、例えば赤コーナーで選んだ選手のnameをConcatでつないでいるということです
見栄えを考慮してあえて半角スペースで結合しています
でここからがマッチメイクの本番です(笑)
試合会場にもこだわる(笑)
プロレス者にしかわからない感覚ですが、だいたい全国各地の体育館の名前を憶えているはずです。取り壊しになった体育館まで憶えています(笑)
さてはてここでCopilotの出番です。
こんな感じでやりとりをした結果
[
"東京ドーム",
"後楽園ホール",
"両国国技館",
"大阪城ホール",
"日本武道館",
"福岡国際センター",
"横浜アリーナ",
"名古屋国際会議場",
"札幌中島体育センター",
"仙台サンプラザホール",
"広島サンプラザホール",
"神戸ワールド記念ホール",
"愛知県体育館",
"大阪府立体育会館",
"高松市総合体育館",
"熊本県立総合体育館",
"鹿児島アリーナ",
"埼玉スーパーアリーナ",
"千葉公園体育館",
"蔵前国技館",
"大阪球場",
"福岡スポーツセンター",
"後楽園球場",
"横浜文化体育館"
]
ということにしました。私的にはだいたい満足です(笑)
Colcardなるコレクションに試合を追加していく
試合会場や試合時間が選択されるとAddボタン他を押せるようになります
Addボタンは以下のとおり
- ButtonCanvasAdd:
Control: Button
Properties:
OnSelect: |-
=Collect(
colcard,
{
no: CountRows(colcard) + 1,
date: DatePicker1.SelectedDate,
arena: DropdownCanvas1.Selected.Value,
red: Concat(
colred,
name,
" "
),
blue: Concat(
colblue,
name,
" "
),
time: RadioGroupCanvasTime.Selected.Value,
type: Switch(
CountRows(colred),
1,
"シングルマッチ",
2,
"タッグマッチ",
3,
"6人タッグマッチ"
),
detail: "",
redresult: "",
blueresult: ""
}
);
Clear(colred);
Clear(colblue)
Icon: ="Add"
Text: ="Add"
DisplayMode: |+
=If(IsBlank(RadioGroupCanvasTime.Selected)||CountRows(colred)<>CountRows(colblue)||CountRows(colred)=0||IsBlankOrError( DropdownCanvas1.Selected.Value),DisplayMode.Disabled,DisplayMode.Edit)
Width: =80
X: =977
Y: =21
試合を試合順含めてコレクションに格納していきます
no:試合順
date:開催日
arena:会場名
red:赤コーナーのレスラー
blue:青コーナーのレスラー
time:試合時間
type:試合形式(これは人数から判定)
detail:試合結果を格納するために作る
redresult:勝敗結果格納用
blueresult:勝敗結果格納用
って感じです
では何試合か追加してみましょう
いや~文字見るだけでワクワクしますね(笑)
こんな興行あったら特リン(特別リングサイド席のこと)いくら出しますかね
私は10万までは出しますね
それでも見れないかもしれないですね、ダフ屋必至の興業です
皆さんのメインはどの試合ですかね?
で、ですね
試合順が気に入らない場合ありますよね
そんな場合には以前書いたこの記事のを実装しています
ということでマッチメイク画面の概要はお伝えしましたかね
次回に続きます
あと2回で書ききれるのか心配ではありますが(笑)
まだまだありますよネタ的には