Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Linq;
- using System.Collections.Generic;
- namespace _01._Bombs
- {
- class Program
- {
- static void Main(string[] args)
- {
- int n = int.Parse(Console.ReadLine());
- char[,] matrix = new char[n, n];
- int snakeRow = 0;
- int snakeCol = 0;
- int snakeEatCount = 0;
- bool isValid = true;
- for (int row = 0; row < n; row++)
- {
- char[] command = Console.ReadLine().ToCharArray();
- for (int col = 0; col < n; col++)
- {
- matrix[row, col] = command[col];
- if(matrix[row, col] == 'S')
- {
- snakeRow = row;
- snakeCol = col;
- break;
- }
- }
- }
- string cmd = Console.ReadLine();
- while (true)
- {
- if(cmd == "up")
- {
- int snakecurrRow = snakeRow;
- int snakeCurrCol = snakeCol;
- if(IsValidCell(--snakeRow, snakeCol, n))
- {
- if(matrix[snakeRow, snakeCol] == '-')
- {
- matrix[snakecurrRow, snakeCurrCol] = '.';
- matrix[snakeRow, snakeCol] = 'S';
- }
- else if(matrix[snakeRow, snakeCol] == '*')
- {
- snakeEatCount++;
- matrix[snakecurrRow, snakeCurrCol] = '.';
- matrix[snakeRow, snakeCol] = 'S';
- }
- else if(matrix[snakeRow, snakeCol] == 'B')
- {
- matrix[snakecurrRow, snakeCurrCol] = '.';
- matrix[snakeRow, snakeCol] = '.';
- for (int row = 0; row < n; row++)
- {
- for (int col = 0; col < n; col++)
- {
- if(matrix[row, col] == 'B')
- {
- snakeRow = row;
- snakeCol = col;
- break;
- }
- }
- }
- matrix[snakeRow, snakeCol] = 'S';
- }
- }
- else
- {
- matrix[snakecurrRow, snakeCurrCol] = '.';
- isValid = false;
- break;
- }
- }
- else if(cmd == "down")
- {
- int snakecurrRow = snakeRow;
- int snakeCurrCol = snakeCol;
- if (IsValidCell(++snakeRow, snakeCol, n))
- {
- if (matrix[snakeRow, snakeCol] == '-')
- {
- matrix[snakecurrRow, snakeCurrCol] = '.';
- matrix[snakeRow, snakeCol] = 'S';
- }
- else if (matrix[snakeRow, snakeCol] == '*')
- {
- snakeEatCount++;
- matrix[snakecurrRow, snakeCurrCol] = '.';
- matrix[snakeRow, snakeCol] = 'S';
- }
- else if (matrix[snakeRow, snakeCol] == 'B')
- {
- matrix[snakecurrRow, snakeCurrCol] = '.';
- matrix[snakeRow, snakeCol] = '.';
- for (int row = 0; row < n; row++)
- {
- for (int col = 0; col < n; col++)
- {
- if (matrix[row, col] == 'B')
- {
- snakeRow = row;
- snakeCol = col;
- break;
- }
- }
- }
- matrix[snakeRow, snakeCol] = 'S';
- }
- }
- else
- {
- matrix[snakecurrRow, snakeCurrCol] = '.';
- isValid = false;
- break;
- }
- }
- else if(cmd == "right")
- {
- int snakecurrRow = snakeRow;
- int snakeCurrCol = snakeCol;
- if (IsValidCell(snakeRow, ++snakeCol, n))
- {
- if (matrix[snakeRow, snakeCol] == '-')
- {
- matrix[snakecurrRow, snakeCurrCol] = '.';
- matrix[snakeRow, snakeCol] = 'S';
- }
- else if (matrix[snakeRow, snakeCol] == '*')
- {
- snakeEatCount++;
- matrix[snakecurrRow, snakeCurrCol] = '.';
- matrix[snakeRow, snakeCol] = 'S';
- }
- else if (matrix[snakeRow, snakeCol] == 'B')
- {
- matrix[snakecurrRow, snakeCurrCol] = '.';
- matrix[snakeRow, snakeCol] = '.';
- for (int row = 0; row < n; row++)
- {
- for (int col = 0; col < n; col++)
- {
- if (matrix[row, col] == 'B')
- {
- snakeRow = row;
- snakeCol = col;
- }
- }
- }
- matrix[snakeRow, snakeCol] = 'S';
- }
- }
- else
- {
- matrix[snakecurrRow, snakeCurrCol] = '.';
- isValid = false;
- break;
- }
- }
- else if(cmd == "left")
- {
- int snakecurrRow = snakeRow;
- int snakeCurrCol = snakeCol;
- if (IsValidCell(snakeRow, --snakeCol, n))
- {
- if (matrix[snakeRow, snakeCol] == '-')
- {
- matrix[snakecurrRow, snakeCurrCol] = '.';
- matrix[snakeRow, snakeCol] = 'S';
- }
- else if (matrix[snakeRow, snakeCol] == '*')
- {
- snakeEatCount++;
- matrix[snakecurrRow, snakeCurrCol] = '.';
- matrix[snakeRow, snakeCol] = 'S';
- }
- else if (matrix[snakeRow, snakeCol] == 'B')
- {
- matrix[snakecurrRow, snakeCurrCol] = '.';
- matrix[snakeRow, snakeCol] = '.';
- for (int row = 0; row < n; row++)
- {
- for (int col = 0; col < n; col++)
- {
- if (matrix[row, col] == 'B')
- {
- snakeRow = row;
- snakeCol = col;
- break;
- }
- }
- }
- matrix[snakeRow, snakeCol] = 'S';
- }
- }
- else
- {
- matrix[snakecurrRow, snakeCurrCol] = '.';
- isValid = false;
- break;
- }
- }
- if (snakeEatCount == 10)
- {
- break;
- }
- cmd = Console.ReadLine();
- }
- if(snakeEatCount == 10)
- {
- Console.WriteLine("You won! You fed the snake.");
- Console.WriteLine($"Food eaten: {snakeEatCount}");
- for (int row = 0; row < n; row++)
- {
- for (int col = 0; col < n; col++)
- {
- Console.Write(matrix[row, col]);
- }
- Console.WriteLine();
- }
- }
- else if (!isValid)
- {
- Console.WriteLine("Game over!");
- Console.WriteLine($"Food eaten: {snakeEatCount}");
- for (int row = 0; row < n; row++)
- {
- for (int col = 0; col < n; col++)
- {
- Console.Write(matrix[row, col]);
- }
- Console.WriteLine();
- }
- }
- }
- private static bool IsValidCell(int snakeRow, int snakeCol, int n)
- {
- return snakeCol >= 0 && snakeCol < n && snakeRow >= 0 && snakeRow < n;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment