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

📄 hilow.cpp

📁 在坛子里经常能看到MFC编制的GUI游戏,功能强大,界面美观,人机交互便利等优点是控制台程序是无可比拟的.但对于刚初步了解 C/C++的朋友们是无法短期内能学会编写MFC游戏的。于是小弟采用 Win3
💻 CPP
字号:
// HiLow.cpp: implementation of the HiLow class.
//
//////////////////////////////////////////////////////////////////////

#include "HiLow.h"
#include <time.h>
#include <stdlib.h>
#include <iostream.h>

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

HiLow::HiLow():usedIndex(0),playIndex(usedIndex)
{
  for(int i=0;i<52;i++)
	  container[i].Init(i);
}

HiLow::~HiLow()
{

}
void HiLow::Swap(unsigned char Sp1,unsigned char Sp2)
{
  if(Sp1==Sp2)
	  return;

   container[Sp1].SetID(Sp2);
   container[Sp1].Init(container[Sp1].GetID());
     
   container[Sp2].SetID(Sp1);
   container[Sp2].Init(container[Sp2].GetID());
   
   //another way
   //Card temp;
   //temp = container[nSwap1]
   //container[nSwap1] = container[nSwap2]
   //container[nSwap2] = temp

}
void HiLow::Shuffle()
{
  int nSwap1,nSwap2;
  
  srand((unsigned)time(NULL));
  for(int i=0;i<52;i++)
  {
     nSwap1 = rand()%52;
     nSwap2 = rand()%52;
     Swap(nSwap1,nSwap2);
	 
  }//for

  usedIndex = playIndex = 0;
  counter.ClearSequece();

}

void HiLow::PlaycardShow()
{
   cout<<"玩家持有牌依次为:"<<endl;
   
   for(int i=0;i<5;i++)
   {
       cout<<"\t";
	   container[playIndex+i].Show();
   }//for
   cout<<endl;
}

bool HiLow::Compare()
{
   unsigned char player = container[playIndex].GetID();
   unsigned char zhuangjia = container[usedIndex+1].GetID();

   if(player%13  != zhuangjia%13)//牌点不同
   {
     if(player%13 == 0)
	    return true;
	 if(zhuangjia%13 == 0)
		return false;

	 if(player%13<zhuangjia%13)
		return false;
	 else
		return true;
   }
   else//牌点相同
   {
     if(player/13<zhuangjia/13)
		 return false;
	 else
		 return true;
   }
}

void HiLow::ResultShow(bool bIsPlayerLarger)
{
  cout<<"\n庄家牌为";
  container[usedIndex+1].Show();
  cout<<"\t玩家牌为";
  container[playIndex].Show();
  if(bIsPlayerLarger)
	  cout<<"\n玩家牌大!";
  else
	  cout<<"\n庄家牌大!";
  
  playIndex++;
  usedIndex++;
}

void HiLow::Accumulate(bool bIsGuessWin)
{
   counter.Accumulate(bIsGuessWin);
}

bool HiLow::IsGameOver()
{
 if(playIndex%5==0&&playIndex!=0&&playIndex!=10&&playIndex!=20&&playIndex!=30&&playIndex!=40)//5,15,25,35,45
 {
	 counter.ClearSequece();
     playIndex = usedIndex+1;
	 return true;
 }
 else
     return false;

}

bool HiLow::IsSetOver()
{
   if(usedIndex>42)//51-42+1 = 10
	   return true;
   return false;
}

void HiLow::ScoreShow()
{
  counter.Show();
}

⌨️ 快捷键说明

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