Skip to content

Commit

Permalink
Gravity Update #75
Browse files Browse the repository at this point in the history
  • Loading branch information
ZacharyPatten committed Dec 8, 2023
1 parent 18a8627 commit f91a6cf
Show file tree
Hide file tree
Showing 2 changed files with 263 additions and 113 deletions.
189 changes: 132 additions & 57 deletions Projects/Gravity/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -156,18 +156,18 @@
[
"█████████████████████████████████████████████████████████████████".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X█".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X█".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X█".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ● X█".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X█".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X█".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X█".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X█".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X█".ToCharArray(),
"█X X█".ToCharArray(),
"█X X█".ToCharArray(),
"█X X█".ToCharArray(),
"█X ● X█".ToCharArray(),
"█X X█".ToCharArray(),
"█X X X█".ToCharArray(),
"█X XXX X█".ToCharArray(),
"█X XXXXX X█".ToCharArray(),
"█X XXXXX X█".ToCharArray(),
"█X XXX X█".ToCharArray(),
"█X X X█".ToCharArray(),
"█X X█".ToCharArray(),
"█X @@@@@ X█".ToCharArray(),
"█X @@@@@ X█".ToCharArray(),
"█X @@@@@ X█".ToCharArray(),
Expand All @@ -176,6 +176,53 @@
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█████████████████████████████████████████████████████████████████".ToCharArray(),
],
[
"█████████████████████████████████████████████████████████████████".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█X X█".ToCharArray(),
"█X X█".ToCharArray(),
"█X X█".ToCharArray(),
"█X ● X█".ToCharArray(),
"█X X█".ToCharArray(),
"█X X█".ToCharArray(),
"█X X█".ToCharArray(),
"█X X█".ToCharArray(),
"█X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█X @@@@@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█X @@@@@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█X @@@@@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█████████████████████████████████████████████████████████████████".ToCharArray(),
],
[
"██████████████████████████████████████████████".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXX X█".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXX X█".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXX X█".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXX ● X█".ToCharArray(),
"█XXXXXXXXXXXXXXXXX X█".ToCharArray(),
"█XXXXXXXXXXXXXXX XXX█".ToCharArray(),
"█XXXXXXXXXXXXX XXXXX█".ToCharArray(),
"█XXXXXXXXXXX XXXXXXX█".ToCharArray(),
"█XXXXXXXXX XXXXXXXXX█".ToCharArray(),
"█XXXXXXX XXXXXXXXXXX█".ToCharArray(),
"█XXXXX XXXXXXXXXXXXX█".ToCharArray(),
"█XXX XXXXXXXXXXXXXXX█".ToCharArray(),
"█X XXXXXXXXXXXXXXXXX█".ToCharArray(),
"█X XXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█X XXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█X@@@@@ XXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█X@@@@@ XXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█X@@@@@ XXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"██████████████████████████████████████████████".ToCharArray(),
],
[
"█████████████████████████████████████████████████████████████████".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
Expand Down Expand Up @@ -250,12 +297,12 @@
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█X X█".ToCharArray(),
"█X ######### X█".ToCharArray(),
"█X ~ X█".ToCharArray(),
"█X ~ X█".ToCharArray(),
"█X ##### ~ X█".ToCharArray(),
"█X # ● # ~ X█".ToCharArray(),
"█X ##### ~ X█".ToCharArray(),
"█X ~ X█".ToCharArray(),
"█X ~ X█".ToCharArray(),
"█X ~ X█".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXX ~ X█".ToCharArray(),
"█X ~ X█".ToCharArray(),
"█X ~ X█".ToCharArray(),
Expand All @@ -268,6 +315,36 @@
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█████████████████████████████████████████████████████████████████".ToCharArray(),
],
[
"█████████████████████████████████████████████████████████".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█XXXXXXXXXX#####XXXXXXXXX#####XXXXXXXXX#####XXXXXXXXXXXX█".ToCharArray(),
"█XXXXXXXXXX ~X #X XX█".ToCharArray(),
"█XXXXXXXXXX ~X #X ● XX█".ToCharArray(),
"█XXXXXXXXXX XX█".ToCharArray(),
"█X@@@@@ ~X ~X ~XXXXXXXXXXX█".ToCharArray(),
"█X@@@@@ ~X ~X ~XXXXXXXXXXX█".ToCharArray(),
"█X@@@@@ ~X#####XXXXXXXXX~~~~~XXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█████████████████████████████████████████████████████████".ToCharArray(),
],
[
"██████████████████████████████████████████████████████████████████████".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█X@@@@@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█X@@@@@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█X@@@@@ XXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█X XXXXXXXXXXXXXXXXXX█".ToCharArray(),
"█X ~~~~~~~~~ XXXXXXXXXX█".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXX########## XXXX█".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX~~~~~~~~~ XXX█".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX######## XX█".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX~~~~~~~~ X█".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ● X█".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X█".ToCharArray(),
"█XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX█".ToCharArray(),
"██████████████████████████████████████████████████████████████████████".ToCharArray(),
],
];

Console.OutputEncoding = Encoding.UTF8;
Expand Down Expand Up @@ -335,7 +412,7 @@ void SleepAfterRender()
{
if (levels[level][i][j] is '@')
{
return (j + 1, i + 1);
return (j + 2, i + 1);
}
}
}
Expand Down Expand Up @@ -397,9 +474,9 @@ void Update()
{
switch (gravity)
{
case Direction.Up: velocity.Y--; break;
case Direction.Left: velocity.X--; break;
case Direction.Down: velocity.Y++; break;
case Direction.Up: velocity.Y--; break;
case Direction.Left: velocity.X--; break;
case Direction.Down: velocity.Y++; break;
case Direction.Right: velocity.X++; break;
}
updatesSinceGravityApplied = 0;
Expand All @@ -413,8 +490,8 @@ void Update()

int u = velocity.Y < 0 ? -velocity.Y : 0;
int l = velocity.X < 0 ? -velocity.X : 0;
int d = velocity.Y > 0 ? velocity.Y : 0;
int r = velocity.X > 0 ? velocity.X : 0;
int d = velocity.Y > 0 ? velocity.Y : 0;
int r = velocity.X > 0 ? velocity.X : 0;

if (velocity.Y < 0 && (gravity is Direction.Left && WallLeft() || gravity is Direction.Right && WallRight()))
{
Expand Down Expand Up @@ -599,26 +676,26 @@ void Update()

bool WallUp() =>
levels[level][PlayerPosition.Y - 2][PlayerPosition.X - 2] is '█' or '#' ||
levels[level][PlayerPosition.Y - 2][PlayerPosition.X - 1] is '█' or '#'||
levels[level][PlayerPosition.Y - 2][PlayerPosition.X] is '█' or '#' ||
levels[level][PlayerPosition.Y - 2][PlayerPosition.X - 1] is '█' or '#' ||
levels[level][PlayerPosition.Y - 2][PlayerPosition.X] is '█' or '#' ||
levels[level][PlayerPosition.Y - 2][PlayerPosition.X + 1] is '█' or '#' ||
levels[level][PlayerPosition.Y - 2][PlayerPosition.X + 2] is '█' or '#';

bool WallDown() =>
levels[level][PlayerPosition.Y + 2][PlayerPosition.X - 2] is '█' or '#' ||
levels[level][PlayerPosition.Y + 2][PlayerPosition.X - 1] is '█' or '#' ||
levels[level][PlayerPosition.Y + 2][PlayerPosition.X] is '█' or '#' ||
levels[level][PlayerPosition.Y + 2][PlayerPosition.X] is '█' or '#' ||
levels[level][PlayerPosition.Y + 2][PlayerPosition.X + 1] is '█' or '#' ||
levels[level][PlayerPosition.Y + 2][PlayerPosition.X + 2] is '█' or '#';

bool WallLeft() =>
levels[level][PlayerPosition.Y - 1][PlayerPosition.X - 3] is '█' or '#' ||
levels[level][PlayerPosition.Y][PlayerPosition.X - 3] is '█' or '#' ||
levels[level][PlayerPosition.Y][PlayerPosition.X - 3] is '█' or '#' ||
levels[level][PlayerPosition.Y + 1][PlayerPosition.X - 3] is '█' or '#';

bool WallRight() =>
levels[level][PlayerPosition.Y - 1][PlayerPosition.X + 3] is '█' or '#' ||
levels[level][PlayerPosition.Y][PlayerPosition.X + 3] is '█' or '#' ||
levels[level][PlayerPosition.Y][PlayerPosition.X + 3] is '█' or '#' ||
levels[level][PlayerPosition.Y + 1][PlayerPosition.X + 3] is '█' or '#';

void Render()
Expand Down Expand Up @@ -663,70 +740,70 @@ string[] RenderPlayerState()
(PlayerState.Sliding | PlayerState.Up | PlayerState.Right) or
(PlayerState.Sliding | PlayerState.Down | PlayerState.Left) =>
[
@"╭──╮ ",
@"╰╮ ╰╮",
@" ╰──╯",
"╭──╮ ",
"╰╮ ╰╮",
" ╰──╯",
],
(PlayerState.Sliding | PlayerState.Down | PlayerState.Right) or
(PlayerState.Sliding | PlayerState.Up | PlayerState.Left) =>
[
@" ╭──╮",
@"╭╯ ╭╯",
@"╰──╯ ",
" ╭──╮",
"╭╯ ╭╯",
"╰──╯ ",
],
(PlayerState.Squash | PlayerState.Up | PlayerState.Right) =>
[
@"╭───╮",
@"╰─╮ │",
@" ╰─╯",
"╭───╮",
"╰─╮ │",
" ╰─╯",
],
(PlayerState.Squash | PlayerState.Down | PlayerState.Right) =>
[
@" ╭─╮",
@"╭─╯ │",
@"╰───╯",
" ╭─╮",
"╭─╯ │",
"╰───╯",
],
(PlayerState.Squash | PlayerState.Up | PlayerState.Left) =>
[
@"╭───╮",
@"│ ╭─╯",
@"╰─╯ ",
"╭───╮",
"│ ╭─╯",
"╰─╯ ",
],
(PlayerState.Squash | PlayerState.Down | PlayerState.Left) =>
[
@"╭─╮ ",
@"│ ╰─╮",
@"╰───╯",
"╭─╮ ",
"│ ╰─╮",
"╰───╯",
],
(PlayerState.Squash | PlayerState.Up) =>
[
@"╭───╮",
@"╰───╯",
@" ",
"╭───╮",
"╰───╯",
" ",
],
(PlayerState.Squash | PlayerState.Down) =>
[
@" ",
@"╭───╮",
@"╰───╯",
" ",
"╭───╮",
"╰───╯",
],
(PlayerState.Squash | PlayerState.Right) =>
[
@" ╭─╮",
@" │ │",
@" ╰─╯",
" ╭─╮",
" │ │",
" ╰─╯",
],
(PlayerState.Squash | PlayerState.Left) =>
[
@"╭─╮ ",
@"│ │ ",
@"╰─╯ ",
"╭─╮ ",
"│ │ ",
"╰─╯ ",
],
_ =>
[
@"╭───╮",
@"│ │",
@"╰───╯",
"╭───╮",
"│ │",
"╰───╯",
],
};
}
Expand Down Expand Up @@ -767,15 +844,13 @@ internal enum Direction
Right = 1 << 3,
}

[Flags]
internal enum GameState
{
Default = 0,
Died = 1 << 0,
Won = 1 << 1,
}

[Flags]
internal enum PlayerState
{
Neutral = 0,
Expand Down
Loading

0 comments on commit f91a6cf

Please sign in to comment.