using System.Collections.Generic;
public static class Program
public static void Main()
foreach (PC pc in DataFactory.GetPCs())
ConsoleFunctions.PrintPC(pc);
public string Name {get;set;}
public string CPU {get;set;}
public string GPU {get;set;}
public int PSU {get;set;}
public float Price {get;set;}
public int ScreenResolution {get;set;}
public int ScreenHertz {get;set;}
public string PcPartPickerLink {get;set;}
public bool isPCMR {get;set;}
public class Marioware : PC
public Marioware(string name, string cpu, string gpu, int psu, float price, int res, int hertz, string pcppLink)
PcPartPickerLink = pcppLink;
public class PlayStation : PC
public PlayStation(string name, string cpu, string gpu, int psu, float price, int res, int hertz, string pcppLink)
PcPartPickerLink = pcppLink;
public static class DataFactory
public static List<PC> GetPCs()
List<PC> returnList = new List<PC>();
returnList.Add(new Marioware("Budget", "Pentium G4560", "RX 560 2GB or GTX 1050 2GB", 400, 400, 1080, 60, "https://pcpartpicker.com/list/qpmxQV"));
returnList.Add(new Marioware("Medium", "Ryzen 7 1700", "RX 580 4GB", 550, 800, 1080, 100, "https://pcpartpicker.com/b/WFtgXL"));
returnList.Add(new Marioware("Extreme", "i7 7700K", "GTX 1080", 650, 1500, 1440, 144, "https://pcpartpicker.com/b/7JbXsY"));
PC pc = new PlayStation("PS4 Pro", "AMD Jaguar 2.1GHz", "~RX460/470", 300, 399.99f, 4160, 30, null);
public static class ConsoleFunctions
public static void PrintPC(PC pc)
Console.WriteLine(ConsoleFunctions.Separator(width));
Console.WriteLine(String.Format("CPU = {0}", pc.CPU));
Console.WriteLine(String.Format("GPU = {0}", pc.GPU));
Console.WriteLine(String.Format("PSU = {0}W", pc.PSU.ToString()));
Console.WriteLine(String.Format("Resolution = {0}p/{1}Hz", pc.ScreenResolution.ToString(), pc.ScreenHertz.ToString()));
Console.WriteLine(String.Format("Price = {0}", pc.Price.ToString()));
if (pc.PcPartPickerLink != null)
Console.WriteLine(String.Format("PC Part Picker = {0}", pc.PcPartPickerLink));
Console.WriteLine(ConsoleFunctions.IsPCMR(pc.isPCMR));
Console.WriteLine(ConsoleFunctions.Separator(width));
public static string IsPCMR(bool isPCMR)
return isPCMR ? AsciiPCMR() : AsciiPeasant();
private static string AsciiPCMR()
1f@@C ,@@ *GLORIOUS GAMING INTENSIFIES*
t@@C ;fi 0@1C@@i @@C 60,144,240FPS ULTRA
f@@8. .@@8t1t8@@@@@@8iiiii@@0 .@
1f0@@@C t@1iiiiiiiiiiiiiiiiiif@@@0@0 CUSTOMIZATION AND UPGRADES
t8@@8i. @8iiiiiiiiiiiii18@@@i@@8iii
f@@0. C@iiif8@8iiiiii0@@@@i@@ RETROCOMPATIBILITY AND EMULATION
@0@8 f@ii@@@@@iiiiiiiiiiii@@
@@@@80C1, ;0@@@Giiii1iiiiiiiiiiiii8@@ MOUSE & KEYBOARD ACCURACY
1l8@@@8l: .i0@@@@iiiiiiiiiiiiiiiiiiii8@@
l@@@@@@80GG0@@@8Gf;;i@@@liiiiiiiiiiiiiiiit@@@ MODS AND TEXTURE PACKS
18@@@@@@@@@@@@@@8 CHEAPER, SPECIALLY ON THE LONG RUN
iii,1fflCGGClf MORE EXCLUSIVES AND FREE GAMES
,G@@@@@0i@iiiiiiiiiiii@8.G@@@@@ NOT ONLY FOR GAMING
@@@@; 8tiiiiiiiiiiil@00 G@@@
8@@0 @tiiiiiiiiiiiiil0 ,@@@
@@@. 8iiiiiiiiiiiiii@ G@@
0@@. 8iiiiiiiiiiiii@. 8@@
private static string AsciiPeasant()
*PEASANTRY INTENSIFIES* f@@@@: C@@@@
PAID ONLINE 8@8 C@@@@@ @@.
CONTROLLERS ;@@ .@@@@@. :@@@. ;@@
TEMPORARY AND LIMITED @@0 @@@: @@8
.@@t .itLLLLLLLLLLLt: @@8
private static string Separator(int count)
for (int i = 0; i < count; i++)