ふらっと C#,C♯,C# ..
[2ch|▼Menu]
210:デフォルトの名無しさん (ワッチョイ 86e3-GA9g)
23/09/27 19:49:19.91 vKIc+WH70.net
gptはC#のコード生成しようとしたら1行目からincludeしろとか言ってくるからな

211:デフォルトの名無しさん (ワッチョイ 866b-lrL5)
23/09/28 00:24:01.44 DB6o6lmL0.net
ChatGPTをありがたがるのは無知蒙昧の証し

212:デフォルトの名無しさん (アウアウウー Sacf-j351)
23/09/28 00:36:48.85 wsjwbbNAa.net
>>203
1関数=1モジュール観たいな糞言語ならそうかもな

213:デフォルトの名無しさん (ワッチョイ ff6f-8e9S)
23/09/28 01:23:01.39 NqbGDv2b0.net
未だにオブジェクト指向がよくわからないわ

214:デフォルトの名無しさん (ブーイモ MMaa-gtrM)
23/09/28 04:26:00.84 IXIoJj7cM.net
猫以下か

215:デフォルトの名無しさん (ワッチョイ 1e10-WMZf)
23/09/28 06:36:39.54 M9/KWlcn0.net
ChatGPTに頼るようなヤツはプログラムやらんでもろて

216:デフォルトの名無しさん (ワッチョイ ea74-iHBT)
23/09/28 07:16:02.49 sFf5t7op0.net
もろて
morote

217:デフォルトの名無しさん (ワッチョイ 0ae5-WMZf)
23/09/28 08:57:06.58 fRqICkyk0.net
態々Chatって名前に付けてくれてるのに、おかしな使い方する連中の多いことw

218:デフォルトの名無しさん (アウアウウー Sacf-j351)
23/09/28 09:58:47.34 7+/lnWbqa.net
やらんでもろて=やらないでくださいおながいしますわ

219:デフォルトの名無しさん (オッペケ Sr23-IWg1)
23/09/28 10:03:11.78 A/US9xLcr.net
名前にchatってついてることと使い方に何か関係が?

220:デフォルトの名無しさん (ワッチョイ 0a1f-oBwi)
23/09/28 10:12:26.69 uRtj8fwF0.net
chatGPTは、会話する友達のいないボッチが寂しさを紛らわす為の癒しツールだからなぁ

221:デフォルトの名無しさん (ワッチョイ 4635-D9qI)
23/09/28 10:28:24.51 /0J5x9qx0.net
つまりお前らってChatGPTだったの?

222:デフォルトの名無しさん (ワッチョイ 7f33-gNtf)
23/09/28 10:34:11.26 xz2WgalN0.net
うずらです

223:デフォルトの名無しさん (ワッチョイ 8ea7-AKT7)
23/09/28 12:28:16.47 JVi1NSOB0.net
ひよこです

224:デフォルトの名無しさん (ワッチョイ 8701-DeI3)
23/09/28 12:52:33.59 lN71jGVG0.net
>>203
>関数化はモジュール化とは言わないですか?
一般的に


225:は言わない モジュール/モジュール化という言葉は文脈によって意味が多岐に渡る 広い意味で再利用可能・入れ替え可能な部品に分割することをモジュール化と呼ぶこともあるので ある処理を抽出して関数化することもモジュール化と言えないこともないが一般的ではない 関数よりもっと大きな単位を指して使われることがほとんど 狭い意味だと使ってる言語で定義されてる”モジュール”に分割することを言う >一般的に別スクリプトに分けることをモジュール化というらしいです。 Pythonのように1ファイルが1モジュールになる言語であれば 別スクリプトに分けることとが狭い意味のモジュール化 C#にもモジュールの定義はあるにはあるけど通常意識されないものなので モジュール化という言葉が狭い意味で使われることはほとんどない



226:デフォルトの名無しさん (ワッチョイ 8a79-aeRl)
23/09/28 19:13:21.19 0dpaiugf0.net
モジュールは外からの見た目だから
中身が何で出来てるかなんて関知しない
たとえうんこで出来ててもな!

227:デフォルトの名無しさん (スプッッ Sd4a-+j9z)
23/09/28 21:49:14.57 Vwqtf0AId.net
>>215がBardやBingAIにはどんな難癖を付けるのか気になる

228:デフォルトの名無しさん (ワッチョイ 6ab0-/va4)
23/09/29 04:46:58.75 sbQ57Iwc0.net
質問です
他人のコードを読むという行為は「分解」なのでしょうか?
他人のコードがわかりにくい場合は、スクリプトを分けるなどして分解するのが良いですか?

229:デフォルトの名無しさん (ワッチョイ 035f-9Nr+)
23/09/29 05:09:44.28 Zsgx8btV0.net
>>225
そのコードリーディングの目的は?

230:デフォルトの名無しさん (ワッチョイ 6ab0-/va4)
23/09/29 06:50:21.28 sbQ57Iwc0.net
ゲーム用のプログラムなのですが、ロジックを知りたいです

231:デフォルトの名無しさん (ラクッペペ MMc6-se1G)
23/09/29 07:13:40.48 4IudvC8QM.net
解析が目的ならリバースエンジニアリング

232:デフォルトの名無しさん (ワッチョイ 0794-oBwi)
23/09/29 07:35:41.02 R/ASBcAr0.net
リバースエンジニアリングは、マシン語になった実行ファイルやROMから逆アセンブルなどを用いて命令コードに変換して処理内容を読み取る技術だろ
ソースコード自体があるなら単に読めばいいだけ

233:デフォルトの名無しさん (ワッチョイ 0794-oBwi)
23/09/29 07:37:22.59 R/ASBcAr0.net
スクリプト?
ああ、スクリプト言語で書かれているのか
それならスクリプト自体を幾ら読んでも分からないよw
実際に動作を定義してるのはスクリプトエンジン側だからなぁ

234:デフォルトの名無しさん (ワッチョイ 0a1f-oBwi)
23/09/29 08:13:03.19 2i5v5Rt90.net
ゲームのスクリプト読んでも、分かるのはそのゲームのストーリーくらいかなぁ?

235:デフォルトの名無しさん (オッペケ Sr23-IWg1)
23/09/29 08:53:29.85 HVJlKrO3r.net
>>227
その目的と
>他人のコードを読むという行為は「分解」なのでしょうか?
という質問は何か関係あるの?

236:デフォルトの名無しさん (ワッチョイ 0ae5-WMZf)
23/09/29 08:58:03.08 Z2hlTA8C0.net
>>229
逆アセはリバースエンジニアリングの過程の処理のひとつで
ソースコード読み解いて動作を解析することもリバースエンジニアリングよ

237:デフォルトの名無しさん (ワッチョイ 0a1f-oBwi)
23/09/29 09:11:19.11 2i5v5Rt90.net
ソースコード自体にもう内容書かれてんのにリバースエンジニアリングとはw

238:デフォルトの名無しさん (ラクッペペ MMc6-se1G)
23/09/29 09:23:35.81 XHcVYCVKM.net
例えばシェルスクリプトならそのまま読むだけですべて動作を理解できる
一方でゲームスクリプトはゲームエンジンの動作を解析しないと理解は難しい

239:デフォルトの名無しさん (ラクッペペ MMc6-se1G)
23/09/29 09:28:49.63 dgWEZ4BHM.net
もっとも利用するだけなら使い方を理解するだけで中身を理解する必要はない

240:デフォルトの名無しさん (ワッチョイ 035f-9Nr+)
23/09/29 09:49:19.43 Zsgx8btV0.net
>>227
ゲーム「用」とは?

241:デフォルトの名無しさん (ワッチョイ 0a02-4KCz)
23/09/29 10:17:17.30 LLT8Nv/70.net
単に読んでるだけでわかりにくにならデバッグ実行して動作とコードの関係を把握しながら読むと理解しやすい
途中で変数の値の確認や変更もやると確証がもてる

242:デフォルトの名無しさん (ワッチョイ 6ab0-/va4)
23/09/29 13:16:35.37 sbQ57Iwc0.net
>>237
URLリンク(gist.github.com)
これが倉庫番のコードなのですが、全て1つのスクリプトに書かれています
これが分かりづらいので、分割、分解して理解を深めたいです
>>232
自分でゲームを作りたいので、分解してロジックを理解したいです
他人のコードを読み解く能力が上達には必須と考えました

243:デフォルトの名無しさん (スフッ Sdaa-TrDt)
23/09/29 13:26:47.91 y68JSf5Yd.net
>>239
この規模だと分割したらさらに判らなくなるだけだと思う

244:デフォルトの名無しさん (ワッチョイ 7f33-gNtf)
23/09/29 13:30:08.99 F5ALDY7d0.net
>>239
Unityの知識は大丈夫なの?

245:デフォルトの名無しさん (ワッチョイ 0a1f-oBwi)
23/09/29 13:34:09.53 2i5v5Rt90.net
スクリプト?

246:デフォルトの名無しさん (オイコラミネオ MM0b-WMZf)
23/09/29 13:45:18.92 jReLA3HcM.net
40年前ぐらい小学生のころに雑誌に載ってた倉庫番打ち込んだな
おそらく7~8ページ程度だったけど2週間ぐらいかかった
ロジックはほとんどなくドット絵のデータがメイン
そんな思いをしなくても遊べる今は恵まれてるなと思う
打ち込んでは実行してタイプミス潰し
倉庫番はリアルタイム性などない単純なパズルだから打ち込んでると嫌でも仕組みはわかった
何しろ状態を持ってない
全部マップデータ通りで単純明快
多分コード読んでるだけじゃ理解は深まらない
自分の見たい部分しか見ないから
コード打ち込むと全部舐めなければならない
そのうえで改変して挙動を確かめる

247:デフォルトの名無しさん (オイコラミネオ MM0b-WMZf)
23/09/29 14:04:01.36 jReLA3HcM.net
大体2~3本似たようなプログラムを打ち込むと
仕組みが大体頭に入る
やってることは非常に単純
小学生にも理解出来る
そして普通に自分でも書ける
多分何百本分のコードを読んでも理解度は低いと思う

248:デフォルトの名無しさん (オイコラミネオ MM0b-WMZf)
23/09/29 14:14:09.16 jReLA3HcM.net
そのころはコードにコメントなどもちろんなくインターネットもなく
下手するとマニュアルもなかった
でも数本打ち込むと大体わかった
英単語も読めない小学生にもわかるんだから誰にでも理解できると思う

249:デフォルトの名無しさん (ワッチョイ 86e5-IWg1)
23/09/29 14:14:32.11 2UiM+hiU0.net
>>239
>他人のコードを読むという行為は「分解」なのでしょうか?
これはノー
「分解」はあくまでもコードを読み解くためのテクニックの1つ

250:デフォルトの名無しさん (ワッチョイ 1a9b-3hLy)
23/09/29 14:17:39.88 iWuHjGCu0.net
>>239
スクリプトって書いたら意味が通じない
(ソースコードを記述した)ファイルもしくはソースファイル

251:デフォルトの名無しさん (オイコラミネオ MM0b-WMZf)
23/09/29 14:23:02.71 jReLA3HcM.net
>>247
unityではc#スクリプトと呼んでる

252:デフォルトの名無しさん (オイコラミネオ MM0b-WMZf)
23/09/29 14:30:40.47 jReLA3HcM.net
英語を読む・聞き取る・話す は分かりやすく別の学習をしないといけない

コードを読めても書けなければ意味がない
理解したいならコードを書いた方がいい

253:デフォルトの名無しさん (ワッチョイ 0a1f-oBwi)
23/09/29 14:34:27.27 2i5v5Rt90.net
>>248
ああ、そう言う位置付けなのか
文字通りスクリプトなんだろうなぁ
ビルドしないで直接動かすんだろ?

254:デフォルトの名無しさん (オイコラミネオ MM0b-WMZf)
23/09/29 14:36:55.26 jReLA3HcM.net
それとコードを読むのは非常に高度な技術だから

初心者がコードだけ読もうとしても
おそらく思ったような成果はあげれれない

255:デフォルトの名無しさん (ササクッテロラ Sp23-oBwi)
23/09/29 14:39:11.07 ty79BRMgp.net
ゲームの細かい動きの部分だけスクリプトで書いてるみたいな感じだと全体を理解するの難しいかもね

256:デフォルトの名無しさん (スプッッ Sd4a-+j9z)
23/09/29 14:40:02.98 AtqL2tKZd.net
隙あらば長文自分語り

257:デフォルトの名無しさん (オイコラミネオ MM0b-WMZf)
23/09/29 15:00:48.68 jReLA3HcM.net
倉庫番自体のロジックは非常に単純
オセロより簡単ともいえる

キャラが空白のところへ動かせるようにつくる
移動先に荷物があってその先が空白ならキャラと荷物が動く
そのあと終わってるかどうか判定するだけ

258:デフォルトの名無しさん (ワッチョイ ff44-/va4)
23/09/29 15:06:10.15 kab4oOZl0.net
じゃあフラッピーは?

259:デフォルトの名無しさん (ワッチョイ de7b-/va4)
23/09/29 15:37:41.47 3lAWIYxj0.net
>>239
こういうのこそChatGPTの使いどころでは?

260:デフォルトの名無しさん (JP 0H42-yQCX)
23/09/29 15:39:08.46 tU9ZFt65H.net
ここみれば?
URLリンク(baba-s.)はてなblog.com/entry/2018/03/30/085000

261:デフォルトの名無しさん (JP 0H42-yQCX)
23/09/29 15:41:33.40 tU9ZFt65H.net
はてな英字表記がNGワードだった
作者が全部解説してるのにこっち見ないで完成形のソースだけ見てなにをどう理解したいのかわからない

262:デフォルトの名無しさん (ワッチョイ 869b-lrL5)
23/09/29 15:56:47.20 C71JBRro0.net
>>239
うだうだ人に聞いてるお前には無理だと思う

263:デフォルトの名無しさん (スッップ Sdaa-+j9z)
23/09/29 16:10:41.00 DNLFnh+Cd.net
>>225にしても>>203にしても質問がヘタというか的外れというか
それ聞いてどうするの?言葉の定義を確認して何になるの?って感じが
コードのここの意味が解りません、とかの具体的な質問の方がよっぽどマシ

264:デフォルトの名無しさん (オイコラミネオ MM0b-WMZf)
23/09/29 17:31:51.45 jReLA3HcM.net
初心者相手に罵倒しても心が汚れるだけ
上のコードはあまり関心出来ない部分もある
そのせいで分かりにくい箇所が若干ある

265:デフォルトの名無しさん (スッップ Sdaa-+j9z)
23/09/29 17:42:07.96 DNLFnh+Cd.net
罵倒、苦言、批判の区別は付いてるかな?

266:デフォルトの名無しさん (ワッチョイ 0ae5-WMZf)
23/09/29 17:44:14.21 Z2hlTA8C0.net
>>234
逆アセで生成されたコードも、アセンブラの"ソースコード"だぞ?w

267:デフォルトの名無しさん (ワントンキン MMfa-AkpS)
23/09/29 17:58:40.51 QaI2pK3GM.net
ワッチョイ 6ab0-/va4
ネチネチとしつこいだけでダメな奴の典型例

268:デフォルトの名無しさん (ワッチョイ 0744-oBwi)
23/09/29 17:58:57.69 R/ASBcAr0.net
>>263
意味不明w

269:デフォルトの名無しさん (ワッチョイ 0ae5-WMZf)
23/09/29 17:59:37.91 Z2hlTA8C0.net
意味がわからんなら勉強しといでw

270:デフォルトの名無しさん (ワッチョイ 6ab0-/va4)
23/09/29 18:01:17.51 sbQ57Iwc0.net
質問者です
確かに何が分からないのか言語化出来ないかもしれません
丸投げ質問にならないようにもう少しもがきます
ぼんやりした事を言うと、分からない部分は処理の流れですかね。

271:デフォルトの名無しさん (ワッチョイ 87e5-7af3)
23/09/29 18:13:34.27 omi/Go5l0.net
フレームワークから呼び出されるだけの存在だよ

272:デフォルトの名無しさん (スッップ Sdaa-+j9z)
23/09/29 18:30:54.80 DNLFnh+Cd.net
Unity詳しくないけど必要に応じてSokobanクラスの各メソッドが呼び出される仕組みじゃないのこれ?
処理の流れってのがそのUnityが仕切ってる部分のことを言ってるなら
このクラスをいくら眺めても理解できなさそうだけども

273:デフォルトの名無しさん (ラクッペペ MMc6-se1G)
23/09/29 18:41:16.70 KGst9XPnM.net
Unityから呼び出されるメソッドは初期設定のStartと更新処理のUpdateの2つ
毎回呼び出されるのは後者なのでそこから追いかけていけばいい

274:デフォルトの名無しさん (スッップ Sdaa-+j9z)
23/09/29 18:51:42.76 DNLFnh+Cd.net
なるほど、たしかにコメントにもそう書いてある
もっとあれこれ呼ばれるのかと思ったら意外にシンプル
てことは>>267が分からないって言ってる「処理の流れ」はクラスの中の話の可能性が高い?
であればコードを読み進めてここで詰まったとか具体的な情報が欲しいところ

275:デフォルトの名無しさん (オイコラミネオ MM0b-WMZf)
23/09/29 18:57:11.74 jReLA3HcM.net
実際にコードを見てその印象なら初心者と変わりない

276:デフォルトの名無しさん (スプッッ Sd4a-+j9z)
23/09/29 19:18:05.29 KklayHMNd.net
なんか因縁つけられた

277:デフォルトの名無しさん (ブーイモ MMef-VO9t)
23/09/29 22:00:42.65 WQUdW1Y0M.net
こんだけみっちりコメント書いてあって、メソッドも分かれてるから、後は気合だけのような…

278:デフォルトの名無しさん (スプッッ Sd4a-+j9z)
23/09/29 22:31:46.59 KklayHMNd.net
あとは自分の今の知識・理解度に見合ってるかどうかかね
他スレでもたまに明らかに分不相応なお題に取り組もうとしてる人を見かける

