【初心者歓迎】C/C++室 Ver.29【環境依存OK】
952 :
デフォルトの名無しさん:2006/08/20(日) 21:20:47
cin.getline(buf,200)は、fgets(buf, 200, stdin)
と同じような感じだと思いますが、
cin.getlineの戻り値でどういう時がエラー
とかありましたら教えてください。
すみません。今、CUIオセロのゲーム作っているんですが躓いてしまいました。
一応交互にゲームは出来るんですが、すでに石を置いてあるところにも置けてしまうし、
ひっくり返せないところに置くこともできてしまいます。
上のような場合はwhileかdoで繰り返したら出来るかなと思ってやってるんですがなかなかうまく出来ません。
もしここに汚いソースですが載せたらご教示いただけますか?
>>947 cast の最も基本的な意味は計算して投げるって意味なんだから、
他の意味はそこからの派生と考えるのが自然だろ。
そこまで違うと言うからには、何か根拠でもあるのか?
英単語の基本的な意味なんかどうでもいい。
>>953 難しいだろうね。一通りうごくんならソースもそれなりの量だろうし。見るのは面倒。
スレにだらだらソース貼るのは超迷惑。
ソースをアップローダに置いて、リンク貼るだけならあんまり迷惑じゃないし、
やってみてもいいんじゃないかな。ただし、返答が無くてもあたりまえなんだから、
文句は言わないこと。あと、汚いと自覚してるんだったら、礼儀として
すぐ出来る整形ぐらいはしとくことだ。多少は見てもらえる可能性が上がるだろう。
>>952 iostream のエラーはストリームオブジェクトの中に記録されている。
で、 good() とか fail() とか、いろいろテスト方法がある。
cin.getline() の戻り値は istream& だから。そいつらを使う。
959 :
953:2006/08/20(日) 22:32:23
>>957 分かりました。ありがとうございました。
>>953 入力を受け付ける前に、全64マスの評価(石を置いた場合、いくつ取れるかを計算)して、評価値が0のマスが指定されたら再入力
…とかかな。
で、その評価値は後でCPU思考につかう。
というか、コードそのものよりアルゴリズムが汚い。
ぱっとみなのでまちがってるかもしれんが。
hantei() という関数が画面出力を受け持ってるのは信じがたい。
hantei2() は書き直し。 struct vec { int x, y } vectors[8] = {-1,-1},{0,-1},{1,-1},{-1,0},{1,0},{-1,1},...
てのをくるくるすれば8種類書かなくていいでしょ。
すでに石があるとこに置けるとか置けないとかはうpされたソースからはわからん。
>うpされたソースからはわからん。
と書いたが、これで全ソースなんだったら言い直す。hantei2()が読む気しないのでわからん。
hantei()がhentai()に見えて仕方がない
967 :
デフォルトの名無しさん:2006/08/20(日) 23:36:24
cout.putline(""); みたいな、
cin.getlineとは反対に1行出力できるのはないでしょうか。
puts
cout << "" << '\n';
970 :
953:2006/08/20(日) 23:52:56
みなさん回答ありがとうございます。
hantei2は石を置いてその石(黒)から上下右・・右下、左下と順番に見て行ってもし
間にひっくり返せる石があったら色を白にするというものを黒石用と白石用で分けているだけです。
あとこれで全ソースです。
黒番と白番を別々に書くのもやめろ。who = !who で0,1を切り替えるんだ。
宿題とかでなく、自主的にオセロ作ってるのならおまえには見込みがある。
ソースはむちゃくちゃだがな。
デバッグも出来ない奴に見込みなんて無いよ
973 :
953:2006/08/21(月) 00:04:36
>>971 昨日から作っているんですが、なかなかうまく行かないものなんですね・・・
まだまだ私の知らない表現方法がある見たいですし
>>961さんが仰る方法で作れるような気もしますが、
もうちょっと汎用性に優れたのを作って見ます。
宿題ではないんでゆっくり頑張ります。
他にもご指摘ありましたら是非ご教示下さい。お願いします。
>>972 【初心者歓迎】 ソース見れば初心者は明らか。
初心者がなにかやろうと思ってとにもかくにもあそこまで書いたなら素質はじゅうぶんだと思うね。
975 :
967:2006/08/21(月) 00:15:09
ありがとうございます。
>>968 コンパイラはbccですが、
putsはofstreamのメンバではないとでます。
>>969 << >>は使いたくなくて、それに変わるのを探していました。
976 :
デフォルトの名無しさん:2006/08/21(月) 00:15:57
GUIライブラリを作ってみたいのですが、どう作っていいのかわかりません。
何か参考になるものは無いでしょうか?
環境はVC2005EEです。
初心者は途中で投げ出す人が多いからね。
>>975 <<, >> の替わりは無いよ。使いたくないなら iostream 系自体を使わないほうがいいよ。
>975
<cstring>のputs()グローバル関数
981 :
975:2006/08/21(月) 00:36:15
ありがとうございます。
.writeというのはあって、一応代用できそうです。
>>978 ホントそうかもしれません。Cの感覚が抜けなくて。
>>979 調べてみます。
>>953 masu[8][8] は外部変数にしてしまえ。関数に分けやすくなる。
ほんとは struct board { int masu[8][8]; }; みたいなの作ってこれを引数渡しに
するのがベストだけど今はどっちでもいいと思う。
途中で投げ出さないことはいいことだ。
だが、それを考慮しても
>>953はオセロ投げて
勉強しなおした方がいい気がする。
文句のないソースだが953のやる気を激しく削ぎ落としたに違いないw
初心者歓迎と書かれたスレタイに安心してやってきた
>>953が
ケチョンケチョンに言われて泣きながら去っていきました。
>>986 いやいや、俺たちなりの愛のある歓迎なんだぜ。
ソースへの批判というのは、その人の能力を引き上げる最大の要因と思うしな。
oseroって何だよw
リア厨か?
riba-shiにすべきだよな
990 :
デフォルトの名無しさん:2006/08/21(月) 10:41:14
>>990 オセロ以上の汚いソースで見る気がしない。
992 :
953:2006/08/21(月) 10:54:50
>>984 ありがとうございます。
こんなに短く作れるんですね。私もこういうの作れるように頑張りたいと思います。
>>990 汚いというより、設計がヘタすぎて見てらんない。
この程度だとやりたいこと聞いて、自分で書いたほうが早そうだ。
ポインタ変数同士の引き算は許されると習ったのですが、
float f,g,h,*x,*y,*z;
x=&f;
y=&g;
でz=x-yが誤りなのが分かりません。どなたか教えてください
俺もわからん。
>>994 その場合ポインタ同士の引き算はポインタ間の距離になるので、ポインタ変数には代入できません。
詳細は改めて次スレででも聞き直してくれ。
>>994 ポインタ型同士の演算結果はポインタ型じゃないからだ
ポインタ型の演算結果がポインタ型になるのはポイント型に序数の加算か減算をした時だよ
ポインタ ± 要素数 → ポインタ
ポインタ ± ポインタ → 要素数
>>998 おいこら、ポインタ同士の加算はねぇぞ。
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。