Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace _04.Balls
- {
- class Program
- {
- static void Main(string[] args)
- {
- // Изпит по "Основи на програмирането" – 2018
- //Задача 5.Кукерска маска
- //Да се напише програма, която прочита от конзолата цяло число n и чертае кукерска маска с размери като в примерите по - долу.Ширината на фигурата е(2 * n) + 2.
- //Вход
- //Входът е цяло, нечетно число n в интервала[5…59].
- //Изход:
- // Текстови редове, изобразяващи кукерска маска, точно както в примерите.
- /*
- ВХОД ИЗХОД ВХОД ИЗХОД
- 5 7
- /| |\ /| |\
- / | | \ / | | \
- / | | \ / | | \
- / | | \ / | | \
- ------------ / | | \
- | _ _ | / | | \
- | @ @ | ----------------
- | | | _ _ |
- | | | @ @ |
- | OO | | |
- | / \ | | |
- | |||| | | |
- \``````````/ | OO |
- \\````````// | / \ |
- \\\``````/// | |||| |
- \\\\````//// \``````````````/
- \\\\\``///// \\````````````//
- \\\\\\////// \\\``````````///
- \\\\````````////
- \\\\\``````/////
- \\\\\\````//////
- \\\\\\\``///////
- \\\\\\\\////////
- */
- // Решението на задача MASK (Кукерска маска) съм разделил на няколко части (етапи).
- // Разяснения относно промениливите които съм избрал и изборът им на именуване:
- //
- // например промениливата int numberSpace1FirstPart = n - 2;
- // numberSpace1FirstPart ----- > number = брой, Space = Празно пространство номер 1, FirstPart = от Първа част
- //
- // аналогично за int numberSpace2FirstPart = 0;
- // numberSpace2FirstPart ------> number = брой, Space = Празно пространство номер 2, FirstPart = от Първа част
- // Така пуснат кода с Visual Studio съвпада с решението на задачата, но Съдията дава 0/100.
- // Къде е грешката?
- // задачата в Съдията може да се тества тук https://judge.softuni.bg/Contests/Practice/Index/968#12
- int n = int.Parse(Console.ReadLine());
- int numberSpace1FirstPart = n - 2;
- string slash = "/";
- int numberSpace2FirstPart = 0;
- string tower = "| |";
- string backSlash = "\\";
- string border = "|";
- int numberSpace1ThirdPart = n / 3;
- string downdash = "_";
- int numberSpace2ThirdPart = ((2 * n) + 2) - 2 - (2 * numberSpace1ThirdPart) - 2;
- string mail = "@";
- int numberSpaceFifthPart = (2 * n) + 2 - 2;
- int numberSpace1SixthPart = (n - 1);
- string bigO = "O";
- string slashBackslash = "/ \\";
- int numberSpace1SeventhPart = (((n * 2) - 2) - 2) / 2;
- string borders = "||||";
- int numberSpace1EighthPart = (((n * 2) - 2) - 2) / 2;
- int numbersDotsNinthPart = n * 2;
- if (n % 2 == 0 || n<5 || n>59)
- {
- n = int.Parse(Console.ReadLine());
- }
- else
- {
- //Start firtsPart
- for (int rows = 0; rows < n - 1; rows++)
- {
- Console.WriteLine("{0}{1}{2}{3}{2}{4}", new string(' ', numberSpace1FirstPart), slash, new string(' ', numberSpace2FirstPart), tower, backSlash);
- numberSpace1FirstPart--;
- numberSpace2FirstPart++;
- }
- //End firstPart
- //Start secondPart
- Console.WriteLine(new string('-', (n * 2) + 2));
- //End SecondPart
- //Start thirdPart
- Console.WriteLine("{0}{1}{2}{3}{2}{1}{0}", border, new string(' ', numberSpace1ThirdPart), downdash, new string(' ', numberSpace2ThirdPart));
- //End thirdPart
- //Start fourthdart
- Console.WriteLine("{0}{1}{2}{3}{2}{1}{0}", border, new string(' ', numberSpace1ThirdPart), mail, new string(' ', numberSpace2ThirdPart));
- //End fourthdart
- //Start fifthPart
- for (int rows = 0; rows < (n / 2); rows++)
- {
- Console.WriteLine("{0}{1}{0}", border, new string(' ', numberSpaceFifthPart));
- }
- //End fifthPart
- //Start sixthPart
- Console.WriteLine("{0}{1}{2}{2}{1}{0}", border, new string(' ', numberSpace1SixthPart), bigO);
- //end sixthPart
- //Start seventhPart
- Console.WriteLine("{0}{1}{2}{1}{0}", border, new string(' ', numberSpace1SeventhPart), slashBackslash);
- //end seventhPart
- //Start eighthPart
- Console.WriteLine("{0}{1}{2}{1}{0}", border, new string(' ', numberSpace1SeventhPart), borders);
- //end eighthPart
- //Start ninthPart
- for (int rows = 0; rows < n + 1; rows++)
- {
- Console.WriteLine("{0}{1}{2}", new string('\\', rows + 1), new string('`', numbersDotsNinthPart), new string('/', rows + 1));
- numbersDotsNinthPart = numbersDotsNinthPart - 2;
- }
- //end ninthPart
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment