>>やんちさん
なるほど、else ifって括弧でいちいちまとめていかなくても大丈夫なんですね。
構造体のswapについても全く知りませんでした。これだけでも3行も短くなるとは、しかも読みやすくなっている。
山札は当初は5回しか繰り返さないつもりだったので、なくなったときの処理をいれていませんでした。対処としては、山札自体を2個3個として増やすこととして対処してみます。
謎のコメント…今見返してみると、自分でも謎です。一体なんなのでしょうかね…
c言語で書いているつもりだったのですが、vc++でc++としてコンパイルしていたようで、エラーが出なかったので、気にしたことがありませんでした。ご指摘ありがとうございます。
>>ぽこさん
>私見ですが、初心者というレベルは脱していると思います。
ありがとうございます。初心者を脱したかどうかは自分で判断がつかなかったので、うれしいかぎりです。
「プログラミング作法」と「C言語 入門書の次に読む本」ですか、amazon等を見てみるとずいぶんと興味をそそられる紹介文だったので、今週末にでも書店で見てきます。ただ、近くの図書館に置いてないのは、懐が痛いです…プログラミング関係の本ってどうしてこう高いのでしょうか…
>>たかぎさん
エラーチェックは全く気にしたことがありませんでした。そうですね、確かに自分が使うだけならエラーが出るような数値は入力しないですが、他人が使うこともあるわけで、そうなると、やはりエラーチェックも必要事項になってくるんですね。
ソートについては下に一応自分の考えたコードも載せてみましたので、見ていただけると嬉しいです。ただ、こういう頭の中だけで考えて、メモ帳がちょっとあれば考えたアルゴリズムをメモっておけるのは授業中の暇つぶしとしては結構いいので、自前でできるところはなるべく自前でしようかなと思います。
>>dicさん
対戦相手はこれから組み込んでみようと思います。ただ、ポーカーの場合はかなり運の要素が強いので、とりあえず、自分が普段やっている戦術?をそのまま実行させるような形になる気がします。はたしてこれはcpuと言えるのか…
>>softyaさん
変数名ですか、たしかにこのままj,k,l,m,n…と増えていったら区別がつかなくなりそうです。これからはちゃんと名前をつけるように気をつけます。
ソートも最初は自前でいろいろと考えてみたのですが、どうもうまくいかなくて、で、参考書見てみるとソート用の関数が合ったのでそれを使ってしまいました。
一応自分で考えてたのは
struct card mycbuf[5];
int j,s; int buf = 20;int buf2 = 0;
for(s = 0;s < 5;s++){
for(j = 0;j < 5;j++){
if(mycards.suu < buf && mycards.suu != buf2)
buf = mycards
}
mycbuf = buf;
buf2 = buf;
}
//インデントがおかしいかと思いますが、お許しください
ユーザーインターフェイスはそもそもcuiでゲーム作るのは実用性無視であくまでcの練習として組んでいたので、今回は全く考えていませんでした。今回指摘していただいた不備を直したらこれを今度はwin32APIを使って作ってみようと考えているので、そちらではしっかりとインターフェイスにもこだわりたいと思います。
9個もの参考サイトの紹介ありがとうございます。猫でもわかる以外はすべて初見のため大変ありがたいです。
>>たいちうさん
今確認してみましたが、Cstraightは誤判定していました。これから問題点と修正案考えてみます。
>Cpareは非常に良く書かれています。
ありがとうございます。なんか、ソースを他人に見せたことなんか一度もなくて当然ほめられた機会もなかったんで大変うれしいです。
ただ、個人的には変数は配列で13個も用意しなくても4個でいけるように感じたので、まだまだ無駄があるのかなと思ってます。
みなさん本当に丁寧な回答ありがとうございます。こんなにも多くの助言がいただけてうれしい限りです。
今後は、
1指摘された問題点の修正
2エラーチェックの導入
3CPUの導入
4win32APIを利用したGUI化
という風に進めていきたいと思います。これらの間に何か入れたほうがいいことがあれがまた、助言いただけるとありがたいです。
本当にありがとうございました。