C언어 동전전지기 ver1,ver2
#include <iostream>
#include <ctime>
#include<string>
#include <fstream>
using namespace std;
Coin::Coin()
{
srand((unsigned)time(NULL));
face = rand()%2; // 동전 던지기 (0 혹은 1)
}
void Coin::flip() {face = rand()%2; } // 동전 던지기 (0 혹은 1)
void Coin::show_face()
{
if (face==0)
cout << "앞면 " << endl;
else
cout << "뒷면 " << endl;
}
int main()
{
Coin myCoin;
myCoin.flip(); // 동전 던지기
myCoin.show_face(); // 동전 앞면 혹은 뒷면 출력
}
*/
class Coin
{
private:
int face;
static int same; // 같은 면 횟수 저장하는 정적 멤버변수
public:
Coin(); // 생성자
void flip();
void show_face();
int getFace(); // 동전 앞면/ 혹은 뒷면 반환
static void setSame(); // 정적 멤버 함수 : 같은 면 횟수 증가
static int getSame(); // 정적 멤버 함수 : 같은 면 횟수 반환
};
int Coin::same=0; // 같은 면 정적멤버변수 0으로 초기화
Coin::Coin() { srand((unsigned)time(NULL)); face = rand()%2; }
void Coin::flip() { face = rand()%2; }
void Coin::show_face()
{
if (face==0)
cout << "앞면 " << endl;
else
cout << "뒷면 " << endl;
}
int Coin::getFace() { return face; }
void Coin::setSame() { same++; }
int Coin::getSame() {return same; }
// 두개의 동전 비교하여 같은 면이면 횟수 증가하는 함수 호출
void isSnakeFace(Coin *c1, Coin *c2)
{
int c_1,c_2;
c_1= c1->getFace();
c_2= c2->getFace();
if(c_1==c_2)
Coin::setSame();
}
int main()
{
Coin myCoin, yourCoin;
for (int i = 0; i <10; i++) { // 2개의 동전 10번 던지기
myCoin.flip();
yourCoin.flip();
isSnakeFace(&myCoin, &yourCoin); // 두개의 동전 비교
}
cout << Coin::getSame()<< endl; // 같은 면 횟수 출력
}