Some points:
--- Programming chess is a classically difficult problem. While you should understand C, that doesn't mean that you'd necessarily understand the algorithms used regarding a computer chess player. There has been extensive research done on this; essentially, it'll require actual knowledge of computer science beyond simply being able to write code.
--- Reading others' source code is hard. If it is written well, it is less hard. Still, getting to the level where you can comfortably work with other's code is going to take practice. In my experience, the best way to do that is to read open-source software, as you are doing. You should start with a smaller, simpler program, maybe several hundred lines.
--- Don't think that programming anything useful is beyond you. You're learning C --- an awful language for applications programming, but extremely applicable to microprocessors and systems software.
Don't be discouraged because it isn't immediately obvious regarding how to write software with a GUI. I get far more done using the command-line than using the GUI. Write command-line apps: when done properly, they are extremely usable, but this doesn't seem like it's often taught. I would _strongly_ recommend reading ESR's "The Art of Unix Programming", as it delves in great detail how to write modular, versatile, and practically usable programs in the Unix tradition, developed alongside, for, and using C.
--- Make sure you're learning C11 on an _up-to-date_ decent compiler. I recommend LLVM/Clang or GCC; If you're on a Microsoft system, MinGW or MSYS are packages that offer suitable ports of GCC. That means no
, : those are relics from the 80's. Using them is a sure bad sign.
--- You should consider installing a Unix-like system (e.g., a GNU/Linux distribution) and developing for that: these systems inherit first class support for programming from the inside-out, especially for programs written in C. Failing that, getting passively familiar with Cygwin on MS Windows is worth it. From experience, developing graphical interfaces using C on Windows is awful. On Unix-like systems, it's fully modular, and is much less awful.
--- Because C is a _systems_ language, you should not expect for it or the C standard library (cstdlib) to contain built-in support for graphics. C is meant for "powering" the graphics, as it were --- it's the lowest-common-denominator. To get graphics going, you'll have to interface with code that isn't yours through the use of libraries. Since graphics are provided by the system, you'll need to use your system's APIs. The same deal is with the mouse, and asynchronous keyboard input, and with displays, and with graphics, etc.