Skip to content

Commit 2480161

Browse files
committed
fixed rating
1 parent a7b193a commit 2480161

File tree

8 files changed

+71
-34
lines changed

8 files changed

+71
-34
lines changed

client/client_socket.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,7 @@ void client_processor::process() {
4949
emit run_change_skin(query.user().skin());
5050
break;
5151
case ChitChatMessage::Query_FeedbackType_SCORE_CHANGED:
52-
// emit run_score_changed(query.)
53-
// TODO
52+
// e
5453
break;
5554
case ChitChatMessage::Query_FeedbackType_DATABASE_ERROR:
5655
emit run_error();
@@ -60,5 +59,8 @@ void client_processor::process() {
6059
case ChitChatMessage::Query_FeedbackType_NEW_USER_CONNECTED:
6160
emit run_connect_roommate(query);
6261
break;
62+
case ChitChatMessage::Query_FeedbackType_SCORE:
63+
emit run_change_score(query.user().name(), query.score(),
64+
query.game_name());
6365
}
6466
}

client/client_socket.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ class client_processor : public network::query_processor {
5353
void run_connect_roommate(ChitChatMessage::Query);
5454

5555
void run_change_skin(const std::string &);
56+
57+
void run_change_score(const std::string, int, const std::string);
5658
};
5759

5860
#endif // CLIENT_SOCKET_H

client/game_selection.h

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class Q_DECL_IMPORT game_selection : public QWidget {
1717

1818
public:
1919
explicit game_selection(QWidget *parent = nullptr);
20+
rating games_rating;
2021

2122
~game_selection() override;
2223

@@ -30,13 +31,7 @@ private slots:
3031

3132
void start_game(const std::string &name);
3233

33-
<<<<<<< HEAD
3434
void send_score(int score, std::string game_name);
35-
=======
36-
void send_score(int score, std::string game_name) {
37-
emit run_send_score(score, game_name);
38-
}
39-
>>>>>>> 5403007bbcd7f989db28212db7060cae62b4e951
4035

4136
signals:
4237
void game_chosen(const std::string &name);
@@ -46,7 +41,6 @@ private slots:
4641
private:
4742
Ui::game_selection *ui;
4843
QLibrary *game = nullptr;
49-
rating games_rating;
5044
};
5145

5246
#endif // GAME_SELECTION_H

client/main_window.cpp

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ void main_window::connect_with_room(const ChitChatMessage::Query &data) {
139139

140140
current_user.user_sprite->setFlag(QGraphicsItem::ItemIsFocusable);
141141
current_user.user_sprite->setFocus();
142+
update_rating();
142143
}
143144

144145
void main_window::user_changed_position(const std::string &name, int x, int y) {
@@ -151,6 +152,7 @@ void main_window::roommate_disconnect(const std::string &roommate_name) {
151152
users_in_the_room[roommate_name].user_sprite->name_display);
152153
scene->removeItem(users_in_the_room[roommate_name].user_sprite);
153154
users_in_the_room.erase(roommate_name);
155+
update_rating();
154156
}
155157

156158
void main_window::roommate_connect(
@@ -161,6 +163,7 @@ void main_window::roommate_connect(
161163
users_in_the_room.insert({u.get_name(), u});
162164
scene->addItem(u.user_sprite);
163165
scene->addItem(u.user_sprite->name_display);
166+
update_rating();
164167
}
165168

166169
void main_window::show_current_sprite() {
@@ -189,11 +192,35 @@ void main_window::send_skin(const std::string &skin) {
189192
}
190193

191194
void main_window::send_score(int score, std::string game_name) {
192-
auto q = current_user.serialize(
193-
ChitChatMessage::Query_RequestType_GET_SCORE);
195+
auto q =
196+
current_user.serialize(ChitChatMessage::Query_RequestType_GET_SCORE);
194197
q.set_game_name(game_name);
195198
q.set_score(score);
196199
run_send_request(q);
200+
update_rating();
201+
}
202+
203+
void main_window::update_rating() {
204+
scene->choose_game.games_rating.arkanoid_rating.clear();
205+
scene->choose_game.games_rating.hangman_rating.clear();
206+
207+
for (auto &x : users_in_the_room) {
208+
auto q = x.second.serialize(ChitChatMessage::Query::RequestType::
209+
Query_RequestType_GET_SCORE);
210+
q.set_game_name("hangman");
211+
emit run_send_request(q);
212+
q.set_game_name("arkanoid");
213+
emit run_send_request(q);
214+
}
215+
216+
auto q = current_user.serialize(
217+
ChitChatMessage::Query::RequestType::Query_RequestType_GET_SCORE);
218+
q.set_game_name("hangman");
219+
emit run_send_request(q);
220+
q.set_game_name("arkanoid");
221+
emit run_send_request(q);
222+
223+
scene->choose_game.games_rating.update_rating();
197224
}
198225

199226
void main_window::set_user_skin(const std::string &skin) {
@@ -224,8 +251,8 @@ void main_window::on_change_avatar_button_clicked() {
224251
text->setPen(avatar_pen);
225252

226253
std::vector<std::string> characters = {
227-
"finn", "gambol", "miku", "mushroom", "rafael",
228-
"sonic", "stormtroopers", "kermit", "pikachu"};
254+
"finn", "gambol", "miku", "mushroom", "rafael",
255+
"sonic", "stormtroopers", "kermit", "pikachu"};
229256
for (int i = 0; i < 9; i++) {
230257
auto *skin = new sprite_for_choice(characters[i]);
231258
connect(skin, SIGNAL(add_curren_sprite()), this,
@@ -271,5 +298,6 @@ void main_window::initialize_user(client_user &u) {
271298
u.user_sprite->change_skin(u.get_skin());
272299
}
273300
void main_window::terminate() {
274-
emit run_send_request(current_user.serialize(ChitChatMessage::Query_RequestType_DEBUG_TERMINATE));
301+
emit run_send_request(current_user.serialize(
302+
ChitChatMessage::Query_RequestType_DEBUG_TERMINATE));
275303
}

client/main_window.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ class main_window : public QMainWindow {
3636
model *current_session = nullptr;
3737

3838
void set_user_sprite();
39+
room *scene;
3940

4041
~main_window() override;
4142

@@ -81,16 +82,17 @@ private slots:
8182
void send_skin(const std::string &skin);
8283

8384
void send_score(int score, std::string game_name);
84-
;
85+
86+
void update_rating();
8587

8688
void terminate();
8789

8890
private:
8991
Ui::main_window *ui;
90-
room *scene;
92+
9193
QGraphicsView *view;
9294

93-
QPushButton *btn; //убрать потом
95+
QPushButton *btn;
9496

9597
void initialize_user(client_user &u);
9698

@@ -100,4 +102,5 @@ private slots:
100102
QPen pen;
101103
QBrush brush;
102104
};
105+
103106
#endif // MAIN_WINDOW_H

client/rating.cpp

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,23 @@
33

44
rating::rating(QWidget *parent) : QWidget(parent), ui(new Ui::rating) {
55
ui->setupUi(this);
6+
this->setWindowTitle("ChitChat");
7+
move(QGuiApplication::screens().at(0)->geometry().center() -
8+
frameGeometry().center());
69
}
710

811
rating::~rating() {
912
delete ui;
1013
}
1114

12-
void rating::initilize_users(std::vector<std::string> &users) {
13-
current_users.clear();
14-
for (auto &x : users) {
15-
current_users.push_back(x);
16-
}
17-
}
18-
1915
void rating::on_back_to_room_button_clicked() {
2016
this->hide();
2117
}
2218

2319
void rating::update_rating() {
24-
hangman_rating.clear();
25-
arkanoid_rating.clear();
2620
sort(hangman_rating.begin(), hangman_rating.end());
2721
sort(arkanoid_rating.begin(), arkanoid_rating.end());
22+
2823
std::string hangman_names = "";
2924
std::string hangman_scores = "";
3025
std::string arkanoid_names = "";

client/rating.h

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
#ifndef RATING_H
22
#define RATING_H
33

4+
#include <client_user.h>
45
#include <QWidget>
56
#include <algorithm>
7+
#include <map>
68
#include <string>
79
#include <vector>
810

@@ -17,20 +19,29 @@ class rating : public QWidget {
1719
explicit rating(QWidget *parent = nullptr);
1820
void update_rating();
1921

22+
std::vector<std::pair<int, std::string>> hangman_rating;
23+
std::vector<std::pair<int, std::string>> arkanoid_rating;
24+
2025
~rating();
2126

2227
private slots:
2328

24-
void initilize_users(std::vector<std::string> &users);
25-
2629
void on_back_to_room_button_clicked();
2730

31+
void change_score(const std::string &name,
32+
int score,
33+
const std::string &game) {
34+
qDebug() << "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" << game.c_str();
35+
if (game == "hangman") {
36+
hangman_rating.push_back({score, name});
37+
}
38+
if (game == "arkanoid") {
39+
arkanoid_rating.push_back({score, name});
40+
}
41+
};
42+
2843
private:
2944
Ui::rating *ui;
30-
31-
std::vector<std::string> current_users;
32-
std::vector<std::pair<int, std::string>> hangman_rating;
33-
std::vector<std::pair<int, std::string>> arkanoid_rating;
3445
};
3546

3647
#endif // RATING_H

client/view.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,10 @@ view::view() {
6969
connect(&current_session.processor, SIGNAL(run_change_skin(std::string)),
7070
&main_process.current_user, SLOT(change_skin(std::string)));
7171

72-
connect(&current_session.processor, SIGNAL(run_change_skin(std::string)),
73-
&main_process.current_user, SLOT(change_skin(std::string)));
72+
connect(&current_session.processor,
73+
SIGNAL(run_change_score(std::string, int, std::string)),
74+
&main_process.scene->choose_game.games_rating,
75+
SLOT(change_score(std::string, int, std::string)));
7476
}
7577

7678
void view::start() {

0 commit comments

Comments
 (0)