ふらっと C#,C♯,C#(初心者用) Part159

■ このスレッドは過去ログ倉庫に格納されています
2023/08/08(火) 09:21:19.30ID:aeM2XQJJ0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を3行冒頭に書くこと(1行分は消えて表示されない為、もう1行は予備)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください。見かけたらNGしましょう。相手してしまったらあなたも荒らしです
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part158
https://mevius.5ch.net/test/read.cgi/tech/1679783460/
■関連スレ
C#, C♯, C#相談室 Part97
https://mevius.5ch.net/test/read.cgi/tech/1671585518/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
初心者はまずVisual Studioを使いましょう。なおVisual Studioの使い方などに関しては各バージョンで違うので専用スレでお願いします
http://www.visualstudio.com/downloads/
■情報源
https://learn.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://learn.microsoft.com/en-us/dotnet/standard/class-libraries
https://referencesource.microsoft.com/
https://source.dot.net/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
++C++; // 未確認飛行 C
https://ufcpp.net/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
199デフォルトの名無しさん (ワッチョイ 0aa1-oBwi)
垢版 |
2023/09/26(火) 11:02:40.27ID:Pu+bW/hr0
>>198
連続してると思いたいのは勝手だが
実際の所はどうなっているか見るまでは分からない
2023/09/26(火) 11:29:00.83ID:QkO3BLWs0
>>198
spanか使えば

var array = new int[ 3, 4 ];
var span = MemoryMarshal.CreateSpan( ref array[ 0, 0 ], array.Length );
2023/09/26(火) 11:36:48.82ID:uoZuUmUn0
datagridvewなかなか癖あるな
前の会社だとspread 使ってたから同じことしようとするとなかなか厳しい
2023/09/26(火) 12:26:49.67ID:OV8JJgiQ0
>>198
なら、1次元目Length×2次元目Lengthの1次元配列として宣言して使えば良い
203デフォルトの名無しさん (ワッチョイ 6ab0-/va4)
垢版 |
2023/09/27(水) 18:09:52.69ID:IoVqC5pd0
関数化はモジュール化とは言わないですか?
一般的に別スクリプトに分けることをモジュール化というらしいです。
1つのスクリプトにあらゆる機能を書いてしまうと、理解が出来なくなるみたいです。
再利用と、可読性を向上させるためにモジュール化があるのかなと。
2023/09/27(水) 18:39:35.25ID:CcGwmuva0
>>203
関数はモジュールですか?
2023/09/27(水) 18:44:05.41ID:B9umWozV0
>別スクリプトに分けることをモジュール化という
初めて聞いたわそんな説
206デフォルトの名無しさん (ワッチョイ 6ab0-/va4)
垢版 |
2023/09/27(水) 18:45:10.63ID:IoVqC5pd0
gptさんに聞きました
207デフォルトの名無しさん (ワッチョイ 0a1f-oBwi)
垢版 |
2023/09/27(水) 18:46:56.08ID:I/ozjFX50
嘘つきgptか…奴の話は、話半分で聞いとけ
2023/09/27(水) 19:49:19.91ID:vKIc+WH70
gptはC#のコード生成しようとしたら1行目からincludeしろとか言ってくるからな
209デフォルトの名無しさん (ワッチョイ 866b-lrL5)
垢版 |
2023/09/28(木) 00:24:01.44ID:DB6o6lmL0
ChatGPTをありがたがるのは無知蒙昧の証し
210デフォルトの名無しさん (アウアウウー Sacf-j351)
垢版 |
2023/09/28(木) 00:36:48.85ID:wsjwbbNAa
>>203
1関数=1モジュール観たいな糞言語ならそうかもな
2023/09/28(木) 01:23:01.39ID:NqbGDv2b0
未だにオブジェクト指向がよくわからないわ
2023/09/28(木) 04:26:00.84ID:IXIoJj7cM
猫以下か
2023/09/28(木) 06:36:39.54ID:M9/KWlcn0
ChatGPTに頼るようなヤツはプログラムやらんでもろて
214デフォルトの名無しさん (ワッチョイ ea74-iHBT)
垢版 |
2023/09/28(木) 07:16:02.49ID:sFf5t7op0
もろて
morote
2023/09/28(木) 08:57:06.58ID:fRqICkyk0
態々Chatって名前に付けてくれてるのに、おかしな使い方する連中の多いことw
216デフォルトの名無しさん (アウアウウー Sacf-j351)
垢版 |
2023/09/28(木) 09:58:47.34ID:7+/lnWbqa
やらんでもろて=やらないでくださいおながいしますわ
2023/09/28(木) 10:03:11.78ID:A/US9xLcr
名前にchatってついてることと使い方に何か関係が?
218デフォルトの名無しさん (ワッチョイ 0a1f-oBwi)
垢版 |
2023/09/28(木) 10:12:26.69ID:uRtj8fwF0
chatGPTは、会話する友達のいないボッチが寂しさを紛らわす為の癒しツールだからなぁ
2023/09/28(木) 10:28:24.51ID:/0J5x9qx0
つまりお前らってChatGPTだったの?
2023/09/28(木) 10:34:11.26ID:xz2WgalN0
うずらです
2023/09/28(木) 12:28:16.47ID:JVi1NSOB0
ひよこです
2023/09/28(木) 12:52:33.59ID:lN71jGVG0
>>203
>関数化はモジュール化とは言わないですか?
一般的には言わない
モジュール/モジュール化という言葉は文脈によって意味が多岐に渡る
広い意味で再利用可能・入れ替え可能な部品に分割することをモジュール化と呼ぶこともあるので
ある処理を抽出して関数化することもモジュール化と言えないこともないが一般的ではない
関数よりもっと大きな単位を指して使われることがほとんど
狭い意味だと使ってる言語で定義されてる”モジュール”に分割することを言う

