📄 hilow.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 + -