279:デフォルトの名無しさん (ワッチョイ 8a6a-gNtf)
23/09/29 22:37:09.95 qnLQZNNU0.net
基本素養が足りてない人に限って、Webの情報を断片的に拾い読みするだけで済まそうとする…
2,3千円をケチらずにちゃんとした入門書を買うべきやろな

280:デフォルトの名無しさん (オイコラミネオ MMd1-VEJP)
23/09/30 00:58:15.11 tFuDf2bYM.net
千里の道も一歩からと言うけど100m先のコンビニへもまず一歩踏み出さないと到達しない
プログラムでバグが出るのは当たり前でそれを潰すのは経験を積むしかない
コードを読むだけではそこらへんは無理
文法が分かったとして実際に書かないと理解は深まらない

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

小学生より賢いはずなんだからなにか手立てはあるだろう

281:デフォルトの名無しさん (ラクッペペ MMcb-/u/1)
23/09/30 03:26:23.71 qC94828iM.net
実際にUnityを使っていて一度でも空のプロジェクトを作ったことがあれば>>270程度のことは直ぐに分かる
中身が空のスケルトンコードがそのまま作られるのでUnityと言うゲームエンジンのフレームワークの基本構造が見えてくる
コードを読む前にまず手を動かして見なければ気付けないことも多い

282:デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
23/09/30 06:13:30.76 lCW6xIVF0.net
>>277
倉庫番のコードを書くようにしますが、その場合は他人のコードを完璧に真似るつもりでやったほうがいいですか?自己流でやっていたことが良くないと気づいたので。他人のやり方まで取り込むのが上達への近道かなと思ってます

283:デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
23/09/30 06:20:57.56 lCW6xIVF0.net
他人のコードを理解する、読み解く上でのやり方が確立されていない感じです

284:デフォルトの名無しさん (ワッチョイ cb10-VEJP)
23/09/30 06:40:22.13 EIBJTlDv0.net
読み解き方が確立されてるかされてないか以前の問題のような……

285:デフォルトの名無しさん (ワッチョイ 2d82-cP1N)
23/09/30 08:57:55.29 1LHvsOST0.net
基礎が身についてないのにやみくもに書き写したところで書く能力が身につくわけないじゃん
自分語りの詐欺的商法に騙されるなよ
ちょっと考えればわかるだろ
キミに必要なのは公式チュートリアルと入門書

286:デフォルトの名無しさん (オイコラミネオ MMd1-VEJP)
23/09/30 09:50:03.07 tFuDf2bYM.net
40年ぐらい前の小学3年生よりあなたは賢いのかどうかと言う問題
現状スキルレベルでは負けている
環境では勝っている

287:デフォルトの名無しさん (スップ Sd43-sBWh)
23/09/30 10:00:47.45 RNKSTVVAd.net
>>280
小難しい理屈はどうでもいいから、>>239のソースを読んでて分からないところを具体的に質問しよう
質問が具体的な方がこちらも質問者のレベルを推し量れるしアドバイスもしやすい

288:デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
23/09/30 10:21:02.95 lCW6xIVF0.net
>>284
手を動かさないと何が分からないかも、分からないという状態から脱せないでしょうか?

289:デフォルトの名無しさん (オイコラミネオ MMd1-VEJP)
23/09/30 10:27:45.96 tFuDf2bYM.net
入門したてはタイピングが苦痛だった
一文字ずつキーボードとにらめっこ
p r i n t と一文字ずつ探してやっと一行を入れ終わる
そして実行
自分が今一行入力した分だけ画面が変わったりする
今書いたコードはこういうことなんだと分かる
それが体験で経験
誰がどのように入力しても結果は同じ

290:デフォルトの名無しさん (オイコラミネオ MMd1-VEJP)
23/09/30 10:29:22.27 tFuDf2bYM.net
そのころコードを読んでも絶対意味なんて判らない
手を動かして実行
これ以外上達の方法はない

291:デフォルトの名無しさん (スップ Sd43-sBWh)
23/09/30 10:38:44.22 RNKSTVVAd.net
>>285
初歩的なところから聞くけどこのソースを実行できる環境はちゃんとある?
実際に動かしてみた?

292:デフォルトの名無しさん (アウアウウー Sa89-5C2y)
23/09/30 10:44:33.67 +WV6fTrGa.net
>>252
東京パソコンクラブのノリだな

293:デフォルトの名無しさん (オイコラミネオ MMd1-VEJP)
23/09/30 10:49:18.06 tFuDf2bYM.net
英単語なんか知らないから一文字ずつアルファベットを暗唱しながらタイプしていく
呪文を打ち込んでいく
一行入力も辛いので途中で実行して進展を見る
入力したコードの理解が深まる
そうして小さな成功体験を積み重ねる
そのうち前に入力したのと同じような内容が出てくる
今度は実行しなくても結果がわかる
実行してみて違うなら違いを探す
こうして一歩ずつ進む
コードを読んだりコメントを読むだけだとこういうのが失われて分かった気にだけなる
実際にコードを書けないし着想もできない

294:デフォルトの名無しさん (アウアウウー Sa89-5C2y)
23/09/30 11:04:04.96 +WV6fTrGa.net
>>285 は手が動いても頭が動かないタイプと観た

295:デフォルトの名無しさん (ワッチョイ 9bbc-VEJP)
23/09/30 13:07:46.30 Xbo2Ry+C0.net
それ、逆じゃないのかな。
手を動かす前にうだうだ考えるウチに投げ出すタイプというか。

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

実際、自分がやるのもそれに近いところがなくもないし。
分からないところをネットで調べてコピペして動かして、足りないところや考慮すべきところを直し加えてってのを何回かやったりやらなかったり。

296:デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
23/09/30 14:30:45.31 lCW6xIVF0.net
>>288
unityで動かしております
>>290
やはり手を動かします
>>284
では質問させてもらいます
gptに聞いたのですが、良くわかりませんでした

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

やはり、基礎が出来てないなと

297:デフォルトの名無しさん (ラクッペペ MMcb-/u/1)
23/09/30 14:47:09.79 jRqEkae9M.net
例えばデバッガーでマップの配列の中を確認する場合、無味乾燥な整数で状態表示されるより列挙変数で表示された方が分かりやすいだろ
プレイヤー視点ではなく開発者視点で分かりやすくしているだけ

298:デフォルトの名無しさん (スップ Sd43-sBWh)
23/09/30 15:02:25.67 RNKSTVVAd.net
>>293
>普通、インデックスにアクセスする場合は整数型を使うと思うんですが。
インデックスってのはtileList[x, y]のxとyのこと
この場合もxとyは整数型でしょ
インデックス「に」って表現してるけど何かと勘違いしてる?

299:デフォルトの名無しさん (スップ Sd43-sBWh)
23/09/30 15:10:09.10 RNKSTVVAd.net
で、tileListは配列要素の型がTileType列挙型なわけだけど、その理由は>>294も書いてるように可読性や保守性のため

300:デフォルトの名無しさん (オイコラミネオ MMd1-VEJP)
23/09/30 15:27:57.46 tFuDf2bYM.net
抽象的な話じゃない説明

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

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

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

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

更に後でRedWallをやめたくなった場合にはenumからRedWallを削る
そうするとIDEにエラー表示が出て修正箇所がわかる
これが数字だと修正を自力で探して頑張るしかない

301:デフォルトの名無しさん (ワッチョイ 9b0c-RAiU)
23/09/30 16:04:48.60 fUSk+kCE0.net
>>293
ウザイことこの上ない
まずは入門書を買って読め

302:デフォルトの名無しさん (ワッチョイ ab9a-cP1N)
23/09/30 16:20:33.29 kuFk0VAS0.net
勘違いしてそうなので基本的なことから書くと
int[3]は[0, 0, 0]のように各要素がint型で長さ3の1次元配列を示す型
string[3]は[“a”, ”bb”, “ccd”]のように各要素がstring型で長さ3の1次元配列を示す型
TileType[3]は[TileType.NONE, TileType.PLAYER, TileType.GROUND]のように各要素がTileType型で長さ3の1次元配列を示す型
var tiles = new TileType[3]{TileType.NONE, TileType.PLAYER, TileType.GROUND};
if (tiles[0] == TileType.PLAYER) do_something;
のような使い方をする
TileType[10, 10]は各要素がTileType型で10×10の2次元配列を示す型

303:デフォルトの名無しさん (ワッチョイ 2d1e-UA51)
23/09/30 16:43:41.11 rxNaOE9c0.net
可読性の高いRuby で、3目並べが並んだかどうかの判定だけでも、こんなに書く。
ましてや他言語は可読性も低いし、他人のコードなど読めるわけがない!
他人のコードを読むことを勧めるような香具師は嘘。
100行の内、5行ぐらいしか読んでいない
input_ary = [ ["x","","", "x","","", "o","o","o"],
["o","","x", "","o","x", "","o","x"],
["x","o","o", "","x","", "o","","x"],
["x","","o", "x","o","", "o","",""],
["o","x","o", "","x","", "","o","x"] ]
def check_win( board_ary )
puts "-" * 40
diag_ary = Array.new( 3 ) # 斜め
diag_ary[ 0 ] = board_ary[ 0 ]
diag_ary[ 1 ] = board_ary[ 4 ]
diag_ary[ 2 ] = board_ary[ 8 ]
return true if diag_ary.all? { |cell| cell == "o" } ||
diag_ary.all? { |cell| cell == "x" }
diag_ary[ 0 ] = board_ary[ 2 ]
# diag_ary[ 1 ] = board_ary[ 4 ]
diag_ary[ 2 ] = board_ary[ 6 ]
return true if diag_ary.all? { |cell| cell == "o" } ||
diag_ary.all? { |cell| cell == "x" }
次へ続く

304:300 (ワッチョイ 2d1e-UA51)
23/09/30 16:44:26.02 rxNaOE9c0.net
前の続き
p outer_ary = board_ary.each_slice( 3 ).to_a # 3×3 の配列
outer_ary.each do |inner_ary|
p inner_ary
return true if inner_ary.all? { |cell| cell == "o" } ||
inner_ary.all? { |cell| cell == "x" }
end
puts "転置後"
p outer_ary2 = outer_ary.transpose # 転置
outer_ary2.each do |inner_ary|
p inner_ary
return true if inner_ary.all? { |cell| cell == "o" } ||
inner_ary.all? { |cell| cell == "x" }
end
false
end
res = input_ary.map { |ary| check_win( ary ) }
puts "-" * 40
p res #=> [true, true, true, true, false]

305:300 (ワッチョイ 2d1e-UA51)
23/09/30 16:56:49.16 rxNaOE9c0.net
仕様から、コードは書けるが、
コードから仕様を推測するのは、10倍以上難しい
他人のコードを読むと、膨大な時間の無駄で、
自作していないから身につかない
3目並べとか、じゃんけんとか、素数判定とか、
簡単な所から自作すべき!
解説が無いような、他人のコードを絶対に読んではならない!
膨大な時間の無駄

306:デフォルトの名無しさん (ワンミングク MMa3-E1cW)
23/09/30 18:10:18.46 Ag7bGIUIM.net
しつこい馬鹿のせいでrubyキチガイまで出てきた

307:デフォルトの名無しさん (ワッチョイ 8501-6YkV)
23/09/30 18:43:08.79 UMbhW8aD0.net
昔々BASICインタプリタと横スクロールゲーを全てレポート用紙に逆アセンブルして分析したのはメチャ役に立った
初心者が(簡単な)ゲームの分析、理解することは役立つこと多いと思うよ

308:デフォルトの名無しさん (ワンミングク MMa3-AwC8)
23/09/30 20:59:11.77 U9V2qVkaM.net
人に聞きまくるだけの奴には無理だぞ
方法論以前の問題

309:デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
23/10/01 10:33:20.05 5ao4WmOt0.net
>>294
回答どうも
理解が悪いです

列挙型って数字でもあるんですか?
それぞれの文字列にインデックスがあると。