>一般的に別スクリプトに分けることをモジュール化というらしいです。
Pythonのように1ファイルが1モジュールになる言語であれば
別スクリプトに分けることとが狭い意味のモジュール化
C#にもモジュールの定義はあるにはあるけど通常意識されないものなので
モジュール化という言葉が狭い意味で使われることはほとんどない
2023/09/28(木) 19:13:21.19ID:0dpaiugf0
モジュールは外からの見た目だから
中身が何で出来てるかなんて関知しない
たとえうんこで出来ててもな!
2023/09/28(木) 21:49:14.57ID:Vwqtf0AId
>>215がBardやBingAIにはどんな難癖を付けるのか気になる
225デフォルトの名無しさん (ワッチョイ 6ab0-/va4)
垢版 |
2023/09/29(金) 04:46:58.75ID:sbQ57Iwc0
質問です
他人のコードを読むという行為は「分解」なのでしょうか?
他人のコードがわかりにくい場合は、スクリプトを分けるなどして分解するのが良いですか?
2023/09/29(金) 05:09:44.28ID:Zsgx8btV0
>>225
そのコードリーディングの目的は?
227デフォルトの名無しさん (ワッチョイ 6ab0-/va4)
垢版 |
2023/09/29(金) 06:50:21.28ID:sbQ57Iwc0
ゲーム用のプログラムなのですが、ロジックを知りたいです
2023/09/29(金) 07:13:40.48ID:4IudvC8QM
解析が目的ならリバースエンジニアリング
229デフォルトの名無しさん (ワッチョイ 0794-oBwi)
垢版 |
2023/09/29(金) 07:35:41.02ID:R/ASBcAr0
リバースエンジニアリングは、マシン語になった実行ファイルやROMから逆アセンブルなどを用いて命令コードに変換して処理内容を読み取る技術だろ
ソースコード自体があるなら単に読めばいいだけ
230デフォルトの名無しさん (ワッチョイ 0794-oBwi)
垢版 |
2023/09/29(金) 07:37:22.59ID:R/ASBcAr0
スクリプト?
ああ、スクリプト言語で書かれているのか
それならスクリプト自体を幾ら読んでも分からないよw
実際に動作を定義してるのはスクリプトエンジン側だからなぁ
231デフォルトの名無しさん (ワッチョイ 0a1f-oBwi)
垢版 |
2023/09/29(金) 08:13:03.19ID:2i5v5Rt90
ゲームのスクリプト読んでも、分かるのはそのゲームのストーリーくらいかなぁ?
2023/09/29(金) 08:53:29.85ID:HVJlKrO3r
>>227
その目的と
>他人のコードを読むという行為は「分解」なのでしょうか?
という質問は何か関係あるの?
2023/09/29(金) 08:58:03.08ID:Z2hlTA8C0
>>229
逆アセはリバースエンジニアリングの過程の処理のひとつで
ソースコード読み解いて動作を解析することもリバースエンジニアリングよ
234デフォルトの名無しさん (ワッチョイ 0a1f-oBwi)
垢版 |
2023/09/29(金) 09:11:19.11ID:2i5v5Rt90
ソースコード自体にもう内容書かれてんのにリバースエンジニアリングとはw
2023/09/29(金) 09:23:35.81ID:XHcVYCVKM
例えばシェルスクリプトならそのまま読むだけですべて動作を理解できる
一方でゲームスクリプトはゲームエンジンの動作を解析しないと理解は難しい
2023/09/29(金) 09:28:49.63ID:dgWEZ4BHM
もっとも利用するだけなら使い方を理解するだけで中身を理解する必要はない
2023/09/29(金) 09:49:19.43ID:Zsgx8btV0
>>227
ゲーム「用」とは?
238デフォルトの名無しさん (ワッチョイ 0a02-4KCz)
垢版 |
2023/09/29(金) 10:17:17.30ID:LLT8Nv/70
単に読んでるだけでわかりにくにならデバッグ実行して動作とコードの関係を把握しながら読むと理解しやすい
途中で変数の値の確認や変更もやると確証がもてる
239デフォルトの名無しさん (ワッチョイ 6ab0-/va4)
垢版 |
2023/09/29(金) 13:16:35.37ID:sbQ57Iwc0
>>237
https://gist.github.com/baba-s/e4da98f6fce2b6cca36b0cf3bb91f9d0
これが倉庫番のコードなのですが、全て1つのスクリプトに書かれています
これが分かりづらいので、分割、分解して理解を深めたいです

>>232
自分でゲームを作りたいので、分解してロジックを理解したいです
他人のコードを読み解く能力が上達には必須と考えました
240デフォルトの名無しさん (スフッ Sdaa-TrDt)
垢版 |
2023/09/29(金) 13:26:47.91ID:y68JSf5Yd
>>239
この規模だと分割したらさらに判らなくなるだけだと思う
2023/09/29(金) 13:30:08.99ID:F5ALDY7d0
>>239
Unityの知識は大丈夫なの?
242デフォルトの名無しさん (ワッチョイ 0a1f-oBwi)
垢版 |
2023/09/29(金) 13:34:09.53ID:2i5v5Rt90
スクリプト?
2023/09/29(金) 13:45:18.92ID:jReLA3HcM
40年前ぐらい小学生のころに雑誌に載ってた倉庫番打ち込んだな
おそらく7~8ページ程度だったけど2週間ぐらいかかった
ロジックはほとんどなくドット絵のデータがメイン
そんな思いをしなくても遊べる今は恵まれてるなと思う

打ち込んでは実行してタイプミス潰し
倉庫番はリアルタイム性などない単純なパズルだから打ち込んでると嫌でも仕組みはわかった
何しろ状態を持ってない
全部マップデータ通りで単純明快

多分コード読んでるだけじゃ理解は深まらない
自分の見たい部分しか見ないから
コード打ち込むと全部舐めなければならない
そのうえで改変して挙動を確かめる
2023/09/29(金) 14:04:01.36ID:jReLA3HcM
大体2~3本似たようなプログラムを打ち込むと
仕組みが大体頭に入る

やってることは非常に単純
小学生にも理解出来る
そして普通に自分でも書ける

多分何百本分のコードを読んでも理解度は低いと思う
2023/09/29(金) 14:14:09.16ID:jReLA3HcM
そのころはコードにコメントなどもちろんなくインターネットもなく
下手するとマニュアルもなかった

でも数本打ち込むと大体わかった
英単語も読めない小学生にもわかるんだから誰にでも理解できると思う
2023/09/29(金) 14:14:32.11ID:2UiM+hiU0
>>239
>他人のコードを読むという行為は「分解」なのでしょうか?
これはノー
「分解」はあくまでもコードを読み解くためのテクニックの1つ
2023/09/29(金) 14:17:39.88ID:iWuHjGCu0
>>239
スクリプトって書いたら意味が通じない
(ソースコードを記述した)ファイルもしくはソースファイル
2023/09/29(金) 14:23:02.71ID:jReLA3HcM
>>247
unityではc#スクリプトと呼んでる
2023/09/29(金) 14:30:40.47ID:jReLA3HcM
英語を読む・聞き取る・話す は分かりやすく別の学習をしないといけない

コードを読めても書けなければ意味がない
理解したいならコードを書いた方がいい
250デフォルトの名無しさん (ワッチョイ 0a1f-oBwi)
垢版 |
2023/09/29(金) 14:34:27.27ID:2i5v5Rt90
>>248
ああ、そう言う位置付けなのか
文字通りスクリプトなんだろうなぁ
ビルドしないで直接動かすんだろ?
2023/09/29(金) 14:36:55.26ID:jReLA3HcM
それとコードを読むのは非常に高度な技術だから

初心者がコードだけ読もうとしても
おそらく思ったような成果はあげれれない
252デフォルトの名無しさん (ササクッテロラ Sp23-oBwi)
垢版 |
2023/09/29(金) 14:39:11.07ID:ty79BRMgp
ゲームの細かい動きの部分だけスクリプトで書いてるみたいな感じだと全体を理解するの難しいかもね
2023/09/29(金) 14:40:02.98ID:AtqL2tKZd
隙あらば長文自分語り
2023/09/29(金) 15:00:48.68ID:jReLA3HcM
倉庫番自体のロジックは非常に単純
オセロより簡単ともいえる

キャラが空白のところへ動かせるようにつくる
移動先に荷物があってその先が空白ならキャラと荷物が動く
そのあと終わってるかどうか判定するだけ
2023/09/29(金) 15:06:10.15ID:kab4oOZl0
じゃあフラッピーは?
256デフォルトの名無しさん (ワッチョイ de7b-/va4)
垢版 |
2023/09/29(金) 15:37:41.47ID:3lAWIYxj0
>>239
こういうのこそChatGPTの使いどころでは?
2023/09/29(金) 15:39:08.46ID:tU9ZFt65H
ここみれば?
ttps://baba-s.はてなblog.com/entry/2018/03/30/085000
2023/09/29(金) 15:41:33.40ID:tU9ZFt65H
はてな英字表記がNGワードだった

作者が全部解説してるのにこっち見ないで完成形のソースだけ見てなにをどう理解したいのかわからない
259デフォルトの名無しさん (ワッチョイ 869b-lrL5)
垢版 |
2023/09/29(金) 15:56:47.20ID:C71JBRro0
>>239
うだうだ人に聞いてるお前には無理だと思う
2023/09/29(金) 16:10:41.00ID:DNLFnh+Cd
>>225にしても>>203にしても質問がヘタというか的外れというか
それ聞いてどうするの?言葉の定義を確認して何になるの?って感じが

コードのここの意味が解りません、とかの具体的な質問の方がよっぽどマシ
2023/09/29(金) 17:31:51.45ID:jReLA3HcM
初心者相手に罵倒しても心が汚れるだけ

上のコードはあまり関心出来ない部分もある
そのせいで分かりにくい箇所が若干ある
2023/09/29(金) 17:42:07.96ID:DNLFnh+Cd
罵倒、苦言、批判の区別は付いてるかな?
2023/09/29(金) 17:44:14.21ID:Z2hlTA8C0
>>234
逆アセで生成されたコードも、アセンブラの"ソースコード"だぞ?w
2023/09/29(金) 17:58:40.51ID:QaI2pK3GM
ワッチョイ 6ab0-/va4
ネチネチとしつこいだけでダメな奴の典型例
265デフォルトの名無しさん (ワッチョイ 0744-oBwi)
垢版 |
2023/09/29(金) 17:58:57.69ID:R/ASBcAr0
>>263
意味不明w
2023/09/29(金) 17:59:37.91ID:Z2hlTA8C0
意味がわからんなら勉強しといでw
267デフォルトの名無しさん (ワッチョイ 6ab0-/va4)
垢版 |
2023/09/29(金) 18:01:17.51ID:sbQ57Iwc0
質問者です
確かに何が分からないのか言語化出来ないかもしれません

丸投げ質問にならないようにもう少しもがきます
ぼんやりした事を言うと、分からない部分は処理の流れですかね。
2023/09/29(金) 18:13:34.27ID:omi/Go5l0
フレームワークから呼び出されるだけの存在だよ
2023/09/29(金) 18:30:54.80ID:DNLFnh+Cd
Unity詳しくないけど必要に応じてSokobanクラスの各メソッドが呼び出される仕組みじゃないのこれ?
処理の流れってのがそのUnityが仕切ってる部分のことを言ってるなら
このクラスをいくら眺めても理解できなさそうだけども
2023/09/29(金) 18:41:16.70ID:KGst9XPnM
Unityから呼び出されるメソッドは初期設定のStartと更新処理のUpdateの2つ
毎回呼び出されるのは後者なのでそこから追いかけていけばいい
2023/09/29(金) 18:51:42.76ID:DNLFnh+Cd
なるほど、たしかにコメントにもそう書いてある
もっとあれこれ呼ばれるのかと思ったら意外にシンプル
てことは>>267が分からないって言ってる「処理の流れ」はクラスの中の話の可能性が高い?
であればコードを読み進めてここで詰まったとか具体的な情報が欲しいところ
2023/09/29(金) 18:57:11.74ID:jReLA3HcM
実際にコードを見てその印象なら初心者と変わりない
2023/09/29(金) 19:18:05.29ID:KklayHMNd
なんか因縁つけられた
274デフォルトの名無しさん (ブーイモ MMef-VO9t)
垢版 |
2023/09/29(金) 22:00:42.65ID:WQUdW1Y0M
こんだけみっちりコメント書いてあって、メソッドも分かれてるから、後は気合だけのような…
2023/09/29(金) 22:31:46.59ID:KklayHMNd
あとは自分の今の知識・理解度に見合ってるかどうかかね
他スレでもたまに明らかに分不相応なお題に取り組もうとしてる人を見かける
2023/09/29(金) 22:37:09.95ID:qnLQZNNU0
基本素養が足りてない人に限って、Webの情報を断片的に拾い読みするだけで済まそうとする…
2,3千円をケチらずにちゃんとした入門書を買うべきやろな
2023/09/30(土) 00:58:15.11ID:tFuDf2bYM
千里の道も一歩からと言うけど100m先のコンビニへもまず一歩踏み出さないと到達しない
プログラムでバグが出るのは当たり前でそれを潰すのは経験を積むしかない
コードを読むだけではそこらへんは無理
文法が分かったとして実際に書かないと理解は深まらない

見てもわからないなら紙にでも書き出して考えることもできる
小学生のころは配列の内容を方眼紙とかに書いてプログラムを再現して理解しようとしてた
それがいつの間にか脳内ですべて完結するようになった
期待通りにならなくても結果を見て経験からこうだろうなと見当を付けられるようになった

小学生より賢いはずなんだからなにか手立てはあるだろう
2023/09/30(土) 03:26:23.71ID:qC94828iM
実際にUnityを使っていて一度でも空のプロジェクトを作ったことがあれば>>270程度のことは直ぐに分かる
中身が空のスケルトンコードがそのまま作られるのでUnityと言うゲームエンジンのフレームワークの基本構造が見えてくる
コードを読む前にまず手を動かして見なければ気付けないことも多い
279デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
垢版 |
2023/09/30(土) 06:13:30.76ID:lCW6xIVF0
>>277
倉庫番のコードを書くようにしますが、その場合は他人のコードを完璧に真似るつもりでやったほうがいいですか?自己流でやっていたことが良くないと気づいたので。他人のやり方まで取り込むのが上達への近道かなと思ってます
280デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
垢版 |
2023/09/30(土) 06:20:57.56ID:lCW6xIVF0
他人のコードを理解する、読み解く上でのやり方が確立されていない感じです
2023/09/30(土) 06:40:22.13ID:EIBJTlDv0
読み解き方が確立されてるかされてないか以前の問題のような……
2023/09/30(土) 08:57:55.29ID:1LHvsOST0
基礎が身についてないのにやみくもに書き写したところで書く能力が身につくわけないじゃん
自分語りの詐欺的商法に騙されるなよ
ちょっと考えればわかるだろ

キミに必要なのは公式チュートリアルと入門書
2023/09/30(土) 09:50:03.07ID:tFuDf2bYM
40年ぐらい前の小学3年生よりあなたは賢いのかどうかと言う問題
現状スキルレベルでは負けている
環境では勝っている
2023/09/30(土) 10:00:47.45ID:RNKSTVVAd
>>280
小難しい理屈はどうでもいいから、>>239のソースを読んでて分からないところを具体的に質問しよう
質問が具体的な方がこちらも質問者のレベルを推し量れるしアドバイスもしやすい
285デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
垢版 |
2023/09/30(土) 10:21:02.95ID:lCW6xIVF0
>>284
手を動かさないと何が分からないかも、分からないという状態から脱せないでしょうか?
2023/09/30(土) 10:27:45.96ID:tFuDf2bYM
入門したてはタイピングが苦痛だった
一文字ずつキーボードとにらめっこ
p r i n t と一文字ずつ探してやっと一行を入れ終わる
そして実行

自分が今一行入力した分だけ画面が変わったりする
今書いたコードはこういうことなんだと分かる
それが体験で経験

