From 9fd4885411f1a820f31045f4550f7ae76cbe3338 Mon Sep 17 00:00:00 2001 From: rexy712 Date: Fri, 14 Aug 2020 19:14:41 -0700 Subject: [PATCH] Coding standard --- doc/coding_standard.txt | 78 +++++++++++++++++++++++++++++++++++++++++ src/main.cpp | 30 ++++++++-------- 2 files changed, 93 insertions(+), 15 deletions(-) create mode 100644 doc/coding_standard.txt diff --git a/doc/coding_standard.txt b/doc/coding_standard.txt new file mode 100644 index 0000000..98c0c00 --- /dev/null +++ b/doc/coding_standard.txt @@ -0,0 +1,78 @@ + +must do's: + general: + c++17 targetted standard + 115 max line length + prefer // over /**/ + format pointers as `char* thing;` + tabs not spaces + c++ casts + spaces around assignment, comparison, and arithmetic operators + spaces after semicolon in for loop + spaces after comma operator and after parameter commas + const wherever possible (const-correctness) + pass by pointer or by reference + prefer reference over pointer + functions: + 50 max length + comments max 2 lines + no void in parameter list: void func(){} + brace formatting: + void function(void){ + + } + if(thing){ + + }else if(thing){ + + }else{ + + } + for(){ + + } + switch(case){ + case 1: + break; + } + struct thing { + int thingy; + }; + union thing { + int thingy; + }; + class thing + { + private: + int thingy; + public: + void func(void); + }; + enum thing{ + stuff, + }; + + +no-no's: + goto (except when breaking from inner loop) + for(){ + for(){ + goto breakinner; + } + } + breakinner:; + + using c++ exceptions + using + asm blocks + use of 'friend' + nested ternary + ternary outside of variable initialization + lambdas + malloc/free + #pragma + structured bindings + range based for loops + `class` in template parameter list + struct keyword before an object declaration + struct game_state* gl; //bad boi diff --git a/src/main.cpp b/src/main.cpp index 6b777e3..75e7732 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,6 +1,6 @@ #include -#include -#include +#include +#include // 0 | 1 | 2 // --------- @@ -12,7 +12,7 @@ int get_player_input(){ //TODO get player input - return rand()%9; + return rand() % 9; } struct game_state { @@ -20,26 +20,26 @@ struct game_state { char board[TILE_COUNT]; }; -void game_turn(struct game_state * gs,int player_input){ +void game_turn(game_state& gs, int player_input){ if(player_input > TILE_COUNT && player_input < 0) fprintf(stderr,"ERR: player input not in range."); - if(!gs->board[player_input]) - gs->board[player_input]='O'; - gs->turn++; + if(!gs.board[player_input]) + gs.board[player_input] = 'O'; + gs.turn++; } -void display_game_state(struct game_state * gs){ - printf("turn %i:\n",gs->turn); - for(int i=0;iboard[i]); +void display_game_state(const game_state& gs){ + printf("turn %i:\n", gs.turn); + for(int i = 0; i < TILE_COUNT; i++){ + printf("[%i]:%c\n", i, gs.board[i]); } } int main(){ srand(time(NULL)); - struct game_state gs = {0}; - while(gs.turn