1 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 10:57:16 ] このスレッドは 「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 前スレ ふらっとC#,C♯,C#(初心者用) Part45 pc12.2ch.net/test/read.cgi/tech/1253522504/
252 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 17:22:12 ] 調子に乗って質問です ポーカゲームとか作るとき カードをクラス化するとすると 5つのインスタンス作るんですか? マジ5個のインスタンスに初期値つっこむのめんどいのですが・・・
253 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 17:57:01 ] TreeViewの状態を保存したいんだけどいい方法ないですか?
254 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 17:58:54 ] コンストラクタで初期化したら? てか、そんなんに義務など無いんだから 嫌なら手続き的に書けば? よっぽどめんどいと思うけど
255 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 18:02:38 ] >>251 msdn.microsoft.com/ja-jp/library/system.windows.forms.tabcontrol.alignment%28VS.80%29.aspx
256 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 18:02:39 ] >>253 CEREAL
257 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 18:11:11 ] >>252 5つのインスタンスが必要なら5つ初期化する必要があるのは当たり前。 普通は面倒なことなどない。それが面倒だということは、おかしな事をしてる 設計に関するヒントを挙げると、カードはクラス化する必要ない。 flags付きの列挙型でスート4種、ランク1〜13、ジョーカーを作成。(空状態もあるといいかも) あと、スート、ランクのマスクとか、エイリアス(Ace=One)とかを用意すればいいか。
258 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 18:35:40 ] MSDN変わったね。ライトウェイト表示が軽快でいい感じ
259 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 18:40:41 ] OS Windows2000 SP4 CPU AMD-450MHz メモリ 184MB ツインテールの作者ってマジでこんなスペックで開発してんの? かなりもっさりじゃね?
260 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 18:42:47 ] ツインテ作者女子高生説ってまじかよ!へこむわ
261 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 18:42:55 ] 3万あればモニタ+OS+P4の環境が揃えられるのに、どんだけ貧乏なの?
262 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 18:51:29 ] スート=カードのマーク・・・ 私のC#にはFlagsAttributeなどない! てゆうかすでに高度すぎてついていけない・・ でもありがとう
263 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 18:58:42 ] こんなんです MyCard Card1 = new MyCard(rnd.Next(1, 13), rnd.Next(1, 4)); MyCard Card2 = new MyCard(rnd.Next(1, 13), rnd.Next(1, 4)); MyCard Card3 = new MyCard(rnd.Next(1, 13), rnd.Next(1, 4)); 略 lblNo1.Text = Card1.myno.ToString(); lblNo2.Text = Card2.myno.ToString(); lblNo3.Text = Card3.myno.ToString(); 略 lblMark1.Text = Card1.mymark.ToString(); lblMark2.Text = Card2.mymark.ToString(); lblMark3.Text = Card3.mymark.ToString(); 略 ださいでしょ なんとかならんのか
264 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 19:05:11 ] カードはフリップとかさせたり縦置き横置きしたりすること考えると クラス化した方が汎用性あると思うけどなぁ。
265 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 19:07:36 ] そもそもトランプカードは52枚+ジョーカーで総枚数は固定というのが大きなポイントなのだから 普通はランダムで生成しちゃいかんもんだと思うが
266 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 19:10:23 ] 生成してからランダムに並べ替えて使うんだよ普通は
267 名前:263 mailto:sage [2009/10/20(火) 19:19:48 ] クラスもこんな感じに2行ぐらいで出来ないかなと 出来ないと5行書くんですよ for (int i = 1; i < 6; i++) { string labelName = "lblNo" + i.ToString(); this.Controls[labelName].Visible = false; } 想像だけど7並べのPGつくると大変なことになりそう
268 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 19:22:52 ] KeyDownの判定をForm上で行おうとしてるんだけど、Formにボタンとか貼り付けると判定がされなくなってしまう ボタンが無いときはちゃんと判定されるのに・・・どういうことなの?
269 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 19:40:04 ] >>264 表示の時はそれでいいが 内部もそれだと、アルゴリズム生成するときに処理がもたつく
270 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 20:02:55 ] CardPileとかのクラス作ればいいんじゃないの?
271 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 20:17:35 ] C#からケータイのデコメを送信できるライブラリってないでしょうか? キャリアの違いを吸収してくれるものがあるとありがたいです。 もちろん有料でもよいです。 無ければソケットで実装しようと思います。
272 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 20:49:27 ] >>268 KeyPreview
273 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 20:58:24 ] >>272 ありがとうございます!
274 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 21:12:10 ] 実行されることのないゴミメソッドを見つける方法はありますか?
275 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 21:18:50 ] FxCopでinternalまではチェック可 publicクラスのpublic/protectedメンバについてはアセンブリ外から呼ばれる可能性があるので一般には無理
276 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 21:26:41 ] >>263 もうなんか激しく WPF の ItemsControl でも使ってろって 感じがする。
277 名前:263 mailto:sage [2009/10/20(火) 21:29:07 ] だが断る
278 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 21:42:29 ] カードをコントロールとして扱うこと自体ダサい ゲームならコントロール使わず全部自分で描くでしょ
279 名前:263 mailto:sage [2009/10/20(火) 21:52:45 ] 初心者板ですし・・・ そんな腕はない!
280 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:10:25 ] なんかのサンプルでもカードにピクチャコントロール使ってた気がする ブラックジャックだっけかな
281 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:11:26 ] WPFなんかでカードゲームフレームワーク作ったら面白そうだな うまく設計したらかなり共通化できそう
282 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:12:28 ] >>277 使えば楽にできるよって意味で薦めたのに。 Card の見え方(Item)のテンプレート書いて ItemsSource に MyCard とやらのコレクションぶち込むだけなのに。
283 名前:263 mailto:sage [2009/10/20(火) 22:16:52 ] WPF覚える余裕がない済まぬ Randomって一瞬で処理されるから Randomでカード作ってもみな同じカードになるような・・・ さらに作りこみます
284 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:24:29 ] >>283 もうちょっと人のレスの内容をゆっくり読み込みなさいw >>265-266 とか
285 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:47:43 ] 今更なんだが、 ttp://msdn.microsoft.com/ja-jp/vcsharp/aa336742.aspx Windows スタート キット > カード ゲーム スタート キット
286 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:51:00 ] 2ちゃんねる用ブラウザ「twintail」Part25 pc12.2ch.net/test/read.cgi/software/1247052653/ ここ荒らしてるのおまえらだろw
287 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:54:51 ] そんなところ行かない
288 名前:263 mailto:sage [2009/10/20(火) 23:07:59 ] >>そもそもトランプカードは52枚+ジョーカーで総枚数は固定というのが大きなポイントなのだから >>普通はランダムで生成しちゃいかんもんだと思うが それは、取りあえずランダムで値をとってから数字とマーク(ハートとかのマーク)を 比較して同じじゃなきゃOK同じならもう一回やればいいと言う意味かと思っていたけど いまランダムで同じ値が出てる現象の事を予知してたのかなと >>生成してからランダムに並べ替えて使うんだよ普通は 意味がちょっと分かりませぬ 当方の理解力のなさによるものですが 生成してからランダムに・・・・?? どういうことでしょうか 教えてくださいませんか?すいません
289 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:08:36 ] 頭悪すぎワロタっw
290 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:08:37 ] >>263 君に一番向いているのは、カードをユーザーコントロールとして 実装することなんじゃないかと思う。 それならお望みどおり描画はラベル等のに丸投げできるし、 ユーザーコントロールに"MyCard"を引数にとって表示に反映するメソッドを書けば、 「ださい」問題も解消できるでしょ。
291 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:21:07 ] >>288 あのさ、ランダムにやったら同じカード出て当たり前だろ 面倒だけど、ちゃんとカードの定義を作ってだな それをランダムに配れよ てか、おまえはまず、オセロ作れ 2色なら文句ないだろ 多分それさえもできなさそうだけど
292 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:26:36 ] 重複のない乱数を作るには とかググれ
293 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:32:51 ] まず綺麗にならべる、これが初期状態 入れ替えるところを乱数で2箇所決め、そこのカードを入れ替える これを好きなだけ、十分混ざるまで繰り返す もしくは頭から順番に、乱数で決めたどこかと入れ替えるを全カード行う
294 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:32:54 ] >>285 おおー、これだ シンプルなゲームならWinFormsでポトペタ出来るんだな、ってちょっと感心した覚えがある
295 名前:253 mailto:sage [2009/10/20(火) 23:37:44 ] >>256 すいません、もうっちょっとだけ詳しく教えてください ぐぐってもよくわからなかった やりたいのはIEのお気に入りをタイトルとURLで保存したいのです それとノードの構造と同じような保存用データも必要と思うんだけど そっちはどのように作ればいいんでしょうか? IEPageNodeクラスにLISTを作ってそこにIEPageNodeのインスタンスを追加していくというのを 考えているんだけど、もっとよい方法ありますか?
296 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:52:46 ] 一言。カードをシャッフルするプログラムを作ってみ。 と 291 とか 293 は言えばいいのに。と思った。
297 名前:263 mailto:sage [2009/10/20(火) 23:54:44 ] らじゃ 皆さんありがとう
298 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:54:45 ] 簡単なのは重複のない乱数を与えてソートだな シャッフル式の方が教科書的だけど
299 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 00:17:31 ] 重複ありでも充分に値の幅が広けりゃ実用的だよね。 ソートでのシャッフル。
300 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 00:40:54 ] LINQ使えば簡単だな public static IEnumerable<TSource> Shuffle<TSource>(this IEnumerable<TSource> source) { var r = new Random(); return source.OrderBy(x => r.NextDouble()); }
301 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 00:45:27 ] >>300 Orderbyに与えるデリゲートは一要素につき一回しか実行されないのは保証されるの?
302 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 03:52:47 ] プログラミング チャレンジ スクエア www.microsoft.com/Japan/msdn/archive/student/challenge/default.aspx 自分が作りたいものに近いのを参考にしてやるといいかも いろんな解説サイト見てても、実際どう使うかがわからないから 頭に入ってこない。やっぱり作りながら覚えるのがいいね
303 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 08:13:28 ] IComparableを実装して文字列でSort()すると 同じ文字列なのに順番が入れ替わるのは何で?そう言う物なの?
304 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 08:27:15 ] >>303 コンテナに複数の同じ文字列を入れているのか、違う文字列をそれぞれ入れてsort後に順番が変わってるのか、 話が全然変わってくるじゃないか。 お前、このスレの住民がお前の実装を分かってるエスパーだとでも思っているのか?
305 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 08:28:25 ] ArrayやListのソートはクイックソートだからアルゴリズム上の仕様です 安定なソートを自作するか, LINQのOrderByを使いましょう
306 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 08:31:19 ] 安定じゃないソートアルゴリズムで同じキーの順番かわるのが嫌な場合は サブキーでシリアルナンバーとかを使うとかがよくある回避方法だな。
307 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 08:31:20 ] >>301 逆に聞きたい。 こんな大雑把な指定しかしてないのに、なんでそんな細かいことが保証されると考えるんだ? 実際に試してみたほうが早いんじゃね。
308 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 08:33:02 ] >>305 >>306 ありがとーやっぱそうか
309 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 08:33:50 ] >>307 試すより仕様書あたる方をすすめろよ脳筋
310 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 11:34:02 ] >>283 それはランダムの使い方自体を間違ってる。
311 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 11:34:51 ] しかし2.0では安定ソートが使えないのは悲しい。
312 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 12:02:04 ] Randomを毎回newするのはどうかしてるな
313 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 13:08:22 ] なんで、.suoにPCユーザー名の情報書き込んでるの? 気軽にソース配布できないんだが
314 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 13:18:02 ] suo配る必要はないとは言わないがまあそんなには困らんだろ
315 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 13:18:46 ] 配布用のユーザー作れば解決
316 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 13:18:58 ] >>312 この間違いってなぜかやたら見かける
317 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 13:55:28 ] C言語のころだけど、rand()を毎回100回ループで回してから使ってる奴見たことあるぞ。 その方がよりばらけた数値が出るような気がするからとかいってたw サイコロ振るわけじゃないんだから・・・
318 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 14:19:18 ] カードゲームの解説サイトあった C#で始めるプログラミング---目次 - 1週間で学ぶIT基礎の基礎:ITpro itpro.nikkeibp.co.jp/article/COLUMN/20060127/228041/?ST=develop
319 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 15:24:10 ] C#2005EEってもうDLできないの? 2008があるからiso削除してしまった
320 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 15:35:24 ] どっかにあるけどゲ製の人ならXNAのバージョンをだなw
321 名前:319 mailto:sage [2009/10/21(水) 15:39:37 ] >>320 あれwバレた?w ありがとう解決しました
322 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 17:42:57 ] >>301 ttp://msdn.microsoft.com/en-us/library/bb394939.aspx#standardqueryops_topic8 こんな資料しか見つからなかった。開発時点での資料なのは確かだが、現在の位置付けは分からん ただ、実装自体はこの資料の通りになっているようだ
323 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 18:37:41 ] ポインタ使わなければ出来ないプログラムって何かあります?
324 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 18:39:20 ] 別に無いな
325 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 18:43:32 ] パフォーマンスを気にしなければ、特にない
326 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 18:52:29 ] ポインタって何?
327 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 19:03:46 ] マウスポインタ
328 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 19:23:19 ] ファミコン全盛時代はドラクエ1みたいなもの作れただけで 感動したけど、今のゲームって個人で作れるレベルじゃないしな 今の人ってプログラミングしてて感動したりするのかな?
329 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 19:43:35 ] そりゃすると思うけど。
330 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 20:00:40 ] オレは今日、半日でテトリスが作れて感動した!
331 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 20:08:55 ] 別にアプリケーションはゲームだけじゃないしな
332 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 20:27:00 ] ゲームじゃないソフトってほとんどvectorであるしな 今更斬新なものってなかなかないような せいぜい、最新OS対応させるぐらいだろうけど あの頃はプログラミング楽しかったなー >>330 後学のためにソース公開してよ。無理なら実行ファイルだけでもいいから
333 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 20:27:20 ] namespace TestP { public partial class Form1 : Form { static public Bitmap[] Picmap = new Bitmap[128]; ←ここ public Form1() { InitializeComponent(); } なんたらかんたら } } この場合どこで Dispose(); するの?
334 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 20:32:39 ] いらなくなったとき 判断できないなら放置するしかないが
335 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 20:53:36 ] これってusingつかえんかったかな?
336 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 20:56:17 ] >>d 放置することにします。
337 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 20:56:33 ] つかえねえよw
338 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 20:57:36 ] レス番わすれた>>334
339 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 20:58:41 ] ショボンとなった
340 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 21:02:23 ] 最近初めてプログラムの本を買って読んでるんだけど、C#エッセンシャルズ2版がなんかしっくりくる。 本の分厚さも2センチいないで持ちやすい! でも、.Net 2.0とか古そうだしできれば3.5のを読みたい。 何か2センチ以内で.Net3.0~を対象としていて大体のことを網羅している本ってない?
341 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 21:07:21 ] .NET 3.0/3.5は2.0への機能追加なので、2.0の知識がそのまま使える。 というわけで、古いとか心配しなくても大丈夫。まずはその本で基礎を固めるのがいいと思うよ。
342 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 21:13:45 ] プログラム経験は4年! C,C++,C#,VB,Javaは大方勘でかける! だがいまだにオブジェクト指向のこと聞かれても答えられない! 意味もわからない! うふう、うふふふふふふっ
343 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 21:29:48 ] >>333 次にいつ使うか分からないけど、生成コストが高いので残しときたい。でも、メモリ使用量が多いので開放したい。 こんな時の妥協案に、"弱い参照(System.WeakReference)で保持してGCの対象にする"なんて方法もある。 多用する類の物ではないけど、使いどころによっては効果的。
344 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 21:35:05 ] >static public Bitmap[] Picmap = new Bitmap[128]; ←ここ 生成したのは配列だけで、Bitmapは生成されてないとか言う落ちだったりして
345 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 21:38:39 ] ありそうなのが怖い
346 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 21:39:22 ] WeakReferenceは結構すぐ解放されちゃうからそういう意図のキャッシュには使いづらいよ static Dictionary<WeakReference, Bitmap>みたいにキャッシュのキーとして使ったりすることが多い
347 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 21:41:07 ] あれ?IDisposableだからってGCに任せちゃ駄目なんじゃなかった?
348 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 21:45:16 ] リークという意味では別にGC任せでも構わん 早くリソースを回収したいからDisposeを使うだけ
349 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 21:51:18 ] ファイナライザくらい実装してるだろ。
350 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 21:52:22 ] using(static public Bitmap[] Picmap = new Bitmap[128]) { }
351 名前:335 mailto:sage [2009/10/21(水) 21:58:55 ] >>350 は俺じゃないよ、しらねーよ
352 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 23:12:01 ] //myclassクラス宣言 public myclass[] mc = new myclass[10]; これってクラスの配列みたいなんですけどC#でこれが普通なんですか 入門書には出てない書き方なんで・・・・