[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 02/02 10:04 / Filesize : 194 KB / Number-of Response : 920
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

おまいら最強のリバーシプログラムしてみろよ part2



1 名前:デフォルトの名無しさん [2007/01/22(月) 06:13:18 ]
まずBearRevのDLLを作る
そして世界最強っぽいリバーシプログラムWZebraを倒すスレ
期間は三ヶ月以内で頼む
どんどんアイデアとプログラムを頼む

本格的リバーシ BearRev
www.vector.co.jp/games/soft/dl/win95/game/se098822.html

最強っぽいリバーシプログラムWZebra
www.radagast.se/othello/download.html

姉妹スレ おまいら最強の将棋プログラムしてみろよ part5
pc8.2ch.net/test/read.cgi/tech/1109307327/l50

39 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 21:42:43 ]
>>38
蓄積された情報なんて今さら漁ってどうすんの
本当の最強を目指すなら既成概念なんて百害あって一利無しだろう
必要なのは天災のひらめきだけで十分だ

40 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 21:43:47 ]
>天災のひらめき
>1 の事ですか?

41 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 21:49:01 ]

あなたはどんなところに「強さ」を感じますか?

私はじっくり長考した上で最善の手を打たれるよりも
さくっと秒殺で決定打を放ってくれる方が強さを感じます


42 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 21:51:25 ]
>>39
今更あさるも何も膨大な記録を活かすって流れもないから何ともいえないんじゃね?


真の最強が完成したら、完全先読み初手投了になるだろうがそこに達するのが目標だろ?
本当に”最強”を目指すなら 定石探索、最善手探索、完全先読み、終盤解析のうち
一つ目と四つ目は意味がなくなるから、確かに圧倒的なひらめきも必要だと俺も思うが。

FTP archive at NEC
いくつかの文献とともに、IOS でプレイされたすべての棋譜(約500,000)と
コンピュータプログラムのLogistelloとKittyの対戦の棋譜(約100,000)を含む
棋譜データベースがある。
これらの棋譜データベースは強い評価関数を作るのに役立つ。



43 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 21:52:52 ]

>完全先読み初手投了になるだろうが

引き分けになることが証明されているそうですが


44 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 21:54:13 ]
>>43
まじで?ソースある?

45 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 21:55:06 ]
>>43
証明されてませんよ。
引き分けの可能性が高いだけです。

46 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 22:11:27 ]
人が思いつくような事はたいてい既に誰かに思いつかれてる。
問題を解決しようとすれば"蓄積された情報"を思いついてしまうから
"蓄積された情報"を避けるためにそれを知る事は重要。
天才ってのは知らずに運よくそれを避けられる人の事じゃないんだろ?

47 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 22:22:48 ]
www.amy.hi-ho.ne.jp/okuhara/howtoj.htm
から飛べるような文献を適当に当たりながら流し読みしてみたが
オセロはやはり蓄積された情報を解析して手を打つのが全て。

強いプログラムを組むのには”発想”の余地があるかもしれないが、”強い”と”最強”は異なる。
複雑化した○×ゲームと考えると残るのは解析するための”効率”であり
前スレ1の時短縮はもっとも大事な因子である、やはり天才。



48 名前:デフォルトの名無しさん [2007/01/22(月) 22:25:47 ]
ようするに今>>1には最強のプログラムを作れないということはわかった。

だれか今から>>1より強いオセロ作ってくれ

49 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 22:27:27 ]
>>46
だから馬鹿って言われるんだね

50 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 22:32:54 ]
>>48
前スレ1が居なくなれば俺作るよ

51 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 22:36:50 ]
>>47
   ∩___∩   ?     
   | ノ\     ヽ        |
  /  ●゛  ● | ?      |
  | ∪  ( _●_) ミ        .J
 彡、   |∪|   |   
/     ∩ノ ⊃  ヽ  
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /



52 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 22:37:54 ]
>>25
全部グローバル変数にしたら遅くなるよ。
ローカル変数は、スタックポインタからの相対位置で表せるので、
ポインタを介してアクセスするグローバル変数より速いのだ。
たとえレジスタにセットしてくれても、プログラム全域で保持すると
他の部分で遅くなってしまう。

53 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 22:41:29 ]
>>52
スタックポインタからの相対アクセスもポインタアクセスだと思うが。
と言うかそれ以前にどのCPUの話?

54 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 22:42:05 ]
>>51
すまん、ずーっと英語の文章を読んでいたので変な日本語になってしまった

結局は次の二つのことが言いたかった。
・最強=全ての事象を探索するしかない、
・強いプログラムと最強のプログラムはまったく違う。

55 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 22:51:26 ]
>>53
1の開発環境はWindowsだと思うのでx86。
スタックポインタの場合、[esp-8]などと一発でアクセスできるが、
そうでない場合[eax]とアクセスする前にeaxにポインタを格納する手間が要る。
もしくは、eaxをポインタに占有されて使えるレジスタが減ってしまう。

56 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 22:52:43 ]
何アホなこと言ってんの
ローカル変数なら最初から最後までレジスタに置いておけるけど
グローバルだとそうはいかん(メモリに書き戻す)から必ず遅くなる

57 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 22:54:03 ]
>>56
その通りだが、俺が何か変なこと言ったか?



58 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 22:56:21 ]
レス番つけろよ

59 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 23:02:03 ]
>>レジスタが云々言ってる奴
pc10.2ch.net/test/read.cgi/tech/1084676298/l50
スレ違いだからこっちでやれ。

60 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 23:08:00 ]
>>55
例えば mov edx,[MemAddress] と言う形式の指定方法があるので、
わざわざアドレスをレジスタにロードする必要は無い。

61 名前:1 [2007/01/22(月) 23:09:14 ]
全部グローバルが鈍いなら、main()だけだったら速いでしょ?使うのはマクロだけで
書き換えたらバグだらけになったので、元のまあまあ動いたところからやり直すことにする
明日やることにする

62 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 23:11:38 ]
まだアホな事言ってるし

63 名前:55 mailto:sage [2007/01/22(月) 23:14:23 ]
>>60
>>59のスレでレスするよ。

>>61
その発想は俺にはなかった。さすがだ。
そのやり方では色々問題が出てくると思うが、がんばれ。

64 名前:1 [2007/01/22(月) 23:15:30 ]
>>52
メモリの呼び出し速度が遅いってことなんだけど
より遅いのはハードディスクだけど
例えば、int型のデータ読むのに
メモリ100ms
ハードディスク1000ms
レジスタ5ms
とかかかるならレジスタを何度も繰り返し使った方がいいとおもうけど

65 名前:1 [2007/01/22(月) 23:17:59 ]
インライン展開はループがあると出来ないってほんと?

66 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 23:19:37 ]
メソッド呼出しとか、変数入出力のレベルの
スピードを気にするなら、アセンブラで組めよ

67 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 23:20:41 ]
>>64
おいおい、世界初のCPUだってメモリ1アクセスに100ms もかからんよ。



68 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 23:21:05 ]
わしもそう思う

69 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 23:27:39 ]
>>64
レジスタを何度も繰り返し使った方がいいのは確かだ。
ただし、レジスタは少ないのでメモリアクセスは必ず必要になってしまうのだ。
なるべくメモリを使わないようにするという目的のために、
「全部グローバル変数にする」というアプローチは間違っていると言いたいわけ。

70 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 23:30:41 ]
>>前スレ1
最適化も自分でやりたいの?
そういうのはやってやる、もしくはコンパイラがやるって言ってるのに。

71 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 23:30:53 ]
ヒント:キャッシュ

72 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 23:39:46 ]
前スレ1が何をしようともコンパイラの最適化には劣るし
オーソドックスに書かなければコンパイラの最適化を阻害する

