⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csimulator.cpp

📁 软件工程的大作业
💻 CPP
字号:
//**************************************************************************************
//
// Copyright    @2006 - 2007, All Rights Reserved.
//
// Filename:    CSimulator.h
//
// Author:      Yin Zhou
//
// Created:     04/07/2008
//
// Purpose:     Implemenation of CSimulator class
//              关于游戏模拟器类的具体实现
//
//***************************************************************************************

#include "stdafx.h"
#include <assert.h>
#include "CRule.h"
#include "CGroup.h"
#include "CSimulator.h"

//*********************************************************************************
//
// Function:            CSimulator::CSimulator 
//
// Author:              Yin Zhou
//
// Created:             04/20/2008
//
// Purpose:             Constructor
//
// Parameters:          None.
//
// Return:              None.
//
// Last Modified by :   Yin Zhou   
//
//*********************************************************************************
CSimulator::CSimulator() {
    int  i;

    m_group = new CGroup(100);

    for (i=0;i<= (int) OTHERS;i++) {
        m_typeCount[i] = 0;
    }

}

//*********************************************************************************
//
// Function:            CSimulator::~CSimulator 
//
// Author:              Yin Zhou
//
// Created:             04/20/2008
//
// Purpose:             Destructor
//
// Parameters:          None.
//
// Return:              None.
//
// Last Modified by :   Yin Zhou   
//
//*********************************************************************************
CSimulator::~CSimulator() {
    delete m_group;
}

//*********************************************************************************
//
// Function:            CSimulator::GetGameCount 
//
// Author:              Yin Zhou
//
// Created:             04/20/2008
//
// Purpose:             得到总局数
//
// Parameters:          None.
//
// Return:              模拟的总局数.
//
// Last Modified by :   Yin Zhou   
//
//*********************************************************************************
int CSimulator::GetGameCount() {
    return m_gameCount;
}

//*********************************************************************************
//
// Function:            CSimulator::SetGameCount 
//
// Author:              Yin Zhou
//
// Created:             04/20/2008
//
// Purpose:             count [IN] --- 设置的总局数
//
// Parameters:          总局数.
//
// Return:              None.
//
// Last Modified by :   Yin Zhou   
//
//*********************************************************************************
void CSimulator::SetGameCount(int count) {
    m_gameCount = count;
}

//*********************************************************************************
//
// Function:            CSimulator::Start 
//
// Author:              Yin Zhou
//
// Created:             04/20/2008
//
// Purpose:             开始模拟
//                      模拟器的总入口
//
// Parameters:          None.
//
// Return:              None.
//
// Last Modified by :   Yin Zhou   
//
//*********************************************************************************
void CSimulator::Start() {
    CSet     set1, set2;
    CGame  * game = NULL;
    int      i;
    int      result;
    SET_TYPE type;

    // 清理过去的统计记录
    for (i=0;i<= (int) OTHERS;i++) {
        m_typeCount[i] = 0;
    }

    for (i=0;i<m_gameCount;i++) {
        set1.Clear();
        set2.Clear();
        m_group->Dispatch(&set1);
        m_group->Dispatch(&set2);
        //printf("set1 :\n");

        set1.Display();
        //printf("set2 :\n");

        set2.Display();
        result = CRule::Compare(&set1, &set2);
        if (result > 0) {
            type = set1.GetType();
        }
        else if (result < 0) {
            type = set2.GetType();
        }
        else {
            ;
        }
        m_typeCount[type]++;
    }

    // 画结果统计图
    Draw();

}

//*********************************************************************************
//
// Function:            CSimulator::Statistics 
//
// Author:              Yin Zhou
//
// Created:             04/20/2008
//
// Purpose:             统计游戏结果
//
// Parameters:          None.
//
// Return:              None.
//
// Last Modified by :   Yin Zhou   
//
//*********************************************************************************
void CSimulator::Statistics() {
    
    
}

//*********************************************************************************
//
// Function:            CSimulator::Draw 
//
// Author:              Yin Zhou
//
// Created:             04/20/2008
//
// Purpose:             把统计结果作图
//
// Parameters:          None.
//
// Return:              None.
//
// Last Modified by :   Yin Zhou   
//
//*********************************************************************************
void CSimulator::Draw() {
    char *  typeName[] = {"SAME_COLOR", "SERIES", "SAME_NUMBER", "PAIR", "OTHERS" };
    int  i;

    for (i=0;i<= (int) OTHERS;i++) {
        printf("%s : %f \n", typeName[i], 100.0*m_typeCount[i]/m_gameCount);
    }
    fflush(stdout);
}

//*********************************************************************************
//
// Function:            CSimulator::GetTypeCount 
//
// Author:              Yin Zhou
//
// Created:             04/20/2008
//
// Purpose:             得到某一类型的赢局数
//
// Parameters:          setType [IN] --- 一手牌的类型.
//
// Return:              该类型的赢局数.
//
// Last Modified by :   Yin Zhou   
//
//*********************************************************************************
int CSimulator::GetTypeCount(int setType) {
    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -