Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


Code review for my first game ?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
2 replies to this topic

#1 kostasrimis   Members   -  Reputation: 124

Like
0Likes
Like

Posted 25 September 2013 - 02:16 PM

Hello , my name is kostas and i  am 18 years old student at ionian university( computer science ). My hopes are that someday i will become a good game / graphics programmer. After 7 hours of work i finished my first game tic tac toe ( 2 players no AI ) using c++(ide visual studio 2012 prof since its free for students ) and SDL . I will post my c++ fille and hopefully you could do a review of my code and suggest me what should i do better.... Your suggestions are necessary so i can become better! Thanks a lot for your time. link here : http://www.sendspace.com/file/6ktmss . For a reason i couldnt attach the cpp fille so i had to upload it ?!



Sponsor:

#2 markr   Crossbones+   -  Reputation: 1653

Like
3Likes
Like

Posted 25 September 2013 - 03:17 PM

You have several typoes or spelling mistakes in code or comments, these are confusing or annoying to a maintainer but not really a problem (most notably SCREEN_WITDH)

 

There are a lot of global variables, some of which are not very descriptive or helpful, e.g. event / gameEvent. You might reduce the global variables by combining some of them into structs and/or putting them into arrays or some other container. It's also possible that some of them don't need to be global at all, and can be passed as parameters instead and/or held in a local somewhere.

 

Your variable and function names are not very descriptive and a maintenance programmer will need to refer to their declaration comments a lot. "state" might be better as "board_state", then we know what it's the state of. (conceptually, every variable is a state of something). Some function names don't start with a verb, for example "position" or "score".

 

"using namespace std" - I could possibly get into a Holy War over this, but I prefer not to use this nowadays.

 

Function position() ... this function needs the most work.

1. It is trying to do at least two things at once - determine the mouse click target and draw things on the screen. Logically, I'd try to separate these two operations

2. It does many rectangle-tests for the mouse-position, it looks like these could easily be refactored into an array or something else.

3. There is a great deal of repeated code

 

I suggest you might refactor position() into several stages, possibly different functions:

a. Determine whether the mouse-button has been clicked on a square, and which one

b. Check whether the square is a legal move (i.e. not already taken)

c. Draw the mark in the box

 

Obviously I can't see what's in your background image, but I suspect that the board has a regular grid, so you might be able to use a bit of arithmetic to work out the boxes' coordinates programmatically and not have to hard-code the locations of 9 squares.

 

However, if your tic-tac-toe grid is highly irregular, you could make an array of structs to store their coords thus:

 

struct myrect { int x1,y1,x2,y2; };

myrect rects[9] = {

  {30,25,210,165} , ...

 

}

 

Or whatever the correct syntax is!



#3 kostasrimis   Members   -  Reputation: 124

Like
0Likes
Like

Posted 25 September 2013 - 04:25 PM

Thank you very much for your feedback and i am looking forward to correct all the things you said me. Also about the std i agree that is essential but since the program wasnt big enough i prefered not to use it. I will create my next game now , propably a blackjack and then a pong maybe ? Anyway when i finish it , i will post it here and hopefully i my code will be better eventually. Thank again and i appreciate your help!






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS