【初心者歓迎】C/C++室 Ver.29【環境依存OK】

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2006/08/20(日) 21:20:47
cin.getline(buf,200)は、fgets(buf, 200, stdin)
と同じような感じだと思いますが、
cin.getlineの戻り値でどういう時がエラー
とかありましたら教えてください。
953デフォルトの名無しさん:2006/08/20(日) 21:50:53
すみません。今、CUIオセロのゲーム作っているんですが躓いてしまいました。
一応交互にゲームは出来るんですが、すでに石を置いてあるところにも置けてしまうし、
ひっくり返せないところに置くこともできてしまいます。
上のような場合はwhileかdoで繰り返したら出来るかなと思ってやってるんですがなかなかうまく出来ません。
もしここに汚いソースですが載せたらご教示いただけますか?
954デフォルトの名無しさん:2006/08/20(日) 21:51:02
>>947
cast の最も基本的な意味は計算して投げるって意味なんだから、
他の意味はそこからの派生と考えるのが自然だろ。
そこまで違うと言うからには、何か根拠でもあるのか?
955デフォルトの名無しさん:2006/08/20(日) 21:53:50
英単語の基本的な意味なんかどうでもいい。
956デフォルトの名無しさん:2006/08/20(日) 22:18:40
>>953
難しいだろうね。一通りうごくんならソースもそれなりの量だろうし。見るのは面倒。
スレにだらだらソース貼るのは超迷惑。

ソースをアップローダに置いて、リンク貼るだけならあんまり迷惑じゃないし、
やってみてもいいんじゃないかな。ただし、返答が無くてもあたりまえなんだから、
文句は言わないこと。あと、汚いと自覚してるんだったら、礼儀として
すぐ出来る整形ぐらいはしとくことだ。多少は見てもらえる可能性が上がるだろう。
957デフォルトの名無しさん:2006/08/20(日) 22:26:10
>>952
iostream のエラーはストリームオブジェクトの中に記録されている。
で、 good() とか fail() とか、いろいろテスト方法がある。
cin.getline() の戻り値は istream& だから。そいつらを使う。
958デフォルトの名無しさん:2006/08/20(日) 22:30:20
ttp://up2.viploader.net/mini/src/viploader62329.zip
出来るだけ綺麗にしました。
わかる方よろしくお願いします。
959953:2006/08/20(日) 22:32:23
続けてすみません。
>>958>>953のソースです。お願いします。
960デフォルトの名無しさん:2006/08/20(日) 22:35:05
>>957
分かりました。ありがとうございました。
961デフォルトの名無しさん:2006/08/20(日) 22:50:54
>>953
入力を受け付ける前に、全64マスの評価(石を置いた場合、いくつ取れるかを計算)して、評価値が0のマスが指定されたら再入力
…とかかな。
で、その評価値は後でCPU思考につかう。


というか、コードそのものよりアルゴリズムが汚い。
962デフォルトの名無しさん:2006/08/20(日) 23:00:05
ぱっとみなのでまちがってるかもしれんが。
hantei() という関数が画面出力を受け持ってるのは信じがたい。
hantei2() は書き直し。 struct vec { int x, y } vectors[8] = {-1,-1},{0,-1},{1,-1},{-1,0},{1,0},{-1,1},...
てのをくるくるすれば8種類書かなくていいでしょ。
すでに石があるとこに置けるとか置けないとかはうpされたソースからはわからん。
963デフォルトの名無しさん:2006/08/20(日) 23:06:09
>うpされたソースからはわからん。
と書いたが、これで全ソースなんだったら言い直す。hantei2()が読む気しないのでわからん。
964デフォルトの名無しさん:2006/08/20(日) 23:12:29
hantei()がhentai()に見えて仕方がない
965デフォルトの名無しさん:2006/08/20(日) 23:19:44
>>958
俺も読む気になれなかった。
966デフォルトの名無しさん:2006/08/20(日) 23:33:42
>>964
俺書き込んだっけ?
967デフォルトの名無しさん:2006/08/20(日) 23:36:24
cout.putline(""); みたいな、
cin.getlineとは反対に1行出力できるのはないでしょうか。
968デフォルトの名無しさん:2006/08/20(日) 23:38:25
puts
969デフォルトの名無しさん:2006/08/20(日) 23:40:34
cout << "" << '\n';
970953:2006/08/20(日) 23:52:56
みなさん回答ありがとうございます。
hantei2は石を置いてその石(黒)から上下右・・右下、左下と順番に見て行ってもし
間にひっくり返せる石があったら色を白にするというものを黒石用と白石用で分けているだけです。
あとこれで全ソースです。
971デフォルトの名無しさん:2006/08/20(日) 23:58:56
黒番と白番を別々に書くのもやめろ。who = !who で0,1を切り替えるんだ。
宿題とかでなく、自主的にオセロ作ってるのならおまえには見込みがある。
ソースはむちゃくちゃだがな。
972デフォルトの名無しさん:2006/08/21(月) 00:01:09
デバッグも出来ない奴に見込みなんて無いよ
973953:2006/08/21(月) 00:04:36
>>971
昨日から作っているんですが、なかなかうまく行かないものなんですね・・・
まだまだ私の知らない表現方法がある見たいですし>>961さんが仰る方法で作れるような気もしますが、
もうちょっと汎用性に優れたのを作って見ます。
宿題ではないんでゆっくり頑張ります。
他にもご指摘ありましたら是非ご教示下さい。お願いします。
974デフォルトの名無しさん:2006/08/21(月) 00:10:14
>>972
【初心者歓迎】 ソース見れば初心者は明らか。
初心者がなにかやろうと思ってとにもかくにもあそこまで書いたなら素質はじゅうぶんだと思うね。
975967:2006/08/21(月) 00:15:09
ありがとうございます。

>>968
コンパイラはbccですが、
putsはofstreamのメンバではないとでます。

>>969
<< >>は使いたくなくて、それに変わるのを探していました。
976デフォルトの名無しさん:2006/08/21(月) 00:15:57
GUIライブラリを作ってみたいのですが、どう作っていいのかわかりません。
何か参考になるものは無いでしょうか?


環境はVC2005EEです。
977デフォルトの名無しさん:2006/08/21(月) 00:17:27
初心者は途中で投げ出す人が多いからね。
978デフォルトの名無しさん:2006/08/21(月) 00:19:41
>>975
<<, >> の替わりは無いよ。使いたくないなら iostream 系自体を使わないほうがいいよ。
979デフォルトの名無しさん:2006/08/21(月) 00:19:45
>975
<cstring>のputs()グローバル関数
980デフォルトの名無しさん:2006/08/21(月) 00:35:03
>>976
GUIライブラリって何だ?
981975:2006/08/21(月) 00:36:15
ありがとうございます。
.writeというのはあって、一応代用できそうです。

>>978
ホントそうかもしれません。Cの感覚が抜けなくて。

>>979
調べてみます。
982デフォルトの名無しさん:2006/08/21(月) 00:41:24
>>953
masu[8][8] は外部変数にしてしまえ。関数に分けやすくなる。
ほんとは struct board { int masu[8][8]; }; みたいなの作ってこれを引数渡しに
するのがベストだけど今はどっちでもいいと思う。
983デフォルトの名無しさん:2006/08/21(月) 01:16:10
途中で投げ出さないことはいいことだ。
だが、それを考慮しても>>953はオセロ投げて
勉強しなおした方がいい気がする。
984デフォルトの名無しさん:2006/08/21(月) 02:44:48
>>958のソースが独創的で俺には読めないから修正を加えてみた。
ついでに置石のチェックも入れといた

一応参考程度に
http://up2.viploader.net/mini/src/viploader62429.zip
985デフォルトの名無しさん:2006/08/21(月) 02:53:29
文句のないソースだが953のやる気を激しく削ぎ落としたに違いないw
986デフォルトの名無しさん:2006/08/21(月) 03:09:29
初心者歓迎と書かれたスレタイに安心してやってきた>>953
ケチョンケチョンに言われて泣きながら去っていきました。
987デフォルトの名無しさん:2006/08/21(月) 03:13:19
>>986
いやいや、俺たちなりの愛のある歓迎なんだぜ。
ソースへの批判というのは、その人の能力を引き上げる最大の要因と思うしな。
988デフォルトの名無しさん:2006/08/21(月) 05:08:48
oseroって何だよw
リア厨か?
989デフォルトの名無しさん:2006/08/21(月) 09:12:46
riba-shiにすべきだよな
990デフォルトの名無しさん:2006/08/21(月) 10:41:14
ttp://up2.viploader.net/mini/src/viploader62535.zip
出力がうまくいかないんですが原因は何でしょうか?
VC++でc++で作ってます。
991デフォルトの名無しさん:2006/08/21(月) 10:50:15
>>990
オセロ以上の汚いソースで見る気がしない。
992953:2006/08/21(月) 10:54:50
>>984
ありがとうございます。
こんなに短く作れるんですね。私もこういうの作れるように頑張りたいと思います。
993デフォルトの名無しさん:2006/08/21(月) 14:41:30
>>990
汚いというより、設計がヘタすぎて見てらんない。
この程度だとやりたいこと聞いて、自分で書いたほうが早そうだ。
994デフォルトの名無しさん:2006/08/21(月) 15:38:09
ポインタ変数同士の引き算は許されると習ったのですが、

float f,g,h,*x,*y,*z;
x=&f;
y=&g;

でz=x-yが誤りなのが分かりません。どなたか教えてください
995デフォルトの名無しさん:2006/08/21(月) 15:47:48
俺もわからん。
996デフォルトの名無しさん:2006/08/21(月) 15:52:58
>>994
その場合ポインタ同士の引き算はポインタ間の距離になるので、ポインタ変数には代入できません。
詳細は改めて次スレででも聞き直してくれ。
997デフォルトの名無しさん:2006/08/21(月) 15:56:14
>>994
ポインタ型同士の演算結果はポインタ型じゃないからだ
ポインタ型の演算結果がポインタ型になるのはポイント型に序数の加算か減算をした時だよ
998デフォルトの名無しさん:2006/08/21(月) 15:57:24
ポインタ ± 要素数 → ポインタ
ポインタ ± ポインタ → 要素数
999デフォルトの名無しさん:2006/08/21(月) 16:21:32
>>998
おいこら、ポインタ同士の加算はねぇぞ。
1000デフォルトの名無しさん:2006/08/21(月) 16:32:56
【初心者歓迎】C/C++室 Ver.30【環境依存OK】
http://pc8.2ch.net/test/read.cgi/tech/1156145524/
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。