Conquer Chess
Chess and Starcraft combined
Loading...
Searching...
No Matches
user_input.h
Go to the documentation of this file.
1#ifndef USER_INPUT_H
2#define USER_INPUT_H
3
4#include "ccfwd.h"
5
6#include "user_input_type.h"
7#include "game_coordinate.h"
8#include "side.h"
10#include <SFML/Window/Event.hpp>
11
12#include <iosfwd>
13#include <random>
14#include <optional>
15
18{
19public:
20 explicit user_input(
22 const side player,
23 const std::optional<game_coordinate>& coordinat = {}
24 );
25 auto get_user_input_type() const noexcept { return m_user_input_type; }
26 auto& get_coordinat() const noexcept { return m_coordinat; }
27 auto get_player() const noexcept { return m_player; }
28
29private:
30
31 user_input_type m_user_input_type;
32
52 std::optional<game_coordinate> m_coordinat;
53
54 side m_player;
55};
56
59 const game_coordinate& coordinat,
60 const side player
61);
62
68
74
80
82
84
86
88 std::default_random_engine& rng_engine
89);
90
93 std::default_random_engine& rng_engine
94);
95
98 const side player_side,
100);
101
104 const side player_side,
106);
107
109void test_user_input();
110
111bool operator==(const user_input& lhs, const user_input& rhs) noexcept;
112std::ostream& operator<<(std::ostream& os, const user_input& a) noexcept;
113
114#endif // USER_INPUT_H
115
An exact coordinate anywhere on the board.
Definition game_coordinate.h:32
A user input.
Definition user_input.h:18
auto get_user_input_type() const noexcept
Definition user_input.h:25
auto & get_coordinat() const noexcept
Definition user_input.h:26
auto get_player() const noexcept
Definition user_input.h:27
physical_controller_type
The type of controller.
Definition physical_controller_type.h:15
side
The side the player/piece is on.
Definition side.h:11
bool operator==(const user_input &lhs, const user_input &rhs) noexcept
Definition user_input.cpp:239
user_input get_user_input_to_do_action_1(const side player_side, const physical_controller_type t)
Create the user inputs to do action_1 at the square at the cursor.
Definition user_input.cpp:126
user_input create_press_down_action(const side player)
Definition user_input.cpp:60
user_input create_press_left_action(const side player)
Definition user_input.cpp:65
std::ostream & operator<<(std::ostream &os, const user_input &a) noexcept
Definition user_input.cpp:247
user_input create_press_up_action(const side player)
Definition user_input.cpp:87
user_input get_user_input_to_select(const side player_side, const physical_controller_type t)
Create the user inputs to select the square at the cursor.
Definition user_input.cpp:141
user_input create_press_lmb_action(const side player)
Do LMB action on the square where the player's cursor is.
Definition user_input.cpp:70
user_input create_random_user_input(std::default_random_engine &rng_engine)
Definition user_input.cpp:92
user_input create_press_action_3(const side player)
Definition user_input.cpp:50
user_input create_press_rmb_action(const side player)
Definition user_input.cpp:82
user_input create_press_right_action(const side player)
Definition user_input.cpp:77
user_input create_press_action_2(const side player)
Definition user_input.cpp:45
user_input create_press_action_4(const side player)
Definition user_input.cpp:55
user_input create_useful_random_user_input(std::default_random_engine &rng_engine)
Less random, more likely to be useful.
Definition user_input.cpp:110
user_input create_mouse_move_action(const game_coordinate &coordinat, const side player)
The only user_input with a coordinat.
Definition user_input.cpp:30
void test_user_input()
Test the 'control_action' class and its free functions.
Definition user_input.cpp:157
user_input create_press_action_1(const side player)
Do action 1 with keyboard on the square where the player's cursor is.
Definition user_input.cpp:38
user_input_type
The action a user does.
Definition user_input_type.h:14