I've started to learn programming recently and it's my first more or less big project. But coding this project for me is quite hard. I spent a lot of time to understand what I've done and my coding is developing really slowly. And I'm curious what's my problem? Is it my lack of experience or is it my ugly style of programming? If it's all about style please tell me about my mistakes.What do I have now?@ - Main character# - Wall. - FloorYou can move the character by numpad (8 - to go up, 6 to go right and etc.) but controls are made by cin>> (for now I hope).Main.cpp#include Map.h // Map class#include MainChar.h // Main charecter class#include Screen.h // Screen Classvoid WaitKey(char& key) //sooner or later I will move all functions in separate file{std::cin>>key;}int main(){   //Creating objectschar key=' ';       //key that pressedbool quit=false;    // flag for quitScreen scr;         // it's my screenMap map;            // it's my mapMainChar Mchar;scr.cordx=39;       //x coordinate of camerascr.cordy=39;       //y coordinate of camera//Game Preaparationscr.FillHelp();map.Fill();scr.RenderScr(map,Mchar);while (!quit) // Main loop{    // Game Logic        //Contolls        WaitKey(key);         switch (key)        {            case '6' :             if (scr.Scr[Mchar.y][Mchar.x + 1]=='#')                scr.log=There is a wall on my way;            else                 scr.cordx++;            break;            case '4' :             if (scr.Scr[Mchar.y][Mchar.x - 1]=='#')                scr.log=There is a wall on my way;            else                 scr.cordx--;            break;            case '8' :            if (scr.Scr[Mchar.y - 1][Mchar.x]=='#')                scr.log=There is a wall on my way;            else                 scr.cordy--;            break;            case '2' :            if (scr.Scr[Mchar.y + 1][Mchar.x]=='#')                scr.log=There is a wall on my way;            else                 scr.cordy++;            break;        }    //Rendering the screen    scr.RenderScr(map,Mchar);}return 0;}Map.h#ifndef Map_h#define Map_h#endifclass Map{ public:  void Fill();                   // Creating Map public:  char Layout[120][120];         // The Walls on the map};Map.cpp#include Map.hvoid Map::Fill()                                        //Creating Map{for (int i=0;i<120;i++){    for (int j=0;j<120;j++)    {        if (i==40 || i==80 || j==40 || j==80)       // For now it's just the simpliest map        Layout[i][j]='#';                           // This symbol means Wall        else         Layout[i][j]='.';                           // This symbol means Floor    }       }   }MainChar.h#ifndef MainChar_h#define MainChar_h#endifclass MainChar{    public:    MainChar();             //constructor of the class    char Symb;              //Symbol of a character    int x,y;                //Coordinates of a character};MainChar.cpp#include MainChar.h#include <stdlib.h>MainChar::MainChar()                //constructor: Symb {'@'} , x{10}, y{10}         // x=10; y=10 - center of the screen{}Screen.h#include <iostream>                     // call ios to use render#include <stdlib.h>#include <string.h>#ifndef Map_h#include Map.h#endif #ifndef MainChar_h#include MainChar.h#endif class Screen{   public:void RenderScr(Map lay,MainChar mchar);         // capturing the screenvoid FillHelp();                                // filling helppublic:std::string help[21];                           // It's description of controlsstd::string log;                                // It's the log of eventschar Scr[21][21];                               // it's the screen we are printing on or camera view if you can call itint cordx,cordy;                                // coordinates of the screen};Screen.cpp#include Screen.h// Calling our header filevoid Screen::RenderScr(Map lay,MainChar mchar)                  // capturing the screen and printing it{system(cls);for (int i=0;i<21;i++)                          // first loop for capturing the screen{    for (int j=0;j<21;j++)                      // second loop for capturing the screen    {        Scr[i][j]=lay.Layout[i+cordy][j+cordx]; // rendering the walls        if (i==mchar.y && j==mchar.x)            Scr[i][j]=mchar.Symb;               // rendering the Main Character        //bla bla bla other objects        std::cout<<Scr[i][j];                   //printing the screen    }    std::cout<<'\t'<<help[i]<<'\n';             // printing help}std::cout<<log<<'\n';                           //printing the loglog=;void Screen::FillHelp()                         //filling help{help[0]=\Numpad\... - Movement;         //help message  1help[1]=;                                 //help message  2for (int i=2; i<21; i++)                    //blanket messages    help[i]=;}
Beginning of simple rogue-like RPG (in console) in C++
c++;beginner;ascii art;role playing game