73 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 23:40:08 ]
どうせろくにプロファイリングもせずに、影響少ないとこばかりいじくるんだろうしなあ

74 名前:56 mailto:sage [2007/01/22(月) 23:40:45 ]
>>55 スマンカッタ お前さん宛じゃなかったんだ
生温く見守っていようと思ってたんだが,我慢できなかった
今は反省してる

>>64
レジスタのアクセス速度は100ps(pは10^-12)のオーダー
メモリだと一次キャッシュにヒットすれば大差ないが
そうじゃないと大雑把に言って十倍〜百倍程度は遅くなる
ディスクなんて論外.使わないで済むようにコーディングしり

>>65
関数分けないと再帰呼び出しができないから
終盤の読み切りが書けなく(正確に言うとかなり書き/読み難く)なる

これは強いゲームプログラムを作るには必須っつーか常識レベルの
ハードウェアの知識だから>>1はもっと勉強汁

75 名前:1 [2007/01/22(月) 23:47:02 ]
再帰はもともと使わない設計ですよ
再帰で深くいくと鈍くなったり動作不安定になりそうな気がするので

76 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 23:53:23 ]
また責任転嫁してるし

77 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 00:01:33 ]
>>75
>鈍くなったり
探索数が深度の指数関数的に増加するんだから当たり前。浅いうちから
鈍るならアルゴリズムが良くないのでは。

>動作不安定
バグが原因。バグの原因となってるものは前スレで散々言われたはず。
今までの調子で書いてる限り改善しないだろうね。



78 名前:55 mailto:sage [2007/01/23(火) 00:05:03 ]
>>74
そうか。こっちこそ早とちりスマソ。


1のプログラミングスタイルはかつての俺で(笑)、共感は少しするが、
もうちょっと謙虚にスレ住人から情報を吸収して勉強するとか、
最適化を語るなら、速度も実測するなりして研究してからにしてくれ。

79 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 00:15:32 ]
典型的な荒しの判別方法

都合の悪い質問をスルー



80 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 00:19:09 ]
>>75
終盤の読みきりをどうコーディングするつもりなんだ?
深さは固定じゃないし,ループで書くと再帰よりぐちゃぐちゃした
コードになるぞ(自分でスタック管理しなくちゃならなくなるから)
再帰で書いて鈍く(これ意味が分からんが)なったり動作が不安定になる
なんてことは(バグがない限り)絶対無いから安心して再帰使え
再帰が今一つ理解できないんだったらもっと頭の汗をかけ
論理的な思考ができる人間なら必ず理解できるからガンガレ

81 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 00:26:20 ]
処理速度の話は一番最後で良いような。
まずは正しく動くのを作るのが最初だろ。
動作確認しやすいように関数分けたり、処理を簡素化したプロトタイプ作れば更に良し。

82 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 00:36:38 ]
>>81
それはさんざん言ってきたんだが無視されるんだよ

83 名前:デフォルトの名無しさん [2007/01/23(火) 00:54:18 ]
>>1見たいなやつが会社に入ってきたら自分の感情を抑えていられるかどうか…
殴ってしまいそうだww

84 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 01:41:40 ]
まずはスピードを気にせずにちゃんと(思った通りに)動くものを作れ
それから全部捨ててデータ構造から速度が出る様に設計し直すのが
思考ゲームで強いソフト作る時の最短コース(急がば回れ)だ

85 名前:デフォルトの名無しさん [2007/01/23(火) 01:57:57 ]
>>1はプログラムは初心者だけど、アルゴリズムが頭にあるなら、思想があるなら
プログラムであーだこーだやって、早いだの遅いだのやるんじゃなくて、
(グローバル変数がなんだのレジスタが何だのそういう件はいらない)
プログラムについてはここのスレの意見を聞いて、
アルゴリズムをちゃんと完成させろよ。

今の>>1がプログラムについてなんか言っても、ここの人間には価値がない。
そもそもおまいはアルゴリズムが強いって言い出したんだから、そこを主張しろ。

