... the language is just a tool you use to express your solution.
This is the key here. If you know how to solve the problem in your head, or on paper then you just need to learn to slow down your thinking and break it into the smallest possible logical steps. Then just turn each of those steps into a piece of code.
For instance when I think about playing a game of tic-tac-toe:
- There's a 3x3 board made up of blank spaces. (Need to think of a way to express the board in the language - and a way to display it to the players)
- I put an X in a space every time I get a turn, and my opponent puts a O in a space every time they get a turn. (Need to think of a way to place different markers.)
- Our turns alternate back and forth between us. (need to set up a sequence that alternates turns)
- Eventually either the board is full or else one of us gets 3 of our symbol in a row and therefore wins. (need to be able to check for end conditions)
Try to implement your solution in a sort of 'theoretical space' that's just pure logic. Then make a way to represent that logic on the screen. I see a lot of new programmers try to form their logic around their presentation rather than the other way around and this causes no end of confusion. Think about it like 'The Matrix'. You are 'The One'. The players of your game see the illusion - the graphics on the screen - but you see the truth - that the graphics are just a lie that represent a hidden reality. Develop that reality in the world of pure logic and then teach it to generate graphics.
Feel free to take a whack at stuff and then post it here if it's not working out and ask questions about it. As long as people see that you're thinking about things they'll often give you a lot of advice about structure and such.
Hope that helps. Good luck.
Actually, if you don't mind dealing with LISP a little bit you can watch some SiCP videos here. I don't know if that's what you need, but maybe it will help you out. If you start watching it and it doesn't make any sense then just close it. No reason to add confusion at this point - you can come back to it later.