View difference between Paste ID: TFYcKAL7 and hZm8c80A
SHOW: | | - or go back to the newest paste.
1
#include <iostream>
2
#include <vector>
3
#include <string>
4
#include <cstdlib>
5
6
using namespace std;
7
8
class Entity
9
    {
10
        private:
11
12
            string name;
13
            int health;
14
            int maxHealth;
15
            int damage;
16
        
17
        public:
18
19
            Entity(string entityName) 
20
            {
21
                name = entityName;
22
                maxHealth = 10;
23
                health = maxHealth;
24
                damage = 2;
25
            }
26
27
            string get_name() 
28
            {
29
                return name;
30
            }
31
32
            int get_health()
33
            {
34
                return health;
35
            }
36
37
            int get_max_health()
38
            {
39
                return maxHealth;
40
            }
41
42
            int get_damage()
43
            {
44
                return damage;
45
            }
46
47
            void lower_health(int value)
48
            {
49
                health -= value;
50
                if (health < 0)
51
                {
52
                    health = 0;
53
                }
54
            }
55
            void add_health(int value)
56
            {
57
                health += value;
58
                if (health > maxHealth)
59
                {
60
                    health = maxHealth;
61
                }
62
            }
63
    };
64
65
class Player : public Entity
66
{
67
    private:
68
69
        int metal;
70
        int oxygen;
71
72
    public:
73
74
        Player(string playerName) : Entity(playerName)
75
        {
76
            metal = 0;
77
            oxygen = 100;
78
        }
79
80
        Player() : Entity("John")
81
        {
82
83
        }
84
85
        int get_metal() 
86
        {
87
            return metal;
88
        }
89
90
        int get_oxygen() 
91
        {
92
            return oxygen;
93
        }
94
95
        void display_player_info()
96
        {
97
            cout << "Stan gracza" << endl;
98
            cout << "------------------------------------------------" << endl;
99
            cout << "Życie: " << get_health() << "/" << get_max_health() << endl;
100
            cout << "Atak: " << get_damage() << endl;
101
            cout << "Tlen: " << oxygen << "%" << endl;
102
            cout << "Metal: " << metal << "/50" << endl;
103
        }
104
105
        void rest()
106
        {
107
            cout << get_name() << " odpoczywa. Zużycie 2% tlenu." << endl << endl;
108
            lower_oxygen(2);
109
            add_health(5);
110
            display_player_info();
111
        }
112
113
        void lower_oxygen(int value)
114
        {
115
            oxygen -= value;
116
        }
117
118
        void add_oxygen(int value)
119
        {
120
            if(oxygen + value > 100)
121
            {
122
                oxygen = 100;
123
            }
124
            else
125
            {
126
                oxygen += value;
127
            }
128
        }
129
130
        void add_metal(int value)
131
        {
132
            metal += value;
133
        }
134
};
135
136
class Game
137
{
138
    private:
139
        
140
        Player player;
141
142
143
    public:
144
145
        Game(string playerName)
146
        {
147
            player = Player(playerName);
148
            cout << player.get_name() << endl;
149
        }
150
151
        void start_game() 
152
        {
153
            cout << "------------------------------------------------" << endl;
154
            cout << "Rozbiłeś się na księżycu!" << endl;
155
            cout << "Twoim zadaniem jest przetrwanie i zdobycie wystarczająco dużo surowców by zbudować statek do domu." << endl;
156
            cout << "Uważaj na zapasy swojego tlenu, bez niego nie możesz kontynuować gry." << endl ;
157
            cout << "Powodzenia " << player.get_name() << "!" << endl << endl;
158
159
            player.display_player_info();
160
161
            bool gameRunning = true;
162
            int playerChoice;
163
164
            while(gameRunning)
165
            {   
166
                print_main_menu();
167
                cout << "Wpisz numer: ";
168
                cin >> playerChoice;
169
170
                switch (playerChoice)
171
                {
172
                    case 1:
173
                        player.display_player_info();
174
                        break;
175
                    case 2:
176
                        player.rest();
177
                        break;
178
                    case 3:
179
                        search_resources();
180
                        if(player.get_health() <= 0)
181
                        {
182
                            cout << "Gracz przegrywa!" << endl;
183
                            cout << "Koniec gry! Spróbuj ponownie!" << endl;
184
                            gameRunning = false;
185
                        }
186
                        break;
187
                    case 4:
188
                        if(player.get_metal() >= 50)
189
                        {
190
                            cout << "Gracz wygrywa!" << endl;
191
                            cout << "Pomyślnie zbudowałeś statek i wydostałeś się z księżyca!" << endl;
192
                            cout << "Dzięki za gre!" << endl;
193
                        }
194
                        else
195
                        {
196
                            cout << "Nie masz wystarczająco dużo metalu by zbudować statek." << endl;
197
                        }
198
                        break;
199
                    case 0:
200
                        cout << "Koniec gry!" << endl;
201
                        gameRunning = false;
202
                        break;
203
                }
204
            }
205
        }
206
207
        void print_main_menu()
208
        {
209
            cout << endl << "Co chcesz zrobić?" << endl;
210
            cout << "------------------------------------------------" << endl;
211
            cout << "[1] Sprawdź swój stan." << endl;
212
            cout << "[2] Odpocznij." << endl;
213
            cout << "[3] Szukaj zasobów." << endl;
214
            if (player.get_metal() >= 50)
215
            {
216
                cout << "[4] Zbuduj statek." << endl;
217
            }
218
            cout << "[0] Skończ grę." << endl;
219
        }
220
}