86 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 02:07:56 ]
>>85
アルゴリズムを完成させるも何も>>1は1ビットたりともアルゴリズムを変更する気はないと言ってる

87 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 02:19:39 ]
912 :1 :2007/01/20(土) 13:36:06
評価関数を変更することにしました
枚数×2 + 空白の数
では、指せる手の数が増えすぎて幾らアルゴリズムが良くても計算不可能なようです

指し手の可能数と、マスの位置による点数を使うことにします

評価関数はアルゴリズムのうちに入らないのかな?
前スレ1は他人と違う言語をしゃべってるようだ。



88 名前:デフォルトの名無しさん [2007/01/23(火) 02:25:18 ]
>>1の言ってるアルゴリズムが、最適化のことだったらワロスww

89 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 02:47:58 ]
>>88
ああ、なるほど。そう考えるとしっくりくるね。
でも最適化技術をとことん使っても解けるような問題じゃないのにね。

90 名前:1 [2007/01/23(火) 06:57:30 ]
思考ルーチンには、再帰は使ったらいかんと思います
スタック管理をパソコンにまかせて自動処理させると危険なんです
予め必要なメモリ領域を確保しておいてループで書くのが王道でしょ

91 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 07:02:22 ]
>>90

そんな事は、無い。
当然だが、スタック管理は人間よりPCにまかせたほうが、安全
なるだけ難しいとこは、PCにまかせて、シンプルで保守しやすい
コードを書くことこそが、真の王道



92 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 07:10:55 ]
危険とか王道って、どっからそんな思い込みが出てくるんだ

93 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 07:28:38 ]
>>92
>1の偏りきった脳味噌から。きっと>1はいつも斜めに傾いで座っているのだろう。

94 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 07:31:10 ]
どこまで深くなるかがあらかじめわかってるのだから
再帰でも問題は無いよ

95 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 07:36:06 ]
王道も何も知らない無知の癖に王道を語ったらいかんと思います
お前のようなカスが書いたプログラムが危険なんです
無知は無知らしく識者の言うことを聞くのが王道でしょ

96 名前:1 [2007/01/23(火) 08:04:44 ]
オセロだけではなく、将棋と囲碁に応用する目的があるんです
最大500手くらいあったらどうなんでしょうか?


再帰呼び出し

ある種の複雑な問題を解くコードをシンプルに記述できる場合があるが、
再帰による入れ子の数に応じて占有するメモリが増加する上、
実行速度も効率的とは言えず、非再帰的に記述できるならそうすべきである。

e-words.jp/w/E5868DE5B8B0E591BCE381B3E587BAE38197.html

97 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 08:09:35 ]
そんなもの知ってる
お前じゃない



98 名前:1 [2007/01/23(火) 08:10:19 ]
再帰は確実にインライン展開が出来ず、その都度、宣言されている変数の確保と
関数呼び出しのオーバーヘッドがかかるんです だから鈍い

99 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 08:13:01 ]
>>98
>再帰は確実にインライン展開が出来ず、
ループもインライン展開できないとか書いてただろ、お前

だいたいループにするって言っても、どうやるの?
自分でスタック用意するのか?

100 名前:1 [2007/01/23(火) 08:15:28 ]
当初から、再帰は一度も使っておらず(これは初めから一貫していました)
手数と、読みの深さごとに必要な領域を確保しています
パスも含めて128手分とってあります

101 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 08:17:29 ]
そんなのソース見たから知ってる
だからどうした?
何が言いたい?

102 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 08:17:41 ]
インライン展開できてるかどうかくらいは確認してるんだよな

103 名前:1 mailto:sage [2007/01/23(火) 08:42:19 ]
それはしてません
でもとにかくループがいいんです
わかってください

104 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 08:50:58 ]
残念
sageちゃ駄目なんだ