310:デフォルトの名無しさん (ワッチョイ 2d50-uznD)
23/10/01 10:43:13.42 Zy/Xpldc0.net
列挙型、配列、インデックス
根本的にこのへんが正しく理解できてないな
>>299の言ってること理解できる?
分からないならどこが分からないな質問する

311:デフォルトの名無しさん (ワッチョイ d553-lFbY)
23/10/01 12:21:46.44 o8cy9tiS0.net
URLリンク(wikiwiki.jp)

312:デフォルトの名無しさん (ラクッペペ MMcb-/u/1)
23/10/01 12:27:48.25 jo3dkEigM.net
>>306
配列の要素のデータ型が列挙型(の変数)というだけであって配列そのものが特殊なものという訳ではない
URLリンク(i.imgur.com)

313:デフォルトの名無しさん (ラクッペペ MMcb-/u/1)
23/10/01 12:27:59.76 jo3dkEigM.net
>>306
配列の要素のデータ型が列挙型(の変数)というだけであって配列そのものが特殊なものという訳ではない
URLリンク(i.imgur.com)

314:デフォルトの名無しさん (ワッチョイ 25da-/u/1)
23/10/01 12:28:36.05 9rYgJ/eZ0.net
>>306
配列の要素のデータ型が列挙型(の変数)というだけであって配列そのものが特殊なものという訳ではない
URLリンク(i.imgur.com)

315:デフォルトの名無しさん (ワッチョイ 25da-/u/1)
23/10/01 12:28:44.44 9rYgJ/eZ0.net
>>306
配列の要素のデータ型が列挙型(の変数)というだけであって配列そのものが特殊なものという訳ではない
URLリンク(i.imgur.com)

316:デフォルトの名無しさん (ラクッペペ MMcb-/u/1)
23/10/01 12:31:41.14 OrY06J6zM.net
ネットの調子が悪い
連投スマソ

317:デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
23/10/01 12:44:57.25 Je269Bs00.net
>>307
ありがとうございます
URLリンク(baba-s.)はてなぶろぐ.com/entry/2018/03/30/085000
tileList = new TileType[ columns, rows ];
の部分でtiletype型には定数の文字列が入ると思っていましたが、整数値であるcolumnsとrowsを代入しているあたりが分からないです。
何らかの文字列の定数が入ると考えていますた

318:デフォルトの名無しさん (ワッチョイ 2d33-uznD)
23/10/01 13:26:19.97 jNjNNZOq0.net
>>314
君はそもそも配列宣言の記法、意味が分かってない
まず↓あたりをじっくり読んで、サンプルコードも実際に動かして理解して欲しい
URLリンク(ufcpp.net)
そしてハッキリ言うけど今の段階で倉庫番のコードを理解しようとしても基礎が出来てないから無理

319:デフォルトの名無しさん (ワッチョイ 9b9b-RAiU)
23/10/02 02:06:24.20 NgblnbYV0.net
他人の助言には絶対に耳を傾けないタイプ

320:デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
23/10/02 06:20:59.94 TDDpdEaf0.net
>>315
必要なところだけやっていくやり方でやってますが、そういうやり方じゃ駄目なんですか?
配列宣言は分かっているんですが、型が違いますよね
>>316
聞きますが、全てではないです

321:デフォルトの名無しさん (ワントンキン MMa3-E1cW)
23/10/02 07:26:58.07 lRooFwx4M.net
ダメだこいつ

322:デフォルトの名無しさん (ワッチョイ 8501-6YkV)
23/10/02 07:50:32.09 eOR7lDrh0.net
>>314
>tileList = new TileType[ columns, rows ];
元ネタ見てないけど、↑を見てこう考えることができるように基礎知識、経験が必要
・tileListに画面の状態を格納するんだな
・二次元配列としてcolumns, rowsの数だけ確保と
・二次元配列に代入する値はTileType型ね(intとかのリテラル値でなくキチンと定義してるのか)
な感じ
>「tiletype型には定数の文字列が入ると思っていましたが」
ある程度予想しながらソースは読みますが、経験不足で予想外れるのはまだ仕方ない
>「整数値であるcolumnsとrowsを代入している」
代入はしていない。これから値を格納するための二次元配列を確保してるだけ
まだc#の記法がわかってない未熟なだけなので、何もかも貪欲に覚えて。
今やってることは無駄になることは何もない。間違えてても。頭と手をドンドン動かして吸収して


323:いくのだ



324:デフォルトの名無しさん (ラクッペペ MMcb-/u/1)
23/10/02 08:40:07.92 KRZkbw82M.net
>>317
この倉庫番のコードではマップのデータをcsv形式のテキストで設定してtileListという名の配列に格納している
格納する際に配列の要素はcsv内の整数データからTileTypeで定義された列挙型の変数に変換される
具体的な配列の中身を確認した結果が>>309
実際にコードを動かして見ればすぐ分かるだろ

325:デフォルトの名無しさん (ラクッペペ MMcb-/u/1)
23/10/02 08:40:23.40 KRZkbw82M.net
>>317
この倉庫番のコードではマップのデータをcsv形式のテキストで設定してtileListという名の配列に格納している
格納する際に配列の要素はcsv内の整数データからTileTypeで定義された列挙型の変数に変換される
具体的な配列の中身を確認した結果が>>309
実際にコードを動かして見ればすぐ分かるだろ

326:デフォルトの名無しさん (ラクッペペ MMcb-/u/1)
23/10/02 08:42:07.04 KRZkbw82M.net
何故かまた2回送信された
接続が不安定すぎるorz

327:デフォルトの名無しさん (ワッチョイ e32b-T/nl)
23/10/02 08:56:34.32 Rca7jjjr0.net
最近の5chの問題だからいちいち気にしなくて良いぞい

328:デフォルトの名無しさん (ワッチョイ 23bc-uznD)
23/10/02 09:26:07.11 lKJ+23Y70.net
>>317
配列宣言において型が違うことは重要じゃないよ
どんな型の配列だって作れるわけだから
それが分からないことこそが基礎ができてない証拠であって
君の言う「必要なところ」がやれてないということ
>>315のリンク先をきちんと理解すれば>>314
>tiletype型には定数の文字列が入ると思っていましたが、整数値であるcolumnsとrowsを代入しているあたりが分からないです。
>何らかの文字列の定数が入ると考えていますた
という疑問と想定が間違っていたことに気づく
まずそこから始めよう

329:デフォルトの名無しさん (ワッチョイ 2d33-y8kH)
23/10/02 09:31:44.43 ejm1uWXY0.net
自分が必要と思うところだけつまみ食いするのがタイパいいとでも思ってるんかねぇ
見当はずれなことやって結局無駄に時間を使うだけなのに

330:デフォルトの名無しさん (ワッチョイ 9bc8-RAiU)
23/10/02 12:48:13.11 NgblnbYV0.net
批判は一切受付けません!のスタイル
そもそもこんなことに何日も掛けて進まない時点でこいつには無理

331:デフォルトの名無しさん (ワッチョイ 23e5-VEJP)
23/10/02 14:31:10.17 egrIJ/AE0.net
そろそろスルーしとけ

332:デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
23/10/02 15:30:17.92 TDDpdEaf0.net
>>318
>>325
返信してくれた5人が違う事を言ってたら、その中からどれか選ぶしかないじゃないですか。
あと、基礎やるにしてもどうせすべて使うわけじゃないし、必要な部分だけやるスタイルです
>>324
リンク先見てきます

333:デフォルトの名無しさん (ワッチョイ 9b9b-RAiU)
23/10/02 15:35:28.81 NgblnbYV0.net
要約すると、
基礎を学ぶ気はない貴様らは俺の聞いたことに答えればいいんだ
つまり、教えてもらおうではなく聞きだそうというスタイル

334:デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
23/10/02 15:36:53.97 TDDpdEaf0.net
>>329情報源は色々です

335:デフォルトの名無しさん (ワッチョイ 3d49-xyqt)
23/10/02 16:01:32.92 MrhOADGQ0.net
こういうやつには答えないスタイル

336:デフォルトの名無しさん (ワッチョイ 85ad-6Yc9)
23/10/02 16:21:12.93 f2fMpIlB0.net
このレベルの基礎はすべて使うけどね

337:デフォルトの名無しさん (ラクッペペ MMcb-/u/1)
23/10/02 16:26:16.56 ATaGJaaDM.net
とりあえず環境構築してるならまずサンプルコードそのままコピペして実行しろ
いろいろ考えながらコードを弄っているうちに分かってくるからさ
疑問点は人に聞く前にまず自分で試して経験しろ

338:デフォルトの名無しさん (ワッチョイ 2d34-uQQ6)
23/10/02 16:36:07.28 c5cuOzSD0.net
visual studioでステップ実行汁

339:デフォルトの名無しさん (アウアウウー Sa89-5C2y)
23/10/02 16:40:30.40 sFvf9xp1a.net
>>327
>>331
ほんそれ
荒らしの相手レスする香具師も荒らしと看做せばいい
質問オウム返しはそもそも問題解決する気が無くて荒らしたいのだろう

340:デフォルトの名無しさん (ワッチョイ 8501-6YkV)
23/10/02 17:29:56.66 eOR7lDrh0.net
色々なブレイクポイントで止めて中身を確認、理解する
理解できない部分は置いといて次に進む繰り返し
過去の疑問も解けていく
これは必須の作業。これをやればほとんどの疑問、分析は自己解決できる
昔はPRINTいっぱい埋め込んだものだ
今は楽ちん

341:デフォルトの名無しさん (ワッチョイ 05dc-uznD)
23/10/02 18:58:04.16 3brSOCVN0.net
>>328
リンク先の内容で理解できない部分や自分の想定と違う部分があったら具体的に示して質問して

342:デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
23/10/02 20:13:50.59 TDDpdEaf0.net
>324
列挙型でも数字はありますもんね。
ようやく少し理解

343:デフォルトの名無しさん (ラクッペペ MMcb-0bz8)
23/10/02 20:34:20.45 LSI+DZgZM.net
列挙型は数字があるというより数値を別名で抽象化したもの
実際の正体は単なる整数値
ただし直接的に数値として扱うとエラーになる

344:デフォルトの名無しさん (ワッチョイ 05dc-uznD)
23/10/02 20:54:18.72 3brSOCVN0.net
>>338
いや、理解できてない
数字がある(=型に数値と互換性があるという意味と推察)かどうかは配列で扱ううえで全く関係ないよ

君が「数字がないもの」と思っているものの配列は理解できる?
例えば文字列配列を配列の長さ3で宣言できる?

345:デフォルトの名無しさん (ワッチョイ 05dc-uznD)
23/10/02 21:17:33.82 3brSOCVN0.net
>>338
なんで数字にこだわるのかわからなかったけど
> tileList = new TileType[ columns, rows ];
>の部分でtiletype型には定数の文字列が入ると思っていましたが、整数値であるcolumnsとrowsを代入しているあたりが分からないです

ひょっとしてcolumnsとrowsで二次元配列のサイズを指定してるのを
配列tileListにcolumnsとrowsの値を入れていると誤解してる?

346:デフォルトの名無しさん (ワンミングク MMa3-AwC8)
23/10/02 21:19:04.73 lujPkxOVM.net
荒らしの相手をするのは荒らし

347:デフォルトの名無しさん (ワントンキン MM6b-Smnw)
23/10/03 03:19:43.89 BRGjmQhNM.net
二週間も同じことをグダグダ質問してる馬鹿は荒らしか?そうでなければ才能ないから諦めて消えろ

348:デフォルトの名無しさん (ワッチョイ 23e5-VEJP)
23/10/03 08:07:13.74 Uvzxz0ni0.net
>>341
そうじゃなくて、配列宣言は定数値じゃないといけないと思ってるんでしょ
だから皆から他人のコードを読む以前、基礎がわかってない、先に本なり見て学べって散々言われてるんよ

349:デフォルトの名無しさん (ワッチョイ 1b86-cP1N)
23/10/03 09:08:59.95 64Y6xUk10.net
>>341
あーなるほどね
コレクション式も追加されてそういう誤解は増えそうだな

