プログラミング詳しいやつちょっと来い

1 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:28:31.230 ID:vbr3efze0
マウスイベントでステート変える処理作ってるんだけど
マウスイベントのswitch文と特定のステートの時に次のステートに移す処理が絡まってスパゲティ
どうしたらいいの
2 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:28:50.700 ID:7i7O4+Di0
諦める
3 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:29:27.444 ID:r93Q6CAI0
整理する
4 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:29:44.309 ID:aI/r9TYG0
ほどく
5 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:30:30.787 ID:tuJffI//0
言語は?(知ったかぶり)
16 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:36:39.130 ID:vbr3efze0
>>5
c#
>>8
書いてない
19 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:43:18.097 ID:ZnYDMmU/0
>>16
状態遷移表なり状態遷移図なり書かないと訳わからんことになるのは当たり前だと思うの
21 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:45:47.005 ID:vbr3efze0
>>19
マウスイベントの判定とステートの判定とステートの切り替えが>>14みたいになるけど状態遷移図通りだったらそれでいいの?
コード見ながらデバッグがしんどいから整理したいんだけど
6 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:30:49.704 ID:IGTtqras0
別のイベント発火してそっちで処理してもらう
7 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:31:11.446 ID:iT62dwMf0
switch使うか?
10 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:32:10.147 ID:ZnYDMmU/0
>>7
ポリモーフィズムで処理できそう?
8 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:31:34.338 ID:ZnYDMmU/0
状態遷移表とか書いた?
9 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:32:04.144 ID:lTuhQ0wBa
PSP使えばいいんじゃね?
11 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:32:14.131 ID:q1OoIDNd0
フラグ立てて抜けてからステート移せ
13 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:32:48.194 ID:Iax7xXxOa
今これ処理中ですフラグ立てとけばいいんじゃね
14 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:34:26.035 ID:vbr3efze0
こんなの
switch(event) {
case event == down:
if (state % 2 != 0) break;
++state;
hoge1();
break;
case event == up;
if (state % 2 == 0) break;
++state;
if (state == 2) hoge3();
break;
}
17 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:40:57.638 ID:RObfhZgQp
>>14じゃよくわからんな
15 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:34:54.117 ID:ImhCbEF30
特定ステートの時の、『何をする』って部分を抽象化して
実装クラスを小分けにする
18 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:41:11.998 ID:vbr3efze0
>>15
何をする の部分は分けてる
でもマウスイベントとステートの切り替えと特定のステートの時に処理実行が絡まってよくわからん
34 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 01:01:13.322 ID:ImhCbEF30
>>18
state毎にクラスを実装して、各々の実装クラスが自分の遷移先を
eventの内容に応じて決定する(次のstateのインスタンスを返して貰う)ことだけに集中するイメージ
20 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:44:38.390 ID:aGe4NFJE0
if文で!=と==を使うから醜い
22 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:46:41.702 ID:vbr3efze0
>>20
==と!=を使わずにどう書けと
26 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:50:44.476 ID:aGe4NFJE0
>>22
判定はどちら片方に統一してelseを使う
30 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:54:38.426 ID:vbr3efze0
>>26
そういうことね
>>27
スマホで適当に書いたんだ
そもそもswitch文見難いから
23 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:47:01.665 ID:ZXOxVe8Ka
ステートの変数が変更されたら、発生するイベントを追加で書いて、そのイベントで処理をやればいいんじゃね?
24 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:48:18.707 ID:vbr3efze0
>>23
なるほどそれいいかも
25 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:50:09.682 ID:1IWmaWgl0
FLUXって設計の強さがわかる
27 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:51:46.098 ID:oPii8Wdd0
switch文の書き方気持ち悪い
28 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:52:50.177 ID:ZnYDMmU/0
state % 2 == 0 って何を意図してるの?
state == 2 の 2 ってどういう意味なの?
31 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:57:47.306 ID:vbr3efze0
>>28
単にステートの切り替えだから2とかに意味はないよ例だよ例
>>29
文の書き方とか見易さは置いといて
29 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 00:53:48.277 ID:1IWmaWgl0
絶対 isDown とか命名してif文使ったほうがわかりやすいこのレベルなら
33 名前:ひみつの名無しさん 投稿日時:2020/04/23(木) 01:00:15.465 ID:9LZJ9Jtz0
来たけど解決してる

コメント

タイトルとURLをコピーしました