-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplayer.cpp
146 lines (130 loc) · 4.02 KB
/
player.cpp
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#include "player.hpp"
#include <bits/stdc++.h>
Player::Player(){
}
Player::Player(personal_data p, gamer_data g, login_data l){
p_data = p;
g_data = g;
l_data = l;
}
personal_data Player::get_personal_data(){
return p_data;
}
gamer_data Player::get_gamer_data(){
return g_data;
}
login_data Player::get_login_data(){
return l_data;
}
void Player::set_personal_data(personal_data p){
p_data = p;
}
void Player::set_gamer_data(gamer_data g){
g_data = g;
}
void Player::set_login_data(login_data l){
l_data = l;
}
void output_data(char output[], vector<Player> players){
ofstream fout(output);
for(int i = 0; i < players.size(); i++){
fout << players[i].get_personal_data().first_name << " " << players[i].get_personal_data().last_name << '\n';
fout << players[i].get_personal_data().age << '\n';
fout << players[i].get_gamer_data().IGN << '\n' << players[i].get_gamer_data().no_games << '\n';
for(int j = 0; j < players[i].get_gamer_data().no_games; j++)
fout << players[i].get_gamer_data().games[j] << '\n';
fout << players[i].get_login_data().email << '\n';
fout << players[i].get_login_data().username << '\n';
fout << players[i].get_login_data().password;
if(i < players.size() - 1)
fout << '\n';
}
fout.close();
}
map<string,bool> load_emails(vector<Player> database){
map<string,bool> mails;
for(int i = 0; i < database.size(); i++){
mails.insert(pair<string,int>(database[i].get_login_data().email, true));
}
return mails;
}
map<string,bool> load_users(vector<Player> database){
map<string,bool> users;
for(int i = 0; i < database.size(); i++){
users.insert(pair<string,int>(database[i].get_login_data().username, true));
}
return users;
}
void register_form(vector<Player>& database, map<string,bool> emails, map<string, bool> users){
printf("\nWelcome to the registration page!\n");
string email, user;
printf("Insert your email: ");
cin >> email;
if(emails[email]){
printf("Email already used!\n");
printf("Do you want to start again? [Yes/No]\n");
string choice;
cin >> choice;
if(choice == "Yes")
register_form(database, emails, users);
else
return;
}
printf("Insert your user: ");
cin >> user;
if(users[user]){
printf("User already used!\n");
printf("Do you want to start again? [Yes/No]\n");
string choice;
cin >> choice;
if(choice == "Yes")
register_form(database, emails, users);
else
return;
}
printf("Insert your password: ");
string password, secondtry;
cin >> password;
printf("Insert your password again: ");
cin >> secondtry;
if(password != secondtry){
printf("Passwords don't match!\n");
printf("Do you want to start again? [Yes/No]\n");
string choice;
cin >> choice;
if(choice == "Yes")
register_form(database, emails, users);
else
return;
}
Player to_add;
to_add.set_login_data({email, user, password});
string first_name, last_name;
int age;
printf("Insert your first name: ");
cin >> first_name;
printf("Insert your last name: ");
cin >> last_name;
printf("Insert your age: ");
cin >> age;
to_add.set_personal_data({first_name, last_name, age});
string IGN;
int no_games;
vector<string> games;
printf("Insert your IGN: ");
cin >> IGN;
printf("Insert the number of games you play: ");
cin >> no_games;
fgetc(stdin);
for(int i = 0; i < no_games; i++){
printf("Game #%d:\n", i);
char tmp[256];
fgets(tmp, 256, stdin);
tmp[strcspn(tmp, "\n")] = '\0';
games.push_back(string(tmp));
}
to_add.set_gamer_data({IGN, no_games, games});
database.push_back(to_add);
printf("Numarul de elemente din database: %ld\n", database.size());
printf("You have been registered!\n");
}