350:デフォルトの名無しさん (ワッチョイ e3db-uznD)
23/10/03 10:16:03.76 Ovgwwfj90.net
>>344
それだと「整数値であるcolumnsとrowsを代入している」とは言わないだろう
tileList = new TileType[]{columns, rows};
みたいに初期値を入れてると誤認してるからこそだろう
そして「tiletype型には定数の文字列が入ると思っていました」というのは
tileList = new TileType[]{TileType.PLAYER, TileType.BLOCK};
のような書き方を指していると推察できる

351:デフォルトの名無しさん (ワッチョイ 23e5-VEJP)
23/10/03 11:03:15.13 Uvzxz0ni0.net
>>346
「定数の文字列が入ると思っていましたが、整数値であるcolumnsとrowsを代入している」ね
要するに配列宣言には定数を使用すると思ってたのに整数型変数使ってるのなんで?ってことよ

352:デフォルトの名無しさん (ワッチョイ 2d33-IFFb)
23/10/03 11:27:59.78 So2x5x/40.net
配列の宣言には定数を使わないといけないという勘違いをするのはそういう制約のある他言語に慣れ親しんだ人だけだから

353:デフォルトの名無しさん (ワッチョイ e3db-uznD)
23/10/03 11:29:47.91 Ovgwwfj90.net
>>347
「tiletype型には定数の文字列が入ると思っていましたが、整数値であるcolumnsとrowsを代入している」ね
columnsとrowsが配列のサイズを指定していることを理解していればそうは言わんでしょ
TileType型の配列の初期値に整数値が入るのなんで?ってことよ

354:デフォルトの名無しさん (ワッチョイ e3db-uznD)
23/10/03 11:40:39.38 Ovgwwfj90.net
>配列宣言は分かっているんですが、型が違いますよね
とか
>列挙型でも数字はありますもんね
って発言からもTileType型の配列には数値は入らないと思ってたけど入るんだと自分を納得させてるフシがある

355:デフォルトの名無しさん (ワッチョイ 23e5-VEJP)
23/10/03 12:51:54.86 Uvzxz0ni0.net
配列の宣言わかってるならあれを初期値だと思うか?
まぁ結局どういう考えかは本人にしかわからんけど

356:デフォルトの名無しさん (オッペケ Sr21-uznD)
23/10/03 13:13:20.28 E2u3qt3Tr.net
配列宣言は定数値じゃないといけないと思ってる、よりは言動の辻褄が合うのではないかという話
本人に聞かないと真実がわからんのはその通り

357:デフォルトの名無しさん (ワッチョイ 23c6-wNmW)
23/10/03 17:03:23.96 L0v6ZlZp0.net
単に定数値という言葉の意味をわかってないだけでしょたぶんTyleType型の各値のことを言ってる
なんなら宣言という言葉の意味もわかってないし代入すらわかってない可能性もある

358:デフォルトの名無しさん (ワッチョイ 1b22-uQQ6)
23/10/03 17:33:35.58 1Tt4UNmg0.net
スレタイさ、見て発言してる?

359:デフォルトの名無しさん (ラクッペペ MMcb-0bz8)
23/10/03 17:52:34.34 CTojctYiM.net
再掲

配列の要素のデータ型が列挙型(の変数)というだけであって配列そのものが特殊なものという訳ではない

この倉庫番のコードではマップのデータをcsv形式のテキストで設定してtileListという名の配列に格納している
格納する際に配列の要素はcsv内の整数データからTileTypeで定義された列挙型の変数に変換される

URLリンク(i.imgur.com)

360:デフォルトの名無しさん (スッップ Sd43-bAzQ)
23/10/03 18:15:58.67 F8D+VEMNd.net
>>354
初心者の建前でキチが暴れるスレよね

361:デフォルトの名無しさん (ワッチョイ ae8d-OOOs)
23/10/07 18:26:09.89 kQU1DN1N0.net
interfaceのクラス変数としてintとかの変数持たせるのはstatic intにしても同じことって理解
でいいですか?

362:デフォルトの名無しさん (オイコラミネオ MMad-GYY9)
23/10/07 18:34:14.76 Dbx341NqM.net
クラス変数とはなんだ?C#にそんなものはない

363:デフォルトの名無しさん (ワッチョイ ae8d-OOOs)
23/10/07 19:00:10.87 kQU1DN1N0.net
クラス変数は誤植ですねごめんなさい。interfaceの中に変数宣言できたことです。

364:デフォルトの名無しさん (ワッチョイ 85cf-pUf+)
23/10/07 19:22:08.91 M9UZ8U5c0.net
くだらない揚げ足取りは気にする必要なし

365:デフォルトの名無しさん (オイコラミネオ MMad-GYY9)
23/10/07 19:32:40.93 Dbx341NqM.net
揚げ足取りじゃない
質問も訂正もおかしなことを書いてる

366:デフォルトの名無しさん (ワッチョイ ae09-Ju92)
23/10/07 19:38:58.26 isyrDxYL0.net
C#でインターフェイスにフィールド(メンバ変数)を定義することはできないよ
なのでどういうのを想定しているのか回答者は全然分からない
用語を間違ってる可能性もあるからまずこういうコードというのを示してみたら

367:デフォルトの名無しさん (ワッチョイ 85cf-pUf+)
23/10/07 19:45:19.06 M9UZ8U5c0.net
>>361
発言がおかしいと感じたならそこを問いただせばいい
>>358は揚げ足取りでしかない
それともまさか本気で言ってる?

368:デフォルトの名無しさん (オイコラミネオ MMad-GYY9)
23/10/07 19:56:23.04 Dbx341NqM.net
ないものについて質問されてもないんだから答えようがない
それがまともな回答

369:デフォルトの名無しさん (ワッチョイ 85cf-pUf+)
23/10/07 20:01:14.99 M9UZ8U5c0.net
他の言語に触れてなくてクラス変数という用語自体を知らないのだろうか

370:デフォルトの名無しさん (オイコラミネオ MMad-GYY9)
23/10/07 20:02:30.94 Dbx341NqM.net
c#のinterface内でミューテクシオン宣言が使えないのはなぜですか?

回答
c#にミューテクシオン宣言と言うものはございません


これは揚げ足取りか?


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

39日前に更新/249 KB
担当:undef