Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- class Player{
- public:
- Player(const string& name = "");
- string GetName() const;
- Player* GetNext() const;
- void SetNext(Player* next);
- private:
- string m_Name;
- Player* m_pNext; //(ponteiro)aponta para o proximo jogador da lista
- };
- Player::Player(const string& name):
- m_Name(name),
- m_pNext(0)
- {}
- string Player::GetName() const{
- return m_Name;
- }
- Player* Player::GetNext() const{
- return m_pNext;
- }
- void Player::SetNext(Player* next){
- m_pNext = next;
- }
- class Lobby{
- friend ostream& operator <<(ostream& os, const Lobby& aLobby);
- public:
- Lobby();
- ~Lobby();
- void AddPlayer();
- void RemovePlayer();
- void Clear();
- private:
- Player* m_pHead;
- };
- Lobby::Lobby():
- m_pHead(0)
- {}
- Lobby::~Lobby(){
- Clear();
- }
- void Lobby::AddPlayer(){
- //cria um novo jogador
- cout << "Entre um nome de um jogador: ";
- string name;
- cin >> name;
- Player* pNewPlayer = new Player(name);
- //se a lista tiver vazia, faça o novo jogador ser a cabeça
- if(m_pHead == 0){
- m_pHead = pNewPlayer;
- }else{ //ou, ache o final da fila e add ele
- Player* pIter = m_pHead;
- while(pIter -> GetNext() != 0){
- pIter = pIter -> GetNext();
- }
- pIter -> SetNext(pNewPlayer);
- }
- }
- void Lobby::RemovePlayer(){
- if(m_pHead == 0){
- cout << "O Lobby esta vazio ninguém pra sair!\n";
- }else{
- Player* pTemp = m_pHead;
- m_pHead = m_pHead -> GetNext();
- delete pTemp;
- }
- }
- void Lobby::Clear(){
- while(m_pHead != 0){
- RemovePlayer();
- }
- }
- ostream& operator<<(ostream& os, const Lobby& aLobby){
- Player* pIter = aLobby.m_pHead;
- os << "\nAqui esta o Lobby: \n";
- if(pIter == 0){
- os << "O Lobby esta vazio.\n";
- }else{
- while(pIter != 0){
- os << pIter -> GetName() << endl;
- pIter = pIter -> GetName();
- }
- }
- return os;
- }
- int main(){
- Lobby myLobby;
- int choice;
- do{
- cout << myLobby;
- cout << "\nGAME LOBBY\n";
- cout << "0 - Saia do programa.\n";
- cout << "1 - Adicione o jogador ao lobby.\n";
- cout << "2 - Retire um jogador do lobby.\n";
- cout << "3 - Limpar lobby.\n";
- cout << endl << "Entre a escolha: ";
- cin >> choice;
- switch(choice){
- case 0: cout << "Ate mais.\n"; break;
- case 1: myLobby.AddPlayer(); break;
- case 2: myLobby.RemovePlayer(); break;
- case 3: myLobby.Clear(); break;
- default: cout << "Isso nao foi uma escolha valida.\n";
- }
- }while(choice != 0);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement