-
Notifications
You must be signed in to change notification settings - Fork 0
/
TextDisplay.cc
92 lines (76 loc) · 2.17 KB
/
TextDisplay.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
//
// textDisplay.cpp
// test
//
// Created by Wang Annan on 2016-11-20.
// Copyright © 2016 Wang Annan. All rights reserved.
//
#include "TextDisplay.h"
#include "player.h"
#include <iostream>
#include <iomanip>
using namespace std;
// TextDisplay constructor
TextDisplay::TextDisplay(const int &row, const int &col):
row{row}, col{col}, pc{nullptr}, Action{""} {
theDisplay.resize(row, vector <string> (col, " "));
}
// TextDisplay destructor
TextDisplay::~TextDisplay() {
}
// set the player to be binded to the TextDisplay
void TextDisplay::setPc(const player *pc) {
this->pc = pc;
}
// get the player
const player * TextDisplay::getPc() const{
return pc;
}
// TextDisplay notify to change the position to be the char type
void TextDisplay::notify(const int &row, const int &col, const string &type) {
theDisplay[row][col] = type;
}
// TextDisplay to get the Type according to row and col
string TextDisplay::getType(const int &row, const int &col) const{
return theDisplay[row][col];
}
// get the row of TextDisplay
int TextDisplay::getRow() const {
return row;
}
// get the col of TextDisplay
int TextDisplay::getCol() const {
return col;
}
// update the Action of the player
void TextDisplay::updateAct(const string &mssg) {
Action = Action + mssg;
}
// get the Action of TextDisplay
string TextDisplay::getAct() const{
return Action;
}
// reset the Action information
void TextDisplay::resetAct() {
Action = "";
}
// output overloading for displaying the grid
std::ostream &operator<<(std::ostream &out, const TextDisplay &td) {
const int row = td.getRow();
const int col = td.getCol();
const player *tempPc = td.getPc();
for (int r = 0; r < row; ++r) {
for (int c = 0; c < col; ++c) {
out << td.getType(r, c);
}
out << endl;
}
out << "Race: " << tempPc->getRace() << " Gold: " << tempPc->get_gold();
out << setw(50) << "floor " << tempPc->get_level() << endl;
out << "HP: " << tempPc->get_hp() << endl;
out << "Atk: " << tempPc->get_atk() << endl;
out << "Def: " << tempPc->get_def() << endl;
out << "Action: " << td.getAct() << endl;
out << "\r" ;
return out;
}