105 名前:1 [2007/01/23(火) 09:27:14 ]
同じ事繰り返すんだけど、どうやったら直るかわかる?
今日はしばらくパソコン触れないのでうpしてみる
まだ変数名とかプログラムはわかりにくいままですが

up2moe.moe.hm/img/q480.txt

106 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 09:34:04 ]
わかりやすいプログラムになったら皆見てくれるよ

107 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 09:34:15 ]
「直る」って何?
どうなればいいのかも言わずに何言ってんの。



108 名前:1 [2007/01/23(火) 09:37:21 ]
直る=深く探索するです

今の時点では、強いかどうかではなく同じ探索を繰り返さないようにしたいんです

109 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 09:48:20 ]
128とか255とか、境界値のあたりがあいまいだからだよ
そんなんでよく再帰がどうのとかいえるな

110 名前:デフォルトの名無しさん [2007/01/23(火) 10:00:43 ]
>>1は知った知識をむやみに口に出したがるんだな。
それがたった一部の悪い所にもかかわらず、よい部分を知ることもなく
検討もしない。

すべて自分の思い込みで、自分がいいと感じた(たまたま最初にいいと思った)
方法しか使わない。

再帰が遅いとかいって使わないし、読みにくくなるだけなのにグローバル変数乱用したがるし。
プログラムの王道はわかってないようだな。

そもそもそんな馬鹿みたいにメモリ使うプログラムが速いとは思えないが。
スラッシングで遅くなるぞ

111 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 10:04:09 ]
up2moe.moe.hm/img/q482.txt
直ったよー

112 名前:デフォルトの名無しさん [2007/01/23(火) 10:20:59 ]
>>111
仕事はえぇぇええええw
俺もやってたが、foreの展開までしかいけんかったww

113 名前:デフォルトの名無しさん [2007/01/23(火) 10:23:53 ]
>>111
remove()とcupu()は関数にするだけじゃだめだ。ビルドしてないだろおまい

114 名前:デフォルトの名無しさん [2007/01/23(火) 10:30:20 ]
リファクタしようと思ったら発狂しそうになった

115 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 10:30:23 ]
マクロを展開するだけならプリプロセッサでできるね

116 名前:1 [2007/01/23(火) 10:35:34 ]
うまく動かないのは、mtd()だけであとは正常動作をしていると思われます

117 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 10:36:09 ]
>>111
プリプロセッサ通してコードフォーマットかけた
>>113
はい、やってません。



118 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 10:43:21 ]
>>117
アンカー>>112だった。
>>113
コンパイル通した。
remove()とcupu()はとりあえずマクロに戻した。
up2moe.moe.hm/img/q483.txt


119 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 11:05:40 ]
>>103
「でも」「とにかく」
これダメプログラマの言い訳の典型だな
大昔のFORTRANじゃあるまいし,再帰の利点が理解できないんじゃ
アルゴリズムの良し悪しが云々できるレベルじゃない
きちんとしたプログラミングの教育を受けてないみたいだが
取り敢えずプログラミング作法とプログラミング書法辺りは読んどけ
後,雑誌の記事とか友人から得た知識は捨てろ

120 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 11:08:20 ]
>>119
いや・・>>103は偽者だから・・
でも言ってることは正しい

121 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 11:10:42 ]
も一個
プログラムの最適化に関しても勘違いがある
プログラムの実行時間の90%以上はコードの極一部に集中する
だからそこだけ頑張って他は読み易さ/改良のし易さを優先する
全体をインライン展開しようなんてのはアホのやること 1%も変わらん
兎に角,お前が考え出したアルゴリズムの正しさの確認が最優先だろ?
そのためにプログラムにして実際に動かすんだから
正しいかどうかが分かってないうちから最適化に手間かけるたら二兎を追うものになってしまうぞ

122 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 11:13:22 ]
>>120 そうなの?<偽者
まぁどっちでもいいや

123 名前:デフォルトの名無しさん [2007/01/23(火) 11:14:22 ]
だめだこいつ new して delete してない
はやく何とかしないと

