ふらっと C#,C♯,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:入力も辛いので途中で実行して進展を見る 入力したコードの理解が深まる そうして小さな成功体験を積み重ねる そのうち前に入力したのと同じような内容が出てくる 今度は実行しなくても結果がわかる 実行してみて違うなら違いを探す こうして一歩ずつ進む コードを読んだりコメントを読むだけだとこういうのが失われて分かった気にだけなる 実際にコードを書けないし着想もできない
295:デフォルトの名無しさん (アウアウウー Sa89-5C2y)
23/09/30 11:04:04.96 +WV6fTrGa.net
>>285 は手が動いても頭が動かないタイプと観た
296:デフォルトの名無しさん (ワッチョイ 9bbc-VEJP)
23/09/30 13:07:46.30 Xbo2Ry+C0.net
それ、逆じゃないのかな。
手を動かす前にうだうだ考えるウチに投げ出すタイプというか。
なにも考えずにとりあえずコードを打ち込んでみて、動かしてみればいいじゃない。
そしてその動くプログラムのコードを書いているときや後から眺めたときに「こうした方がいいんじゃない?」って思ったところを何度でも直して、また動かしてみる、と。
実際、自分がやるのもそれに近いところがなくもないし。
分からないところをネットで調べてコピペして動かして、足りないところや考慮すべきところを直し加えてってのを何回かやったりやらなかったり。
297:デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
23/09/30 14:30:45.31 lCW6xIVF0.net
>>288
unityで動かしております
>>290
やはり手を動かします
>>284
では質問させてもらいます
gptに聞いたのですが、良くわかりませんでした
URLリンク(gist.github.com)
TileTypeという列挙型があり、tiletype型を使用してtilelist変数を宣言しているのが分からないです。
普通、インデックスにアクセスする場合は整数型を使うと思うんですが。
やはり、基礎が出来てないなと
298:デフォルトの名無しさん (ラクッペペ MMcb-/u/1)
23/09/30 14:47:09.79 jRqEkae9M.net
例えばデバッガーでマップの配列の中を確認する場合、無味乾燥な整数で状態表示されるより列挙変数で表示された方が分かりやすいだろ
プレイヤー視点ではなく開発者視点で分かりやすくしているだけ
299:デフォルトの名無しさん (スップ Sd43-sBWh)
23/09/30 15:02:25.67 RNKSTVVAd.net
>>293
>普通、インデックスにアクセスする場合は整数型を使うと思うんですが。
インデックスってのはtileList[x, y]のxとyのこと
この場合もxとyは整数型でしょ
インデックス「に」って表現してるけど何かと勘違いしてる?
300:デフォルトの名無しさん (スップ Sd43-sBWh)
23/09/30 15:10:09.10 RNKSTVVAd.net
で、tileListは配列要素の型がTileType列挙型なわけだけど、その理由は>>294も書いてるように可読性や保守性のため
301:デフォルトの名無しさん (オイコラミネオ MMd1-VEJP)
23/09/30 15:27:57.46 tFuDf2bYM.net
抽象的な話じゃない説明
例えば数値で壁を1で荷物を3とかにすると…
コード内で1とか3の数字が出てくるがそれが何なのか覚えてないとわからない
データの種類が100種類とかあると管理だけで大変
それを改善する場合に数字じゃなくて文字で '壁' とか'荷'とか'人'とかにもできる
でもこの場合も問題がある
気まぐれで壁や荷物を赤い壁と青い壁、赤い荷物と青い荷物などにしたくなった場合にどうするか?
別に色情報持つとか考えなくてはならない
それだったらTypeでRedWallとかにしたほうがいい
更に後でRedWallをやめたくなった場合にはenumからRedWallを削る
そうするとIDEにエラー表示が出て修正箇所がわかる
これが数字だと修正を自力で探して頑張るしかない
302:デフォルトの名無しさん (ワッチョイ 9b0c-RAiU)
23/09/30 16:04:48.60 fUSk+kCE0.net
>>293
ウザイことこの上ない
まずは入門書を買って読め
303:デフォルトの名無しさん (ワッチョイ 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次元配列を示す型
304:デフォルトの名無しさん (ワッチョイ 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" }
次へ続く
305: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]
306:300 (ワッチョイ 2d1e-UA51)
23/09/30 16:56:49.16 rxNaOE9c0.net
仕様から、コードは書けるが、
コードから仕様を推測するのは、10倍以上難しい
他人のコードを読むと、膨大な時間の無駄で、
自作していないから身につかない
3目並べとか、じゃんけんとか、素数判定とか、
簡単な所から自作すべき!
解説が無いような、他人のコードを絶対に読んではならない!
膨大な時間の無駄
307:デフォルトの名無しさん (ワンミングク MMa3-E1cW)
23/09/30 18:10:18.46 Ag7bGIUIM.net
しつこい馬鹿のせいでrubyキチガイまで出てきた
308:デフォルトの名無しさん (ワッチョイ 8501-6YkV)
23/09/30 18:43:08.79 UMbhW8aD0.net
昔々BASICインタプリタと横スクロールゲーを全てレポート用紙に逆アセンブルして分析したのはメチャ役に立った
初心者が(簡単な)ゲームの分析、理解することは役立つこと多いと思うよ
309:デフォルトの名無しさん (ワンミングク MMa3-AwC8)
23/09/30 20:59:11.77 U9V2qVkaM.net
人に聞きまくるだけの奴には無理だぞ
方法論以前の問題
310:デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
23/10/01 10:33:20.05 5ao4WmOt0.net
>>294
回答どうも
理解が悪いです
列挙型って数字でもあるんですか?
それぞれの文字列にインデックスがあると。
311:デフォルトの名無しさん (ワッチョイ 2d50-uznD)
23/10/01 10:43:13.42 Zy/Xpldc0.net
列挙型、配列、インデックス
根本的にこのへんが正しく理解できてないな
>>299の言ってること理解できる?
分からないならどこが分からないな質問する
312:デフォルトの名無しさん (ワッチョイ d553-lFbY)
23/10/01 12:21:46.44 o8cy9tiS0.net
URLリンク(wikiwiki.jp)
313:デフォルトの名無しさん (ラクッペペ MMcb-/u/1)
23/10/01 12:27:48.25 jo3dkEigM.net
>>306
配列の要素のデータ型が列挙型(の変数)というだけであって配列そのものが特殊なものという訳ではない
URLリンク(i.imgur.com)
314:デフォルトの名無しさん (ラクッペペ MMcb-/u/1)
23/10/01 12:27:59.76 jo3dkEigM.net
>>306
配列の要素のデータ型が列挙型(の変数)というだけであって配列そのものが特殊なものという訳ではない
URLリンク(i.imgur.com)
315:デフォルトの名無しさん (ワッチョイ 25da-/u/1)
23/10/01 12:28:36.05 9rYgJ/eZ0.net
>>306
配列の要素のデータ型が列挙型(の変数)というだけであって配列そのものが特殊なものという訳ではない
URLリンク(i.imgur.com)
316:デフォルトの名無しさん (ワッチョイ 25da-/u/1)
23/10/01 12:28:44.44 9rYgJ/eZ0.net
>>306
配列の要素のデータ型が列挙型(の変数)というだけであって配列そのものが特殊なものという訳ではない
URLリンク(i.imgur.com)
317:デフォルトの名無しさん (ラクッペペ MMcb-/u/1)
23/10/01 12:31:41.14 OrY06J6zM.net
ネットの調子が悪い
連投スマソ
318:デフォルトの名無しさん (ワッチョイ 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を代入しているあたりが分からないです。
何らかの文字列の定数が入ると考えていますた
319:デフォルトの名無しさん (ワッチョイ 2d33-uznD)
23/10/01 13:26:19.97 jNjNNZOq0.net
>>314
君はそもそも配列宣言の記法、意味が分かってない
まず↓あたりをじっくり読んで、サンプルコードも実際に動かして理解して欲しい
URLリンク(ufcpp.net)
そしてハッキリ言うけど今の段階で倉庫番のコードを理解しようとしても基礎が出来てないから無理
320:デフォルトの名無しさん (ワッチョイ 9b9b-RAiU)
23/10/02 02:06:24.20 NgblnbYV0.net
他人の助言には絶対に耳を傾けないタイプ
321:デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
23/10/02 06:20:59.94 TDDpdEaf0.net
>>315
必要なところだけやっていくやり方でやってますが、そういうやり方じゃ駄目なんですか?
配列宣言は分かっているんですが、型が違いますよね
>>316
聞きますが、全てではないです
322:デフォルトの名無しさん (ワントンキン MMa3-E1cW)
23/10/02 07:26:58.07 lRooFwx4M.net
ダメだこいつ
323:デフォルトの名無しさん (ワッチョイ 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#の記法がわかってない未熟なだけなので、何もかも貪欲に覚えて。
今やってることは無駄になることは何もない。間違えてても。頭と手をドンドン動かして吸収していくのだ
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#にミューテクシオン宣言と言うものはございません
これは揚げ足取りか?
371:デフォルトの名無しさん (ワッチョイ 85cf-pUf+)
23/10/07 20:05:04.36 M9UZ8U5c0.net
>>366
クラス変数という用語をご存知ですか?
イエスかノーでお答えください
372:デフォルトの名無しさん (オイコラミネオ MMad-GYY9)
23/10/07 20:06:57.65 Dbx341NqM.net
>>367
知らない
373:デフォルトの名無しさん (オイコラミネオ MMad-GYY9)
23/10/07 20:11:20.39 Dbx341NqM.net
誤植ですねについてああだこうだ言うのが揚げ足取り
イエスかノーかで答えてくださいに知らないと答えたのについてああだこうだ言うのが揚げ足取り
全然どうでもいいことにいちいち突っかかってくるID:M9UZ8U5c0が悪い
374:デフォルトの名無しさん
23/10/07 20:13:55.52 M9UZ8U5c0.net
>>368
これは失礼
他の言語の知識がなくてクラス変数自体を知らなかったのなら>>358の発言も仕方ない
ちなみにC#で言う静的メンバ変数に相当するものなので頭の隅に置いておこう
375:デフォルトの名無しさん
23/10/07 20:40:11.49 YtgTJ7v50.net
昔はできなかったがinterfaceにstatic memberを定義できるようになったんだよ
376:デフォルトの名無しさん
23/10/07 21:33:04.56 kQU1DN1N0.net
特に継承するわけでもないinterfaceの
377:変数を使っていたので staticでよくね?って思ったまでです。
378:デフォルトの名無しさん
23/10/07 21:41:19.16 kQU1DN1N0.net
>>362
メソッド以外定義できないんですか?普通にint xxx{get}みたいに変数定義してましたけど?
379:デフォルトの名無しさん
23/10/07 21:58:12.16 WiFpk8200.net
節子、それ変数やない、プロパティや
380:デフォルトの名無しさん
23/10/07 22:46:08.14 OKMBnv3y0.net
interfaceは実態まで定義できるようになって
これじゃ多重継承と何が違うんだろうね
381:デフォルトの名無しさん
23/10/07 23:10:34.30 Z0CAZWyi0.net
今や関数指向全盛じゃん
オブジェクト指向が諸悪の根源じゃねーーの
能力足りてないエンジニアばっかなんだから
382:デフォルトの名無しさん (ワッチョイ 0d01-Fpxc)
23/10/08 01:41:02.74 G8JXzzlJ0.net
関数指向全盛って初めて聞いた
データとかあるんですか
383:デフォルトの名無しさん (ワッチョイ bdad-bMpK)
23/10/08 02:27:58.84 4tUP3LVs0.net
>>376
まず構造化から学び直せ
384:デフォルトの名無しさん (ワッチョイ 7610-GYY9)
23/10/08 07:23:28.50 dIUTdDjP0.net
>>376が関数嗜好なだけでは
385:デフォルトの名無しさん
23/10/08 19:57:18.08 7GYxqXei0.net
(1)オブジェクト指向プログラミング A. クラスの定義 B. オブジェクトの生成 C. カプセル化 D. 継承 E. ポリモーフィズム
(2)関数型プログラミング A. 高階関数 B. クロージャ C. ラムダ関数 D. ジェネレータ E. デコレータ
386:デフォルトの名無しさん
23/10/08 22:38:19.92 ICyLMX1g0.net
>>380
デコレータはどちらかというとOOP用語
関数型では単なる関数合成の一種なのでわざわざデコレータとは呼ばない
387:デフォルトの名無しさん
23/10/08 23:26:13.26 5JmMmKk30.net
で、それでYOLOXは動くんかい
388:デフォルトの名無しさん
23/10/09 00:47:00.57 N+sXw7NG0.net
Taskについて質問です。
階層構造データを再帰的に探索する処理を階層ごとにTask.Factory.StartNewで並列化させて作ってるのですが、
WinFormsのControl.Invokeのように、子タスク内から親タスクのコンテキスト上で実行させたい処理があります。
今は親タスクで作成したリストを追加するActionを子タスクに渡して、後で親タスクでリストから取り出して処理を行っていますが、
可能であればControl.Invokeのように、子タスクのコンテキストのタイミングで親タスクのコンテキストに明示的に移って実行したいと考えています。
これを実現する方法があれば教えてください。Invokeの仕組みを解説してるサイトもあったのですが、意図する方法は見つかりませんでした。
void parent_proc(Tree tree) {
var locker = new ReaderWriterLockSlim(); var datalist = new List<string>(); var tasklist = new List<Task>();
Action<string> adddata = (string d) => { //排他制御でデータをリストに追加
locker.EnterWriteLock(); datalist.Add(d); locker.ExitWriteLock(); };
foreach (var node in tree) {
if (node.child != null) {
var task = Task.Factory.StartNew(() => { child_proc(node.child, adddata); }, TaskCreationOptions.AttachedToParent);
tasklist.Add(task);
} else {
datalist.Add(node.data);
}
}
Task.WaitAll(tasklist.ToArray());
foreach (var data in datalist) { //今は親タスクのコンテキスト上で処理している
}
}
void child_proc(Tree tree, Action<string> adddata) {
foreach (var node in tree) {
if (node.child != null) {
Task.Factory.StartNew(() => { child_proc(node.child, datalist); }, TaskCreationOptions.AttachedToParent);
} else {
adddata(node.data); // このリスト追加処理を無くして、ここで親コンテキストに移って実行したい
}}}
389:デフォルトの名無しさん
23/10/09
390:10:33:03.03 ID:iALOF4I2M.net
391:デフォルトの名無しさん
23/10/09 11:18:08.46 N+sXw7NG0.net
>>384
ありがとうございます。
よくよく考えるとControl.Invokeにはメッセージループがあるので、
ワーカスレッドから渡されたdelegateを同期的に実行するタイミングがある事に気付きました。
今回の場合Task.WaitAllにタイムアウトを入れて、子タスクのデータを泥臭くポーリングすることで意図する事ができました。
while (!Task.WaitAll(tasks, 50)) { check(); } // check内で子タスクデータを処理
check(); // 全子タスクが完了した後残りデータがあれば処理
ウィンドウが無いケースでもExecutionContextで強引に実現できそうな記事も見つかりましたが、
やろうとしてる事に対して複雑になりすぎるので今回はこれでいこうと思います。
392:デフォルトの名無しさん (ワッチョイ 6ecb-iLfk)
23/10/10 06:13:55.38 Cej5/emK0.net
キャストとパースは同じものでしょうか?
キャストは型変換で、その手法の1つがパースというイメージです。
393:デフォルトの名無しさん (ワッチョイ 5ae5-GYY9)
23/10/10 08:39:26.85 +0pTTr910.net
違います
394:デフォルトの名無しさん (ワッチョイ 6ecb-iLfk)
23/10/10 10:21:35.45 Cej5/emK0.net
キャストとParseメソッドの違いは、主に次の点です:
キャストは同じ型の変換に使用されます。つまり、基本的なデータ型間での変換(例: int から double への変換)に適しています。一方、Parseメソッドは、異なる型のデータを文字列から変換するために使用されます。
キャストは基本的に明示的な型変換です。つまり、変換先の型を明示的に指定する必要があります。例えば、(int)doubleValue というように変換先の型をカッコ内で指定します。一方、Parseメソッドは、変換元の文字列が適切な形式であることを確認し、それを適切な型に変換します。具体的な型指定は不要です。
理解
ありがと(*´ω`*)
395:デフォルトの名無しさん (ラクッペペ MM0e-1G1b)
23/10/10 10:34:12.03 l0kLdmnhM.net
キャストは同じ型の変換に使用されます。
いきなり意味不明でワロタ
396:デフォルトの名無しさん (ワッチョイ 6ecb-iLfk)
23/10/10 18:19:35.44 Cej5/emK0.net
テキストファイルから読み込んだ数字というのは文字列なんですね
だからparseが必要ってことか
397:デフォルトの名無しさん (アウアウウー Sa39-OOOs)
23/10/12 11:00:16.99 u59ybXeVa.net
float32/64からint32/64にキャストするときって
小数点以下は勝手に切り捨てられるってことで良いのかな
オーバーフローしてたらどうするのかな
色々面倒だよね
「同じ型の変換」って言われると
int32<->int64
の間のキャスト観たいなのを想像する
これも問題無い訳じゃないけど
parseは文字列からの変換を普通に思い浮かべるが
jsonのparseとかみたいに構造まるごと変換のときも使うしな
398:デフォルトの名無しさん
23/10/12 11:30:51.26 /aj2HENwM.net
マニュアル読め
全部書いてある
399:デフォルトの名無しさん
23/10/12 21:34:09.63 ZXm8+EHB0.net
その言葉が聞きたかった
400:デフォルトの名無しさん
23/10/13 01:32:05.01 /NTFMnAJ0.net
VisualC#を独習している者です。
教えてください。
GridViewコントロールに←→のような、カレント行を移動させるボタンって、ツールとして用意されていないのでしょうか?
コマンドボタンコントロールを並べて自作するしかないのでしょうか?
401:デフォルトの名無しさん
23/10/13 01:33:44.55 yXjHmc7Hd.net
引き続き
402:独習してください
403:デフォルトの名無しさん
23/10/13 01:34:36.65 h+M8WaIua.net
そういうリッチな機能は標準じゃない
欲しいなら自作もしくは適当なUIライブラリ
404:デフォルトの名無しさん
23/10/13 01:43:53.31 /NTFMnAJ0.net
>>396
ありがとうございました。
405:デフォルトの名無しさん
23/10/13 07:24:31.11 5yHLdduY0.net
プログラミングの基礎固めってどこまでやるもんでしょうか
成果物作ろうとしても基礎が出来ないと効率悪いですよね
406:デフォルトの名無しさん
23/10/13 08:39:13.59 61zwOKk/M.net
このへんまで
407:デフォルトの名無しさん
23/10/13 09:19:59.83 HwONiL7X0.net
基礎学習は適当に切り上げてなにか作らないと続かないよ
408:デフォルトの名無しさん (ワッチョイ 6ecb-iLfk)
23/10/13 13:08:28.58 5yHLdduY0.net
>>400
配列の使い方程度なら基礎ですよね?
ゲームなどの成果物はすぐにでも作りたいのですが、他人のコードを読めない問題に直面しまして、基礎からやり直しです。
409:デフォルトの名無しさん (ラクッペペ MM0e-zIjd)
23/10/13 13:40:14.28 ZKg5gD/yM.net
倉庫番の人か
410:デフォルトの名無しさん (ワッチョイ 8d2a-pUf+)
23/10/13 14:03:01.11 C21zpC1k0.net
こないだの配列宣言の話のときは途中でフェードアウトしてたな
そういう中途半端な姿勢ではこの先も危ういだろう
411:デフォルトの名無しさん (ワッチョイ 6ecb-iLfk)
23/10/13 14:09:32.71 5yHLdduY0.net
ただの誹謗中傷になってる場合は、出来るだけ見ないようにしてます
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
16日前に更新/249 KB
担当:undef