Ancient-Spider/蜘蛛纸牌/View.cpp
筱傑 a6666bcd52
提交源码
编译环境 VS2017
2018-09-24 12:54:34 +08:00

86 lines
1.8 KiB
C++

#include "View.h"
#include <iostream>
const char *CardTypeView[] = {
"黑桃",
"红心",
"梅花",
"方块",
};
const char *CardValueView[] = {
" A"," 2"," 3"," 4"," 5"," 6"," 7"," 8"," 9","10"," J"," Q"," K"
};
View::~View()
{
}
void View::ShowCard(bool isNull)
{
std::cout << (isNull ? " " : "XXXXXX");
}
void View::ShowCard(Card card)
{
std::cout << CardTypeView[card.GetType()] << CardValueView[card.GetValue()];
}
void View::ShowGame()
{
bool flag = true;
char lc = '[', rc = ']';
for (int level = 0; flag; ++level)
{
flag = false;
for (int i = 0; i < _Game.Scenes.size(); ++i)
{
if (_Game.PSelected.y == level && _Game.PSelected.x == i)
lc = rc = '*';
else if (_Game.PCurrent.y == level && _Game.PCurrent.x == i)
lc = '>', rc = '<';
else
lc = '[', rc = ']';
// 如果是还没翻开的槽
if (level < _Game.Scenes[i].GetHideLevel())
{
std::cout << lc;
ShowCard(false);
std::cout << rc;
flag = true;
}
// 否则如果是有牌的
else if (level < _Game.Scenes[i].Count())
{
std::cout << lc;
ShowCard(_Game.Scenes[i].GetCards()[level]);
std::cout << rc;
flag = true;
}
// 否则如果是空的槽
else if (level == 0 && _Game.Scenes[i].Count() == 0)
{
// 如果光标正在这个槽上,出现光标
if (_Game.PCurrent.y == level && _Game.PCurrent.x == i)
lc = '>', rc = '<';
else
lc = ' ', rc = ' ';
std::cout << lc;
ShowCard(true);
std::cout << rc;
}
// 其它的全部输出空
else
{
std::cout << ' ';
ShowCard(true);
std::cout << ' ';
}
}
std::cout << std::endl;
}
std::cout << "\n\n\n当前已经完成:" << _Game.SuccessCount << "\t剩余发牌次数:" << _Game.ReservedCount << "" << std::endl;
}