コード例 #1
0
ファイル: DDetailScore.cpp プロジェクト: skyser2003/mighty40
static void format_state( int k, CString* pStr )
{
	if ( k == 0 )	// 2마
	pStr->Format( _T("%d승%d패\n\n%d승%d패"),
		LOWORD(Mo()->anPlayerState[k][0]),
		HIWORD(Mo()->anPlayerState[k][0]),
		LOWORD(Mo()->anPlayerState[k][2]),
		HIWORD(Mo()->anPlayerState[k][2]) );
	else
	pStr->Format( _T("%d승%d패\n%d승%d패\n%d승%d패"),
		LOWORD(Mo()->anPlayerState[k][0]),
		HIWORD(Mo()->anPlayerState[k][0]),
		LOWORD(Mo()->anPlayerState[k][1]),
		HIWORD(Mo()->anPlayerState[k][1]),
		LOWORD(Mo()->anPlayerState[k][2]),
		HIWORD(Mo()->anPlayerState[k][2]) );
}
コード例 #2
0
ファイル: DStartUp.cpp プロジェクト: skyser2003/mighty40
// 핫 스팟을 클릭할 때 불리는 함수
// LPVOID 값이 0 이면 종료 (X자를 클릭) 요청
void DStartUp::OnClick( LPVOID pVoid )
{
	if ( m_nMode == 0 ) {	// 초기 메뉴

		// 이 다이얼로그가 pVoid==0 으로 닫히면
		// 초기메뉴일 경우 게임 종료임
		if ( !pVoid )
			Mw()->PostMessage( WM_CLOSE );

		switch ( (int)pVoid ) {

		case 0: DSB::OnClick(0); break;

		case 0xffffffff:
		case 1: {
			VERIFY( CreateOnePlayerGame() );
			break;
		}
		case 2:
			(new DStartUp(m_pBoard))->Create( 1 );
			DSB::OnClick(0); break;
			break;
		case 3:
			(new DAbout(m_pBoard))->Create();
			break;
		}
	}
	else {	// 멀티플레이어 메뉴

		// 이 다이얼로그가 pVoid==0 으로 닫히면
		// 초기 메뉴를 호출
		if ( !pVoid )
			(new DStartUp(m_pBoard))->Create( 0 );

		switch ( (int)pVoid ) {

		case 0: DSB::OnClick(0); break;

		case 0xffffffff:
		case 1:		// 서버가 됨
			Ib()->ShowChat();	// 채팅창 표시
			(new DConnect(m_pBoard))->Create( 0, Mo()->rule.nPlayerNum, false );
			DSB::OnClick(0);
			break;
		case 2:		// 다른 곳으로 접속
			Ib()->ShowChat();	// 채팅창 표시
			(new DConnecting(m_pBoard))->Create();
			DSB::OnClick(0);
			break;
		case 3:		// Mighty.Net
			break;
		}
	}
}
コード例 #3
0
ファイル: DDetailScore.cpp プロジェクト: skyser2003/mighty40
void DDetailScore::OnResetscore() 
{
	if ( AfxMessageBox( _T("지금까지 쌓아왔던 전적을 삭제하겠습니까?"),
					MB_YESNO | MB_ICONQUESTION )
		== IDYES ) {

		for ( int i = 0; i < MAX_PLAYERS - 1; i++ ) {
			for ( int j = 0; j < 3; j++ )
				Mo()->anPlayerState[i][j] = 0;
			format_state( i, &m_sScore[i] );
			SetDlgItemText( IDC_SCORE1 + i, m_sScore[i] );
		}
	}
}
コード例 #4
0
ファイル: phasePair.C プロジェクト: GJOMAA/OpenFOAM-dev
Foam::tmp<Foam::volScalarField> Foam::phasePair::Ta() const
{
    return Re()*pow(Mo(), 0.23);
}
コード例 #5
0
ファイル: DStartUp.cpp プロジェクト: skyser2003/mighty40
// 현재 옵션에 기초해서 1인용 마이티 MFSM 을 생성(new)한다
// AI 파일 로드 실패 시 에러 DSB 를 띄우고
// 0 을 리턴한다
bool DStartUp::CreateOnePlayerGame()
{
	int i;

	int nPlayers = Mo()->rule.nPlayerNum;

	CPlayer* apPlayers[MAX_CONNECTION];

	// Human Player 생성
	apPlayers[0] = new CPlayerHuman(
		0, Mo()->aPlayer[0].sName, *m_pBoard );

	// AI Players 생성
	bool bFailed = false;
	CString sFailedDLL;
	for ( i = 1; i < nPlayers; i++ )
	{
		CPlayerMai* pPlayer = new CPlayerMai(
			i, Mo()->aPlayer[i].sName, *m_pBoard,
			Mo()->aPlayer[i].sAIDLL, Mo()->aPlayer[i].sSetting );
		apPlayers[i] = pPlayer;
		if ( !pPlayer->IsDLLWorking() ) {
			bFailed = true;
			sFailedDLL = Mo()->aPlayer[i].sAIDLL;
		}
	}
	// Dummy Players 생성
	for ( ; i < MAX_CONNECTION; i++ )
	{
		apPlayers[i] = new CPlayerDummy(i, *m_pBoard);
	}

	// 돈을 적당히 준다
	for ( int j = 0; j < nPlayers; j++ )
		apPlayers[j]->SetMoney( BASE_MONEY );

	// 이제 SetMFSM 을 하는 순간 this 를 비롯한 모든 DSB 가 사라진다
	// 경고 메시지를 띄우기 위해 m_pBoard 를 보관하자
	CBoardWrap* pBoard = m_pBoard;

	// 새로운 MFSM 을 생성한다
	CMFSM* pMFSM = new CMFSM( Mo()->rule.Encode(), apPlayers );
	pMFSM->Init( 0 );

	m_pBoard->SetMFSM(pMFSM);

	// DLL 로드가 실패했을 때 경고 메시지를 준다
	if ( bFailed && !sFailedDLL.IsEmpty() ) {

		LPCTSTR asLine[8];
		asLine[0] = _T("다음의 AI DLL 을 읽는데 실패했습니다");
		asLine[1] = _T("");
		asLine[2] = sFailedDLL;
		asLine[3] = _T("");
		asLine[4] = _T("옵션 대화상자의 AI 탭에서 이 파일의");
		asLine[5] = _T("경로를 다시 확인하세요");
		asLine[6] = _T("");
		asLine[7] = _T("임시로 기본 AI 를 읽어들입니다");
		DMessageBox* pMB = new DMessageBox(pBoard);	// 위의 pBoard 를 사용
		if ( Mo()->bUseSound ) MessageBeep( MB_ICONEXCLAMATION );
		pMB->Create( true, 8, asLine );
	}

	return true;
}