誰がどのように入力しても結果は同じ
2023/09/30(土) 10:29:22.27ID:tFuDf2bYM
そのころコードを読んでも絶対意味なんて判らない
手を動かして実行
これ以外上達の方法はない
2023/09/30(土) 10:38:44.22ID:RNKSTVVAd
>>285
初歩的なところから聞くけどこのソースを実行できる環境はちゃんとある?
実際に動かしてみた?
289デフォルトの名無しさん (アウアウウー Sa89-5C2y)
垢版 |
2023/09/30(土) 10:44:33.67ID:+WV6fTrGa
>>252
東京パソコンクラブのノリだな
2023/09/30(土) 10:49:18.06ID:tFuDf2bYM
英単語なんか知らないから一文字ずつアルファベットを暗唱しながらタイプしていく
呪文を打ち込んでいく
一行入力も辛いので途中で実行して進展を見る
入力したコードの理解が深まる
そうして小さな成功体験を積み重ねる

そのうち前に入力したのと同じような内容が出てくる
今度は実行しなくても結果がわかる
実行してみて違うなら違いを探す

こうして一歩ずつ進む

コードを読んだりコメントを読むだけだとこういうのが失われて分かった気にだけなる
実際にコードを書けないし着想もできない
291デフォルトの名無しさん (アウアウウー Sa89-5C2y)
垢版 |
2023/09/30(土) 11:04:04.96ID:+WV6fTrGa
>>285 は手が動いても頭が動かないタイプと観た
2023/09/30(土) 13:07:46.30ID:Xbo2Ry+C0
それ、逆じゃないのかな。
手を動かす前にうだうだ考えるウチに投げ出すタイプというか。

なにも考えずにとりあえずコードを打ち込んでみて、動かしてみればいいじゃない。
そしてその動くプログラムのコードを書いているときや後から眺めたときに「こうした方がいいんじゃない?」って思ったところを何度でも直して、また動かしてみる、と。

実際、自分がやるのもそれに近いところがなくもないし。
分からないところをネットで調べてコピペして動かして、足りないところや考慮すべきところを直し加えてってのを何回かやったりやらなかったり。
293デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
垢版 |
2023/09/30(土) 14:30:45.31ID:lCW6xIVF0
>>288
unityで動かしております
>>290
やはり手を動かします
>>284
では質問させてもらいます
gptに聞いたのですが、良くわかりませんでした

https://gist.github.com/baba-s/e4da98f6fce2b6cca36b0cf3bb91f9d0
TileTypeという列挙型があり、tiletype型を使用してtilelist変数を宣言しているのが分からないです。
普通、インデックスにアクセスする場合は整数型を使うと思うんですが。

やはり、基礎が出来てないなと
2023/09/30(土) 14:47:09.79ID:jRqEkae9M
例えばデバッガーでマップの配列の中を確認する場合、無味乾燥な整数で状態表示されるより列挙変数で表示された方が分かりやすいだろ
プレイヤー視点ではなく開発者視点で分かりやすくしているだけ
2023/09/30(土) 15:02:25.67ID:RNKSTVVAd
>>293
>普通、インデックスにアクセスする場合は整数型を使うと思うんですが。
インデックスってのはtileList[x, y]のxとyのこと
この場合もxとyは整数型でしょ
インデックス「に」って表現してるけど何かと勘違いしてる?
2023/09/30(土) 15:10:09.10ID:RNKSTVVAd
で、tileListは配列要素の型がTileType列挙型なわけだけど、その理由は>>294も書いてるように可読性や保守性のため
2023/09/30(土) 15:27:57.46ID:tFuDf2bYM
抽象的な話じゃない説明

例えば数値で壁を1で荷物を3とかにすると…
コード内で1とか3の数字が出てくるがそれが何なのか覚えてないとわからない
データの種類が100種類とかあると管理だけで大変

それを改善する場合に数字じゃなくて文字で '壁' とか'荷'とか'人'とかにもできる

でもこの場合も問題がある

気まぐれで壁や荷物を赤い壁と青い壁、赤い荷物と青い荷物などにしたくなった場合にどうするか?
別に色情報持つとか考えなくてはならない
それだったらTypeでRedWallとかにしたほうがいい

更に後でRedWallをやめたくなった場合にはenumからRedWallを削る
そうするとIDEにエラー表示が出て修正箇所がわかる
これが数字だと修正を自力で探して頑張るしかない
298デフォルトの名無しさん (ワッチョイ 9b0c-RAiU)
垢版 |
2023/09/30(土) 16:04:48.60ID:fUSk+kCE0
>>293
ウザイことこの上ない
まずは入門書を買って読め
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況