>>121
>正しいかどうかが分かってないうちから最適化に手間かけるたら二兎を追うものになってしまうぞ
俺もそう思う


124 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 11:18:12 ]
>>1 にはこれを読むことをすすめておく
www.pro.or.jp/~fuji/mybooks/cdiag/index.html#mokuji

125 名前:デフォルトの名無しさん [2007/01/23(火) 11:21:04 ]
あとさぁ、最適化にこだわるんだったら何でC++使ってるわけ?

126 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 11:22:26 ]
>>124
俺もそれ見たことある
それに出てくる悪い例でも1のに比べたらはるかにいいと思う

127 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 11:24:18 ]
確かに、再帰は末尾再帰にしない限りこういう用途では使うべきではないと思う。



128 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 11:25:55 ]
>>125
hashtable の初期化が面倒なだけじゃね?あれはC++と言ってもほとんどCだ。

129 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 11:26:57 ]
>>127
今は(未だ)そういうレベルじゃないよ。

処で、>1の使っている糞コンパイラは配列のインデックスにcharを使っても警告出さないの?
アセンブル出力見れば判るが凄く無駄なコードを出力する原因になっているんだけど。

130 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 11:30:53 ]
遅くても良いから動くコード書いてください
動くコードができたら、アルゴリズムを考え直しましょう
アルゴリズムを考え直したら、書き直しましょう
その連続です。
最適化はコンテストの直前にするものです。

131 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 11:44:27 ]
>>前スレ1
MTDって亜流がいっぱいあるんだけど、どれを参考にしたの?

132 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 11:48:39 ]
msu()、charの参照なんて無意味なものを引き数にしている。
serch()、何このtypo。
mtd()、ddが未使用。
adress()、xhは未初期化でアクセスされることない?

133 名前:デフォルトの名無しさん [2007/01/23(火) 11:49:07 ]
void fn(char t){
  char i,bnn[64];
  for(i=0;i<64;i++){
    if(bt[wb[t][i/8][0]][i%8]==1)printf("●");
    if(bt[wb[t][i/8][1]][i%8]==1)printf("○");
    else printf(" ");
    if(i%8==7)puts("");
    //初期化しておく
    bnn[i]=0;
    if(bt[wb[t][i/8][2]][i%8]==1)bnn[wz[i]]=1;
  }
  puts("");
  for(i=0;i<64;i++){
    if(bnn[i]==0)printf(" ");
    else printf("*");
    if(i%8==7)puts("");
  }
  puts("");
}

グローバル変数が何の目的で使われてるのかわからんのが多すぎ。

134 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 12:02:06 ]
よーし、俺も俺も。

inline void serch(char w)
{
  if (w == 97)
  {
    z = 97;
    goto EE;
  }

中略...

  z = 97;
  EE:
  ;
}

return; 使えよw

135 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 12:08:56 ]
if (mode[tsu[1]] == 1) {
mode[tsu[1]] = 0;
mode[tsu[1] + 1] = 1;
goto GG;
}
if (hash[x].a <= g) {
if (g <= hash[x].b) {
GG:
;
if (kar[tsu[1] + 1] < 1) {
if (kt == 0) {
hmove();
}
move();
goto BB;
}
}
}
すげぇ、ifブロックに飛び込んでる。

136 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 12:18:41 ]
ちょっとロジックを追おうと思って、cupuマクロで使っているremove()マクロを見たら、
gotoしている先が別のforループの中だと知って諦めた。

137 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 12:20:40 ]
これは、もう
2重以上のループからでるとき以外go toは使うなと
指導すべきタイプの人やね。



138 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 12:24:33 ]
違うよ


リアルだと絶対に関わりたくないタイプの人だよ。

139 名前:1 [2007/01/23(火) 12:30:40 ]
わかりやすくするために頑張ってオブジェクト指向プログラムに書き換えますよ
待ってて下さい!






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<194KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef