• ベストアンサー

CPPファイルのチンチロリン

cppの簡単な作品作りで作りやすそうな物を考えて 博打のチンチロリンを作ってみようと思ったんですけど classの時点でどう分ければいいか混乱してきました・・^^; ションベンは無しで見もなしでCPUは1~2人の方向で考えてます 今も少しずつ案を練っていますが皆さんのアイデアを少しでも頂いて参考にできれば光栄です 是非意見のある方お願いいたしますm(_ _)m

質問者が選んだベストアンサー

  • ベストアンサー
  • talepanda
  • ベストアンサー率58% (45/77)
回答No.1

#include <iostream> #include <cmath> #include <vector> #include <string> using namespace std; struct Me{ enum Me_type{_me,_zoro,_123,_456,_menashi,_shon}; int me; Me_type me_type; void judge(int x,int y,int z){ if(x==y && y==z && z==x){me_type=_zoro;me=x;} else if(x==y){me_type=_me;me=z;} else if(y==z){me_type=_me;me=x;} else if(z==x){me_type=_me;me=y;} else if(x+y+z==6 && x*y*z==6){me_type=_123;me=0;} else if(x+y+z==15 && x*y*z==120){me_type=_456;me=0;} else{me_type=_menashi;me=0;} } static int shobu(Me me1, Me me2){return rand()%7-3;} // ここで目ごとの倍率を計算(未実装) }; struct Player{ Player(int motigane,string name):kane(motigane),namae(name){} int kane;string namae;int kakekin;bool oya; Me me; virtual void play(){ if(oya){cout<<namae<<"は親です"<<endl;} else{cout<<namae<<"は"<<kakekin<<"万円かけました"<<endl;} for(int i=0;i<3;++i){ furu(i); if(me.me_type!=Me::_menashi){cout << me.me_type<<endl;break;} } cout << "結果: " << me.me_type << "で" <<me.me << endl; } virtual int furu(int c){ cout<<namae<<"が" << (c+1) << "回目、振りました。目は: ";int m[3];for(int i=0;i<3;++i){m[i]=rand()%6+1;cout<<m[i];}cout<<endl; me.judge(m[0],m[1],m[2]); } }; struct PlayerHuman:Player{ PlayerHuman(int motigane,string name):Player(motigane,name){} int furu(int c){cout<<"振れ! (Enter)"<<endl;cin.get();Player::furu(c);} void play(){if(!oya){cout<<"いくら? ";cin>>kakekin;}Player::play();} };

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • talepanda
  • ベストアンサー率58% (45/77)
回答No.2

(続き) struct PlayerCom:Player{ PlayerCom(int motigane,string name):Player(motigane,name){} void play(){if(!oya){kakekin=rand()%100;}Player::play();} }; struct Ba{ int ninzu; int oya; vector<Player*> players; Ba(int n):ninzu(n){players.resize(ninzu);} void start(){ for(int i=0;i<ninzu;++i){players[i]->oya=(i==oya);} while(true){ for(int i=0;i<ninzu;++i){players[i]->play();} int oya_m=0; for(int i=0;i<ninzu;++i){ if(i==oya){continue;} int bairitsu=Me::shobu(players[oya]->me,players[i]->me); int m=bairitsu*players[i]->kakekin; players[i]->kane+=m;players[oya]->kane-=m; oya_m-=m; cout << players[i]->namae << "は" << m << "もうかったか損した。所持金は" << players[i]->kane << "万円" <<endl; } cout << players[oya]->namae << "は" << oya_m <<"もうかったか損した。所持金は" << players[oya]->kane << "万円" << endl; char a; cout<<"続ける[y/n]? "; cin >> a;if(a=='n')break; } } }; int main(){ srand(time(0)); Ba* ba=new Ba(3); ba->players[0]=new PlayerHuman(10000,"オレ様"); ba->players[1]=new PlayerCom(100,"かも"); ba->players[2]=new PlayerCom(100,"ねぎ"); ba->oya=0; ba->start(); } (笑)

twenty
質問者

お礼

ありがとうございます^^ とても参考になりました^^

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 2つのcppファイルから

    1つのexeファイルを作る必要性が出てきました。 (現在質問中の質問に関連しています。) 例えば file.cpp: #include<iostream> using namespace std; void Output(int x) { cout<<x<<endl; } void main(void) { for(int i=0;i<9;Output(i++)); } をコンパイルリンクすれば済むことを file1.cpp: #include<iostream> using namespace std; void Output(int x) { cout<<x<<endl; } file2.cpp: void main(void) { for(int i=0;i<9;Output(i++)); } という風に分かれているファイルをコンパイルリンクしなければならないのです。 cpp -e file.exe -c file1.cpp -c file2.cpp ではエラーになります。 どうすれば良いのでしょうか?

  • ベゾルト-ブリュッケ現象についての解釈(関連?:比視感度曲線、プルキンエ現象)

    http://gc.sfc.keio.ac.jp/class/2005_14454/slides/08/16.html http://gc.sfc.keio.ac.jp/class/2005_14454/slides/08/17.html こちらのグラフを参考にして http://sirooni.moe.to/be.JPG このような画像を作りました。 コレを見て、「暗くなるとオレンジは黄色に寄るんだな」と思い、「PC上では輝度が一定なので、陰の色を求める時は逆方向に補正すればいいのかな」とか思ったのですが 改めてベゾルト-ブリュッケ現象を調べると、ずれる方向が逆に書いてます 例えばオレンジは暗くなると赤によるのが定説のようです それで混乱してしまいました。 どういう解釈が正しいのでしょうか。 よろしくお願いいたします。

  • 卒業記念作品のCDのジャケットの絵が思い浮かびません

    中学校の生徒会の執行部を勤めています。 今年は三年生で卒業です。 記念にCDを作るんですが、そのCDのジャケットの案が浮かびません・・・・ 執行部は、私だけではありませんが、ほかの人たちはそれぞれ仕事があって、 大して、アイディア力や美術力のない僕にまかされました。 どうせ卒業記念で作るなら、いいやつがいいです。 どなたか案を聞かせてもらえませんか? また、参考画像とか教えてください 大体、毎年は部活のことや、受験のこと、または合唱のこと、 また、広島の原爆の平和学習のことなどがジャケットにされています。 毎年、結構いい作品が、作られていますので、今年だけ僕のせいで、悪くなると気まずいし、申し訳ないです。 過去の作品は、参考にしましたが、 僕はそれから学ぶ力がないので、丸パクリ以外何もできません。 それでどなたか、どんなテーマにすればGOODなのか、どんな絵を描けばGOODなのか教えてください。 よろしくお願いします

  • CPPについて

    CPPのコマンドを教えて欲しいです。スマソ初心者なもんで川○| ̄|_

  • .cppファイルのコンパイルについて

    初心者ですがお願いします。 Sample.cppを改造しています。 コンパイルするに当たりコマンドプロンプトを利用しています。 c:\cwork>cl sample.cpp Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 14.0050727.42 for 80x86 Copyright (C) Microsoft Corporation. All rights reserved. sample.cpp c:\cwork\comm.h(24) : fatal error C1083:include ファイルを開け ません。'windows.h':No such file or directory ファイルを開けません。'windows.h' を解消するにはどうすれば良いでしょうか

  • .cppファイルの1234行目を修正するには!

    この手のプログラミングは私は体験したことがなく、質問します。 マイクロソフトVisual Basicがらみらしい「.cpp」ファイルのことです。 このファイルの1234行目を修正するには どうやって、横に行を表示出来て、間違いなく1234行目にいける のでしょうか。 まず、これ.cppファイルを開くのは、メモ帳はまずい感じです。 Visual Studio 2013 communityはインストール済みなのですが それで.cppファイルを開くべきなのでしょうか。これでひらいても、1234行目に 行く方法を知りません。

  • main.cpp以外のcppの追加について

    VisualC++を使用し、プログラムを作っています。 そこでプログラムを整理しようと思うのですが、 main.cpp以外もcppを作成し、プログラムを分割することが可能ですよね? cppファイル自体は作ることができるのですが、 作った後どのようにしてmain文から呼び出し?をするのか具体的なことがわかりません。 どのようなワードで検索が引っ掛かるのかもわからないので 掲載しているHP、もしくはやり方を教えてください。 私自身理解が足りていないので、 説明もあやふやなものになっていますがよろしくお願いします。

  • CPPやOPPとはなんですか

    包装資材に興味がある者です。 材質のところに記載されているCPPやOPPとはどのようなものなのですか? どなたかお教えいただけませんでしょうか。 よろしくお願い致します。

  • CPPのアイコン

    秀丸をインストールして、CPPの関連付けを設定しました。 CPPファイルのアイコンに「秀」マークが入ってしまうのですが、これをCPPファイルを開いたときに タイトルバーに表示される「C++」のみのすっきりした アイコンに変更するにはどうすれば良いのでしょうか?

  • 私の作品はパクリですか

    高校2年美術部です。 受験前最後の作品作りを始めようとラフを描きました。最後だから自分の好きな要素を全部詰め込もうと思って考えたのでラフの時点でめちゃめちゃ気に入る感じにできました。 しかし、ラフ完成したあとで、それが後輩が去年描いた絵に共通しているところが沢山あるように感じてしまいました…。 ラフ描いてる間は本当に気づきませんでしたし、もちろん真似をしようとも参考にしようとも思っていませんでした。部室から離れた場所に掲示してあって、今の今まで忘れていたくらいです。今日たまたまその場所を通りかかって久しぶりに後輩の絵を目にしたら……という経緯です。 もしこのラフで作品作ったら、端からみたらパクリっぽいですか?変えた方がいいですか? 悩むなら自分が変えればいいという話ではあるのですが、最初に述べた通りキャラの顔も絵の構図も自分の「好き」の全部詰めで描いたので、正直変えたくないのが本音です…。