🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

1027閲覧

フラッシュはどこで指定されているか。

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

1クリップ

投稿2019/11/16 08:27

編集2019/11/16 08:51

###解決したいこと
下のコードについて、ポーカーにはたくさんの役がありますが、今回はフラッシュという役がコードのどこで条件分岐されているのかを知りたいです。
コードは省略しております。

###該当のコード

C#

1public class GameMaster : MonoBehaviour 2{ 3456 7 void Start()  8 { 9 10 for (int i = 0; i < 53; i++) 11 {    12 card_stockList.Add(i); 13 } 14 15 for (int i = 0; i < 5; i++) 16 { 17 field_selectedcard_pos[i] = field_Setcards_root.transform.GetChild(i).GetComponent<RectTransform>().localPosition; 18 } 19 20 for (int i = 0; i < 20; i++) 21 { 22 field_card_pos[i] = new Vector3(-264 + 132 * (i % 5), 70 - 177 * (i / 5), 0); 23 int n = Random.Range(0, card_stockList.Count); 24 field_card_num[i] = card_stockList[n]; 25 field_cards[i] = field_cards_root.transform.GetChild(i).gameObject; 26 field_cards[i].GetComponent<Image>().sprite = cards[card_stockList[n]]; 27 field_cards[i].GetComponent<RectTransform>().transform.localPosition = field_card_pos[i]; 28 card_stockList.RemoveAt(n); 29 } 30 31 FieldSet(); 32 33 time_plus = time.transform.GetChild(0).gameObject; 34 } 35 36 37 void FieldSet() 38 { 39 for (int i = 0; i < 20; i++) 40 { 41 if (field_card_num[i] == 52) 42 { 43 field_joker = true; 44 field_joker_pass = true; 45 } 46 else 47 { 48 straight_check[field_card_num[i] % 13] = true; 49 flush_count[field_card_num[i] / 13]++; 50 kinds_count[field_card_num[i] % 13]++; 51 } 52 } 53 54 straight.SetActive(false); 55 flush.SetActive(false); 56 three.SetActive(false); 57 four.SetActive(false); 58 five.SetActive(false); 59 60 for (int c = 0; c < 8; c++) 61 { 62 if (straight_check[c] == true) 63 { 64 for (int i = 1; i < 5; i++) 65 { 66 if (straight_check[c + i] == false) 67 { 68 if (!field_joker_pass) 69 { 70 if (field_joker) 71 { 72 field_joker_pass = true; 73 } 74 break; 75 } 76 else 77 { 78 field_joker_pass = false; 79 } 80 } 81 if (i == 4) 82 { 83 if (field_joker) 84 { 85 field_joker_pass = true; 86 } 87 straight.SetActive(true); 88 break; 89 } 90 } 91 } 92 if (straight.activeSelf == true) 93 { 94 break; 95 } 96 } 97 for (int c = 0; c < 4; c++) 98 { 99 if (field_joker) 100 { 101 flush_count[c]++; 102 } 103 if (flush_count[c] >= 5) 104 { 105 flush.SetActive(true); 106 break; 107 } 108 } 109 110 for (int c = 0; c < 13; c++) 111 { 112 if (field_joker) 113 { 114 kinds_count[c]++; 115 } 116 if (kinds_count[c] >= 5) 117 { 118 three.SetActive(true); 119 four.SetActive(true); 120 five.SetActive(true); 121 break; 122 } 123 else if (kinds_count[c] == 4) 124 { 125 three.SetActive(true); 126 four.SetActive(true); 127 } 128 else if (kinds_count[c] == 3) 129 { 130 three.SetActive(true); 131 } 132 } 133 134 BonusSet(); 135 } 136 137 void BonusSet() 138 { 139 int r_num = Random.Range(0, Bonus_numList.Count); 140 int r_suit = Random.Range(0, Bonus_suitList.Count); 141 142 string old_num = num.text; 143 num.text = Bonus_numList[r_num]; 144 Bonus_numList.RemoveAt(r_num); 145 Bonus_numList.Add(old_num); 146 147 switch (num.text) 148 { 149 case "A": 150 bonus_num = 0; 151 break; 152 153 case "J": 154 bonus_num = 10; 155 break; 156 157 case "Q": 158 bonus_num = 11; 159 break; 160 161 case "K": 162 bonus_num = 12; 163 break; 164 165 default: 166 bonus_num = int.Parse(num.text) - 1; 167 break; 168 } 169 170 string old_suit = suit.text; 171 suit.text = Bonus_suitList[r_suit]; 172 Bonus_suitList.RemoveAt(r_suit); 173 Bonus_suitList.Add(old_suit); 174 175 switch (suit.text) 176 { 177 case "♣": 178 suit.color = Color.green; 179 bonus_suit = 0; 180 break; 181 case "♦": 182 suit.color = Color.yellow; 183 bonus_suit = 1; 184 break; 185 case "♥": 186 suit.color = Color.red; 187 bonus_suit = 2; 188 break; 189 case "♠": 190 suit.color = Color.blue; 191 bonus_suit = 3; 192 break; 193 } 194 } 195 196 public void CardSet(int i) 197 { 198 if (set_num < 5) 199 { 200 field_cards[i].GetComponent<RectTransform>().transform.localPosition = field_selectedcard_pos[set_num]; 201 card_setList.Add(i); 202 if (field_card_num[i] != 52) 203 { 204 card_numList.Add(field_card_num[i] % 13); 205 card_suitList.Add(field_card_num[i] / 13); 206 num_count[field_card_num[i] % 13]++; 207 suits_count[field_card_num[i] / 13]++; 208 } 209 else 210 { 211 card_numList.Add(100); 212 card_suitList.Add(100); 213 joker = true; 214 joker_pass = true; 215 } 216 field_Setcards_root.transform.GetChild(set_num).GetComponent<Image>().raycastTarget = true; 217 set_num++; 218 Yaku_hantei(); 219 Debug.Log(yaku_rank); 220 } 221 } 222 223 public void CardReturn(int i) 224 { 225 if (set_num >= 1) 226 { 227 field_cards[card_setList[i]].GetComponent<RectTransform>().transform.localPosition = field_card_pos[card_setList[i]]; 228 if (card_numList[i] == 100) 229 { 230 joker = false; 231 joker_pass = false; 232 } 233 else 234 { 235 num_count[field_card_num[card_setList[i]] % 13]--; 236 suits_count[field_card_num[card_setList[i]] / 13]--; 237 } 238 card_setList.RemoveAt(i); 239 card_numList.RemoveAt(i); 240 card_suitList.RemoveAt(i); 241 for (int d = i; d < card_setList.Count; d++) 242 { 243 field_cards[card_setList[d]].GetComponent<RectTransform>().transform.Translate(-132,0,0,Space.Self); 244 } 245 set_num--; 246 field_Setcards_root.transform.GetChild(set_num).GetComponent<Image>().raycastTarget = false; 247 Yaku_hantei(); 248 Debug.Log(yaku_rank); 249 } 250 } 251 252 public void CardPush() 253 { 254 for (int c = 0; c < set_num; c++) 255 { 256 field_Setcards_root.transform.GetChild(c).GetComponent<Image>().raycastTarget = false; 257 } 258 set_num = 0; 259 260 Vector3 deck_pos = deck.GetComponent<RectTransform>().transform.localPosition; 261 foreach (int i in card_setList) 262 { 263 field_cards[i].GetComponent<RectTransform>().transform.localPosition = deck_pos; 264 card_stockList.Add(field_card_num[i]); 265 card_outList.Add(i); 266 } 267 card_setList.Clear(); 268 card_numList.Clear(); 269 card_suitList.Clear(); 270 271 push.SetActive(false); 272 273 if (joker) 274 { 275 field_joker = false; 276 field_joker_pass = false; 277 joker = false; 278 joker_pass = false; 279 } 280 281 int bonus_sum = num_count[bonus_num] + suits_count[bonus_suit]; 282 283 if (bonus_sum > 0) { 284 if (yaku_rank > 5) 285 { 286 bonus_sum *= yaku_rank; 287 } 288 secondtime += bonus_sum; 289 time.text = secondtime.ToString(); 290 delta_time = 0; 291 time_plus.SetActive(true); 292 time_plus.GetComponent<Text>().text = "+" + bonus_sum; 293 } 294 295 for (int i = 0; i < 13; i++) 296 { 297 straight_check[i] = false; 298 num_count[i] = 0; 299 kinds_count[i] = 0; 300 } 301 for (int i = 0; i < 4; i++) 302 { 303 flush_count[i] = 0; 304 suits_count[i] = 0; 305 } 306 307 result_yaku[yaku_rank - 1]++; 308 309 yaku.SetActive(true); 310 yaku.GetComponent<Text>().text = yaku_name_root.transform.GetChild(yaku_rank - 1).GetComponent<Text>().text; 311 delta_time = 0; 312 313 BonusSet(); 314 } 315 316 public void CardPlus() 317 { 318 foreach (int i in card_outList) 319 { 320 int n = Random.Range(0, card_stockList.Count); 321 field_card_num[i] = card_stockList[n]; 322 field_cards[i].GetComponent<Image>().sprite = cards[card_stockList[n]]; 323 field_cards[i].GetComponent<RectTransform>().transform.localPosition = field_card_pos[i]; 324 card_stockList.RemoveAt(n); 325 } 326 card_outList.Clear(); 327 328 FieldSet(); 329 } 330 331 void Yaku_hantei() 332 { 333 yaku_rank = 0; 334 push.SetActive(false); 335 int max_sum = num_count.Max(); 336 337 338339340341}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2019/11/16 08:29

他人のコードを掲載する時には入手先を書いてください。
y_waiwai

2019/11/16 08:30

フラッシュということが認識されたらこのコードのどこでどういうふうになるんでしょうか。そこんところを詳しく説明しましょう まさか、このコードをイチから解析して動作を説明してくれ、ということなんでしょうか
退会済みユーザー

退会済みユーザー

2019/11/16 08:30

すみません。これは、私の親が入手したものなので、わかりません。
退会済みユーザー

退会済みユーザー

2019/11/16 08:31 編集

y_waiwaiさん、私はそれを聞いているんです。 すみません。わかりにくくて。
Zuishin

2019/11/16 08:31

親に聞けばいいんじゃないでしょうか。
退会済みユーザー

退会済みユーザー

2019/11/16 08:34

今無理なんです。
m.ts10806

2019/11/16 08:34

コードを読まずに質問して何が目的でしょうか。 読めるようなレベルにないならそもそもUnityに手を出すべきではないのでは。 「丸投げ」と「問題、課題がない」どちらの低評価をお望みですか?
Zuishin

2019/11/16 08:35

数秒以内にという話はしていません。 可及的速やかに書いてください。
退会済みユーザー

退会済みユーザー

2019/11/16 08:36

それを勉強するためにこのサイトを使っているのですが、、、 >コードを読まずに 読みましたよ。それでわからなかったからここで質問しているんです。
Zuishin

2019/11/16 08:37

読んだら flush という語が何度も出てきているのに気づくはずということでしょう。
退会済みユーザー

退会済みユーザー

2019/11/16 08:39 編集

Zuishinさん >数秒以内にという話はしていません。 そうですね。数秒じゃ無理ですよね、
退会済みユーザー

退会済みユーザー

2019/11/16 08:38

Zuishinさん 出てくるんですが、たくさんありすぎて、どこで条件分岐をしているのかがわからないんです。
Zuishin

2019/11/16 08:39

何を頑張るんでしょうか? 著作権を侵害しているので入手先を書いてくださいという話をしています。
m.ts10806

2019/11/16 08:40

「作っています」とありますよね。 いずれにしても「読みました」だけではどこまで理解したのかわかりません。読めば分かることを「読みました」だけで済ませられてもちょっと意味がわからない。 私の別の質問の回答に高評価されてましたがまた読まずに高評価つけてますよね。この質問を読めば分かります。 自分が解説できないコードを書いて人に解読させるってどういうことでしょ。 分からないコードなのに「作っている」なんて大嘘つかないでください。
退会済みユーザー

退会済みユーザー

2019/11/16 08:41

Zuishinさん すみません、変なことを言っていました。
Zuishin

2019/11/16 08:43

今すぐでなくていいので、可能な限り早く聞き、わかり次第編集してください。
m.ts10806

2019/11/16 08:44

そろそろこの質問内容が質問じゃなくてデバッグ依頼であると気づいてもらえませんかね。
退会済みユーザー

退会済みユーザー

2019/11/16 08:45

Zuishinさん >わかり次第編集してください。 わかりました。ご指摘ありがとうございます。
m.ts10806

2019/11/16 08:49

「作っています」は第三者から見て正しくない表現なので可及的速やかに適切な表現に改めてください。 「自分が作ったコードなのに他人に解説させようとしている」異常事態を恥じてください。
退会済みユーザー

退会済みユーザー

2019/11/16 08:50

>「作っています」は第三者から見て正しくない表現なので可及的速やかに適切な表現に改めてください。 そうですね、今編集いたします。ご指摘ありがとうございます。
m.ts10806

2019/11/16 08:54

で、もうひとつ前に書いた「どこまで理解しているか」も書けませんか? 既に指摘されてるようにコードを全て解析して説明させるというとても無料では対応の難しい作業をただで済ませてしまおうと言う魂胆ですか? 手に負えないコードと感じませんでしたか?なぜ手に負えそうなコードから手をつけようと思わないのですか?(以前からだけど)
退会済みユーザー

退会済みユーザー

2019/11/16 08:55

詳しく言えないですが、ある人のためです。 ※特に課題というわけではないです。
m.ts10806

2019/11/16 09:06

そんな事情は知りません。 例えそれが親であろうと親友であろうと回答者は赤の他人です。質問になってない質問に答えろってどういう神経なんでしょうか。 ポーカーくらいアプリで転がってるでしょう。出来上がらないものをいつまで待たせるつもりかわかりませんけど、こんなやり方では積極的に遠回りしてるだけですよ。(しかもサイトのガイドラインには反し続けてる。このやり方で他人に9割以上つくってもらったものを渡してその人喜ぶんですかね。あなたそれでいいんですかね)
kyoya0819

2019/11/16 10:22 編集

だから専門じゃないゆうたやん。 いい加減学習してくださいませんか? それとも嫌がらせですか? そうだとしたらやめた方がいいと思いますよこんな誰得なことは
raccy

2019/11/16 10:50

> asuchi0819さん 回答依頼のことですよね?文句を言うのであれば、現在のteratailの回答依頼の仕組みに異議を唱えるべきかと思います。 https://teratail.com/help#about-answer-requests この仕組みでは「私は○○ならいいけど△△はあまり知らないので依頼しないで」という風になっていません。誰がどの分野が得意なのかというのも、多くの回答者全員について得意分野を覚えておけと言うことには無理があります。自分のことぐらい覚えておけと言うのは、逆におまえは何様だって事になります。 現状の仕組みでは、自分の意思にそぐわぬ回答依頼を完全に防止するには、フォローを全て外して、回答依頼を相互フォロー限定にする以外ありません。もし、そういうのが嫌であれば、運営に回答依頼機能の改善を要望するいがいは無いと思います。
kyoya0819

2019/11/16 12:32 編集

raccyさん 確かに個々のことを覚えるのはわたしだって無理です。(まぁ可能っちゃ可能ですけど) しかし、昨日の質問では、 「本当にすみませんでした。回答依頼をするときにScoreで判断してしまいました。すみませんでした。これから、気をつけます。」 と発言しており、 「回答依頼をするときにScoreで判断してしまいました。」というのを今後しないように「これから、気をつけます。」と言われました。 なので、あくまでも「Scoreで判断」というのをやめてほしいという趣旨での発言になります。
raccy

2019/11/16 23:35

asuchi0819さん 残念ですが、このteratailには、何度同じ注意や苦言を呈しても聞く耳を持たず、その場限りの「わかりました」だけ言って同じことを繰り返す人達が少なからずいます。そういった人達に何度も注意している本当に優しい人達(ですが、彼らにとってはウザいと思っている)もいますが、かなりの忍耐が必要です。(ほら、凄い厳しい先生って居るでしょ。大人になれば、その先生が如何に優しい先生だったか気付きますよ。それと同じです。) 全く優しくない私としては、そういう人達に関われないミュート機能が欲しいぐらいで、そういった人達は無視するしかありません。言っても無駄な奴は何度言っても無駄なのです。 asuchi0819さんの忍耐力次第ですが、もうこいつはダメだと思ったときは、フォロー外して回答依頼は相互フォロー限定(プロフィールの回答依頼設定から編集できます)にしたほうが精神衛生上よいと思います。
m.ts10806

2019/11/18 00:41 編集

とりあえずそのお父様が依頼したと言う人に全部作ってもらえば全部解決ですね。 わからないコードに悩むことも、 できないプログラミングに苦しむことなく 早く確実に良いものができるでしょう。お幾つの人か知らないですがほぼ確実に世には出てない人のようなのでアドバイスしておきますが、お金かけたほうがいいことって世の中にはたくさんあるんですよ。
Zuishin

2019/11/17 08:15

私の回答のコメントを見る限り、この質問者はその類のようです。他人の著作物を自分の物と言うような人にプログラミングを教える必要はありません。
Zuishin

2019/11/17 08:15

そしてなぜか私の回答に低評価が二つ増えました。
Zuishin

2019/11/29 05:45

どこから盗んだか書きなさい。
m.ts10806

2019/11/29 22:38 編集

2週間も放置して無視していきなり解決とはどういうことでしょうね。 解決すればなんでもいいという方針ではこの先プログラミングをしていくのも一般の生活を送るのも難しいでしょう。 あと、本件とは関係ないですが質問も回答も理解できてない回答への高評価を今後一切やめてください(私に限らず)。何度も言ってるのになぜわかりませんか?
guest

回答2

0

flush を選択して F12 を押してください。それが定義された場所にジャンプします。コードが一部しか無いので、この中にはありませんが、おそらく Unity のインスペクタでインスタンス化されているのではないかと想像します。

次に flush の型とその継承元(多分 GameObject)を調べ、setActive メソッドを調べてください。そうすれば、そのオブジェクトがどこでどうなっているかわかるはずです。

Unity スクリプトリファレンス

ポーカーは複合的に手を判断します。たとえばフラッシュであれば、その上位にストレートフラッシュという役があります。したがって、必ずしもフラッシュの条件がそろっていればフラッシュとは限りません。

投稿2019/11/16 09:06

編集2019/11/16 09:09
Zuishin

総合スコア28669

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/11/16 09:10

なるほど。ツールとその見方、使い方がわからないと言う質問でしたか。それはわからなかった。
Zuishin

2019/11/16 09:13

私も勘で答えたのでよくわかりませんが、たぶんこういうことではないかと。
Zuishin

2019/11/16 09:17

あと Yaku_hantei が途中で切れていますが、役の上下を見て最終的に判断しているのはたぶんこの中だと思うんですよね。
退会済みユーザー

退会済みユーザー

2019/11/17 07:04

>Unity のインスペクタでインスタンス化されているのではないかと想像します。 すみません、それはどういうことですか?
Zuishin

2019/11/17 07:09

お父さんはマグロでも釣りに行ってるんですか?
退会済みユーザー

退会済みユーザー

2019/11/17 07:10

いいえ、私はただインスタンス化されたのをどう見るかというのを聞きたいんです。お願いします。
Zuishin

2019/11/17 07:12

その前にすることがあるでしょう。
退会済みユーザー

退会済みユーザー

2019/11/17 07:13 編集

そうですね、すみません。 教えていただけませんか?お願いします。
Zuishin

2019/11/17 07:17

私は割と怒りっぽいし、喧嘩は買う主義です。
退会済みユーザー

退会済みユーザー

2019/11/17 07:23

ごめんなさい。忘れてはいません、でもまだ無理なんです。 詳しくはわからないのですが私の父は、誰かに依頼したと言っておりました。それだけしかわからないんです、本当にすみません。
退会済みユーザー

退会済みユーザー

2019/11/17 07:26 編集

そんなことは一切言っていません。 まだ無理というだけです、 まだ聞けていないんです、
Zuishin

2019/11/17 07:29

なぜ聞けないんですか?
Zuishin

2019/11/29 22:22

都合の悪いコメントを通報する暇があったら聞いてください。 運営も削除する前にコメントを確認してください。 「それともアルツハイマーなの?」は、あなたが若年性認知症という病気にかかっているかどうかを確認して、そうであれば支援するための必要な確認作業です。 「お父さんは死んだんですか?」も同様です。
guest

0

ベストアンサー

flush_count でソースを検索してみるとわかるかと思います。

(判定とっちらかってて読みづらいソースですね)

投稿2019/11/16 10:42

asm

総合スコア15149

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/11/29 05:30

回答、ありがとうございます。 その方法で無事解決することができました。ベストアンサーとさせていただきます。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問