5#include "CoreMinimal.h"
19 Game(
const Settings& settings,
const IPositionRandomizerPtr& randomizer = MakeShared<PositionRandomizer>());
25 TSharedPtr<Grid>
grid()
const {
return m_grid; }
31 TSharedPtr<Snake>
snake()
const {
return m_snake; }
37 TSharedPtr<Food>
food()
const {
return m_food; }
44 void update(
float deltaSeconds,
const Input& input);
46 uint32 score()
const {
return m_score; }
48 float gameTime()
const {
return m_gameTime; }
50 void subscribeOnGameplayEvent(GameplayEventCallback callback);
53 const Settings c_settings;
54 TSharedPtr<Grid> m_grid;
55 TSharedPtr<Snake> m_snake;
56 TSharedPtr<Food> m_food;
58 float m_moveSeconds{0.0f};
59 bool m_gameOver{
false};
61 float m_gameTime{0.0f};
63 TArray<GameplayEventCallback> m_gameplayEventCallbacks;
66 bool updateTime(
float deltaSeconds);
67 bool died(
const Position& prevTailPosition)
const;
70 bool foodTaken()
const;
72 FORCEINLINE
void dispatchEvent(GameplayEvent Event);
TSharedPtr< Snake > snake() const
Definition: Game.h:31
TSharedPtr< Food > food() const
Definition: Game.h:37
TSharedPtr< Grid > grid() const
Definition: Game.h:25
Definition: SnakeGame.Build.cs:6