2人のプレイヤーが3回勝つまでじゃんけんをして、勝負がついたならそれまでの勝負の履歴を表示するプログラムを作成してください。ヘッダファイルとcppファイルで分けてください。答えてくれた方にはそれなりのお礼をします

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
けんせい

2人のプレイヤーが3回勝つまでじゃんけんをして、勝負がついたならそれまでの勝負の履歴を表示するプログラムを作成してください。ヘッダファイルとcppファイルで分けてください。答えてくれた方にはそれなりのお礼をします

#1

投稿記事 by けんせい » 5年前

2人のプレイヤーが3回勝つまでじゃんけんをして、勝負がついたならそれまでの勝負の履歴を表示するプログラムを作成してください。ヘッダファイルとcppファイルで分けてください。答えてくれた方にはそれなりのお礼をします

アバター
あたっしゅ
記事: 663
登録日時: 13年前
住所: 東京23区
連絡を取る:

Re: 2人のプレイヤーが3回勝つまでじゃんけんをして、勝負がついたならそれまでの勝負の履歴を表示するプログラムを作成してください。ヘッダファイルとcppファイルで分けてください。答えてくれた方にはそれなりのお礼をします

#2

投稿記事 by あたっしゅ » 5年前

irony.hpp

コード:

 
#include <iostream>

class TMain
{
public:
	TMain() {}
	void exec();
	~TMain() {}
};
 

irony.cpp

コード:

 
#include <iostream>
#include "irony.hpp"

void TMain::exec()
{
	std::cout << "2人のプレイヤーが3回勝つまでじゃんけんをして、勝負がついたならそれまでの勝負の履歴";
}

int main()
{
	TMain* main = new TMain();

	main->exec();
	delete main;
}
 
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

アバター
usao
記事: 1887
登録日時: 11年前

Re: 2人のプレイヤーが3回勝つまでじゃんけんをして、勝負がついたならそれまでの勝負の履歴を表示するプログラムを作成してください。ヘッダファイルとcppファイルで分けてください。答えてくれた方にはそれなりのお礼をします

#3

投稿記事 by usao » 5年前

それなりのお礼って何だよw
通常は「ありがとう」を1回書くところを3回書きますとか?
オフトピック
雰囲気的には,
Webカメラあたりで2人のプレイヤがじゃんけんする様子を撮影して
勝敗を自動判定して履歴を収集するようなものを目指す感じだろうか?

アバター
あたっしゅ
記事: 663
登録日時: 13年前
住所: 東京23区
連絡を取る:

Re: 2人のプレイヤーが3回勝つまでじゃんけんをして、勝負がついたならそれまでの勝負の履歴を表示するプログラムを作成してください。ヘッダファイルとcppファイルで分けてください。答えてくれた方にはそれなりのお礼をします

#4

投稿記事 by あたっしゅ » 5年前

ワイの回答に不満なら、「他の方、お願いします」とか、レスすればいいのに。
ワイのイメージとしては、

一人目の手を入力してください (G)グー (P)パー (C)チー: G
二人目の手を入力してください (G)グー (P)パー (C)チー: G
**** 引き分け ****
一人目の 0 勝 0 敗 1 引き分け

という感じでしょうか。
どうせ、課題の締め切りは過ぎているでしょうから、コミケが終わってから(2019 年になってから)、コードを書こうかな ?
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

アバター
usao
記事: 1887
登録日時: 11年前

Re: 2人のプレイヤーが3回勝つまでじゃんけんをして、勝負がついたならそれまでの勝負の履歴を表示するプログラムを作成してください。ヘッダファイルとcppファイルで分けてください。答えてくれた方にはそれなりのお礼をします

#5

投稿記事 by usao » 5年前

仕事でもないのに画像認識とかは,やっぱつれぇので,かわりにプレイヤーを2人用意した.
プレイヤー1はパーを出しやすいが,対するプレイヤー2はグーを出しにくい.
こいつは熱い勝負になりそうだぜ!

コード:

//じゃんけん用各種
enum HAND{  G=0, C=1, P=2 };    //グー,チョキ,パー
enum RESULT{    WIN=0, DRAW=1, LOSE=2   };
inline RESULT Judge( HAND a, HAND b )   //bに対するaの勝敗を判定
{   //考えるの面倒だから表引き
    static const RESULT R[] = { DRAW, WIN, LOSE,  LOSE, DRAW, WIN,  WIN, LOSE, DRAW };
    return R[ a*3 + b ];
}

//2人のプレイヤー
namespace
{
    std::mt19937 RND( std::random_device().operator()() );

    HAND Player1()
    {
        static const HAND H[4] = { G,C,P,P };
        return H[ std::uniform_int_distribution<int>( 0, 3 )( RND ) ];
    }

    HAND Player2()
    {
        HAND cond = ( HAND )std::uniform_int_distribution<int>( 0, 2 )( RND );
        return ( cond==G   ?   ( HAND )std::uniform_int_distribution<int>( 0, 2 )( RND )   :   cond );
    }
}
3本先取がどうの,というつまらない部分はまぁ適当にやればよくね?

コード:

int main(void)
{
    const char Hand[] = "GCP";
    const std::string ResultMsg[3] = { "P1 win", "draw", "P2 win" };

    unsigned int Counter[3] = { 0,0,0 };
    const unsigned int Thresh = 3;
    while( Counter[0]<Thresh && Counter[2]<Thresh )
    {
        auto h1 = Player1();
        auto h2 = Player2();
        auto j = Judge( h1, h2 );
        ++Counter[j];
        std::cout << Hand[h1] << " vs " << Hand[h2] << " ... " << ResultMsg[j] << std::endl;
    }
    std::cout << "---" << std::endl;
    for( int i=0; i<3; ++i ){   std::cout << "Num of " << ResultMsg[i] << " = " << Counter[i] << std::endl; }

    std::cin.ignore();
    return 0;
}
果たして「それなりのお礼」を書き込んでいただくに足るであろうか?

アバター
usao
記事: 1887
登録日時: 11年前

Re: 2人のプレイヤーが3回勝つまでじゃんけんをして、勝負がついたならそれまでの勝負の履歴を表示するプログラムを作成してください。ヘッダファイルとcppファイルで分けてください。答えてくれた方にはそれなりのお礼をします

#6

投稿記事 by usao » 5年前

補足:
ああ,「ヘッダとcppがどうの」という条件があるのだった.そうだな…

まず,A.cppを用意して,↑のコードを全部書いて,"main"だけを何か別に関数名に変える.
次に,A.h を用意して,前記名前を変えた関数の宣言を書く.

でいいか.

アバター
あたっしゅ
記事: 663
登録日時: 13年前
住所: 東京23区
連絡を取る:

Re: 2人のプレイヤーが3回勝つまでじゃんけんをして、勝負がついたならそれまでの勝負の履歴を表示するプログラムを作成してください。ヘッダファイルとcppファイルで分けてください。答えてくれた方にはそれなりのお礼をします

#7

投稿記事 by あたっしゅ » 5年前

.cpp ってのは、class を使えって意味では ?
ちゃんと親クラス作って、継承しないとw(
コミケ終わったらやりますよ。急ぎなら、
他の方に、まかせます)
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

返信

“C言語何でも質問掲示板” へ戻る