game_board class might need more function but this is for now
game_board.cpp@3:e21ecfae42e4, 2015-12-07 (annotated)
- Committer:
- AndyTran
- Date:
- Mon Dec 07 22:10:04 2015 +0000
- Revision:
- 3:e21ecfae42e4
- Parent:
- 2:1a54e4ed2669
duck
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AndyTran | 0:06bd2763aa53 | 1 | #include <iostream> |
AndyTran | 0:06bd2763aa53 | 2 | #include "game_board.h" |
AndyTran | 0:06bd2763aa53 | 3 | using namespace std; |
AndyTran | 0:06bd2763aa53 | 4 | |
AndyTran | 0:06bd2763aa53 | 5 | |
AndyTran | 0:06bd2763aa53 | 6 | void game_board::new_game_board () |
AndyTran | 0:06bd2763aa53 | 7 | { |
AndyTran | 3:e21ecfae42e4 | 8 | ship_lose = 0; |
AndyTran | 3:e21ecfae42e4 | 9 | for (i = 0; i < 6; i++); |
AndyTran | 3:e21ecfae42e4 | 10 | { |
AndyTran | 3:e21ecfae42e4 | 11 | _my_ship[i][0] = 0; |
AndyTran | 3:e21ecfae42e4 | 12 | _my_ship[i][1] = 0; |
AndyTran | 3:e21ecfae42e4 | 13 | _my_ship[i][2] = 0; |
AndyTran | 3:e21ecfae42e4 | 14 | _my_ship[i][3] = 0; |
AndyTran | 3:e21ecfae42e4 | 15 | _my_ship[i][4] = 0; |
AndyTran | 3:e21ecfae42e4 | 16 | _my_ship[i][5] = 0; |
AndyTran | 3:e21ecfae42e4 | 17 | } |
AndyTran | 0:06bd2763aa53 | 18 | F_row = "F _ _ _ _ _ _ F _ _ _ _ _ _\n\r"; |
AndyTran | 0:06bd2763aa53 | 19 | E_row = "E _ _ _ _ _ _ E _ _ _ _ _ _\n\r"; |
AndyTran | 0:06bd2763aa53 | 20 | D_row = "D _ _ _ _ _ _ D _ _ _ _ _ _\n\r"; |
AndyTran | 0:06bd2763aa53 | 21 | C_row = "C _ _ _ _ _ _ C _ _ _ _ _ _\n\r"; |
AndyTran | 0:06bd2763aa53 | 22 | B_row = "B _ _ _ _ _ _ B _ _ _ _ _ _\n\r"; |
AndyTran | 0:06bd2763aa53 | 23 | A_row = "A _ _ _ _ _ _ A _ _ _ _ _ _\n\r"; |
AndyTran | 0:06bd2763aa53 | 24 | N_row = " 1 2 3 4 5 6 1 2 3 4 5 6\n\r"; |
AndyTran | 0:06bd2763aa53 | 25 | label = "Friendly Enemy\n\r"; |
AndyTran | 2:1a54e4ed2669 | 26 | |
AndyTran | 0:06bd2763aa53 | 27 | }; |
AndyTran | 0:06bd2763aa53 | 28 | bool game_board::place_hit_miss_friendly (int row, int colum){ |
AndyTran | 0:06bd2763aa53 | 29 | if (_my_ship[row-1][colum-1] >= 1){ |
AndyTran | 0:06bd2763aa53 | 30 | _my_ship[row-1][colum-1] = 2; //freindly got destroy |
AndyTran | 3:e21ecfae42e4 | 31 | ship_lose = ship_lose + 1; |
AndyTran | 0:06bd2763aa53 | 32 | switch (row - 1) |
AndyTran | 0:06bd2763aa53 | 33 | { |
AndyTran | 0:06bd2763aa53 | 34 | case 0: F_row[(colum)*2] = '*'; |
AndyTran | 0:06bd2763aa53 | 35 | break; |
AndyTran | 0:06bd2763aa53 | 36 | case 1: E_row[(colum)*2] = '*'; |
AndyTran | 0:06bd2763aa53 | 37 | break; |
AndyTran | 0:06bd2763aa53 | 38 | case 2: D_row[(colum)*2] = '*'; |
AndyTran | 0:06bd2763aa53 | 39 | break; |
AndyTran | 0:06bd2763aa53 | 40 | case 3: C_row[(colum)*2] = '*'; |
AndyTran | 0:06bd2763aa53 | 41 | break; |
AndyTran | 0:06bd2763aa53 | 42 | case 4: B_row[(colum)*2] = '*'; |
AndyTran | 0:06bd2763aa53 | 43 | break; |
AndyTran | 0:06bd2763aa53 | 44 | case 5: A_row[(colum)*2] = '*'; |
AndyTran | 0:06bd2763aa53 | 45 | break; |
AndyTran | 0:06bd2763aa53 | 46 | } |
AndyTran | 0:06bd2763aa53 | 47 | return true; |
AndyTran | 0:06bd2763aa53 | 48 | } |
AndyTran | 0:06bd2763aa53 | 49 | else { |
AndyTran | 0:06bd2763aa53 | 50 | switch (row - 1) |
AndyTran | 0:06bd2763aa53 | 51 | { |
AndyTran | 0:06bd2763aa53 | 52 | case 0: F_row[(colum)*2] = 'O'; |
AndyTran | 0:06bd2763aa53 | 53 | break; |
AndyTran | 0:06bd2763aa53 | 54 | case 1: E_row[(colum)*2] = 'O'; |
AndyTran | 0:06bd2763aa53 | 55 | break; |
AndyTran | 0:06bd2763aa53 | 56 | case 2: D_row[(colum)*2] = 'O'; |
AndyTran | 0:06bd2763aa53 | 57 | break; |
AndyTran | 0:06bd2763aa53 | 58 | case 3: C_row[(colum)*2] = 'O'; |
AndyTran | 0:06bd2763aa53 | 59 | break; |
AndyTran | 0:06bd2763aa53 | 60 | case 4: B_row[(colum)*2] = 'O'; |
AndyTran | 0:06bd2763aa53 | 61 | break; |
AndyTran | 0:06bd2763aa53 | 62 | case 5: A_row[(colum)*2] = 'O'; |
AndyTran | 0:06bd2763aa53 | 63 | break; |
AndyTran | 0:06bd2763aa53 | 64 | } |
AndyTran | 0:06bd2763aa53 | 65 | return false; |
AndyTran | 0:06bd2763aa53 | 66 | } |
AndyTran | 0:06bd2763aa53 | 67 | //return false; |
AndyTran | 0:06bd2763aa53 | 68 | }; |
AndyTran | 0:06bd2763aa53 | 69 | void game_board::place_ship (int row, int colum) { |
AndyTran | 0:06bd2763aa53 | 70 | _my_ship [row - 1][colum - 1] = 1; |
AndyTran | 0:06bd2763aa53 | 71 | switch (row - 1) |
AndyTran | 0:06bd2763aa53 | 72 | { |
AndyTran | 0:06bd2763aa53 | 73 | case 0: |
AndyTran | 0:06bd2763aa53 | 74 | F_row[(colum)*2] = '>'; |
AndyTran | 0:06bd2763aa53 | 75 | break; |
AndyTran | 0:06bd2763aa53 | 76 | case 1: |
AndyTran | 0:06bd2763aa53 | 77 | E_row[(colum)*2] = '>'; |
AndyTran | 0:06bd2763aa53 | 78 | break; |
AndyTran | 0:06bd2763aa53 | 79 | case 2: |
AndyTran | 0:06bd2763aa53 | 80 | D_row[(colum)*2] = '>'; |
AndyTran | 0:06bd2763aa53 | 81 | break; |
AndyTran | 0:06bd2763aa53 | 82 | case 3: |
AndyTran | 0:06bd2763aa53 | 83 | C_row[(colum)*2] = '>'; |
AndyTran | 0:06bd2763aa53 | 84 | break; |
AndyTran | 0:06bd2763aa53 | 85 | case 4: |
AndyTran | 0:06bd2763aa53 | 86 | B_row[(colum)*2] = '>'; |
AndyTran | 0:06bd2763aa53 | 87 | break; |
AndyTran | 0:06bd2763aa53 | 88 | case 5: |
AndyTran | 0:06bd2763aa53 | 89 | A_row[(colum)*2] = '>'; |
AndyTran | 0:06bd2763aa53 | 90 | break; |
AndyTran | 0:06bd2763aa53 | 91 | } |
AndyTran | 0:06bd2763aa53 | 92 | }; |
AndyTran | 0:06bd2763aa53 | 93 | string game_board::get1row (int row){ |
AndyTran | 0:06bd2763aa53 | 94 | string r_row; |
AndyTran | 0:06bd2763aa53 | 95 | switch (row - 1) |
AndyTran | 0:06bd2763aa53 | 96 | { |
AndyTran | 2:1a54e4ed2669 | 97 | case 0: r_row = F_row; |
AndyTran | 0:06bd2763aa53 | 98 | break; |
AndyTran | 0:06bd2763aa53 | 99 | case 1: r_row = E_row; |
AndyTran | 0:06bd2763aa53 | 100 | break; |
AndyTran | 0:06bd2763aa53 | 101 | case 2: r_row = D_row; |
AndyTran | 0:06bd2763aa53 | 102 | break; |
AndyTran | 0:06bd2763aa53 | 103 | case 3: r_row = C_row; |
AndyTran | 0:06bd2763aa53 | 104 | break; |
AndyTran | 0:06bd2763aa53 | 105 | case 4: r_row = B_row; |
AndyTran | 0:06bd2763aa53 | 106 | break; |
AndyTran | 0:06bd2763aa53 | 107 | case 5: r_row = A_row; |
AndyTran | 0:06bd2763aa53 | 108 | break; |
AndyTran | 0:06bd2763aa53 | 109 | case 6: r_row = N_row; |
AndyTran | 0:06bd2763aa53 | 110 | break; |
AndyTran | 0:06bd2763aa53 | 111 | case 7: r_row = label; |
AndyTran | 0:06bd2763aa53 | 112 | break; |
AndyTran | 0:06bd2763aa53 | 113 | } |
AndyTran | 2:1a54e4ed2669 | 114 | return (r_row); |
AndyTran | 0:06bd2763aa53 | 115 | }; |
AndyTran | 0:06bd2763aa53 | 116 | bool game_board::looser(){ |
AndyTran | 0:06bd2763aa53 | 117 | //check for the number of ship is destroy; |
AndyTran | 0:06bd2763aa53 | 118 | //if 5 or more ship is destroy player lose the game |
AndyTran | 3:e21ecfae42e4 | 119 | while (ship_lose > 5) |
AndyTran | 0:06bd2763aa53 | 120 | { |
AndyTran | 0:06bd2763aa53 | 121 | return true; //you lose |
AndyTran | 0:06bd2763aa53 | 122 | } |
AndyTran | 0:06bd2763aa53 | 123 | else return false; //nothing happen |
AndyTran | 0:06bd2763aa53 | 124 | }; |
AndyTran | 0:06bd2763aa53 | 125 | void game_board::place_hit_miss_enemy (int row, int colum, bool hit_miss){ |
AndyTran | 1:f4ece2e5a8f6 | 126 | if (hit_miss == 1) { |
AndyTran | 0:06bd2763aa53 | 127 | switch (row - 1) { |
AndyTran | 0:06bd2763aa53 | 128 | case 0: |
AndyTran | 0:06bd2763aa53 | 129 | F_row[(colum+8)*2] = '*'; |
AndyTran | 0:06bd2763aa53 | 130 | break; |
AndyTran | 0:06bd2763aa53 | 131 | case 1: |
AndyTran | 0:06bd2763aa53 | 132 | E_row[(colum+8)*2] = '*'; |
AndyTran | 0:06bd2763aa53 | 133 | break; |
AndyTran | 0:06bd2763aa53 | 134 | case 2: |
AndyTran | 0:06bd2763aa53 | 135 | D_row[(colum+8)*2] = '*'; |
AndyTran | 0:06bd2763aa53 | 136 | break; |
AndyTran | 0:06bd2763aa53 | 137 | case 3: |
AndyTran | 0:06bd2763aa53 | 138 | C_row[(colum+8)*2] = '*'; |
AndyTran | 0:06bd2763aa53 | 139 | break; |
AndyTran | 0:06bd2763aa53 | 140 | case 4: |
AndyTran | 0:06bd2763aa53 | 141 | B_row[(colum+8)*2] = '*'; |
AndyTran | 0:06bd2763aa53 | 142 | break; |
AndyTran | 0:06bd2763aa53 | 143 | case 5: |
AndyTran | 0:06bd2763aa53 | 144 | A_row[(colum+8)*2] = '*'; |
AndyTran | 0:06bd2763aa53 | 145 | break; |
AndyTran | 0:06bd2763aa53 | 146 | } |
AndyTran | 0:06bd2763aa53 | 147 | } |
AndyTran | 1:f4ece2e5a8f6 | 148 | else if (hit_miss == 0) { |
AndyTran | 0:06bd2763aa53 | 149 | switch (row - 1) { |
AndyTran | 0:06bd2763aa53 | 150 | case 0: |
AndyTran | 0:06bd2763aa53 | 151 | F_row[(colum+8)*2] = 'O'; |
AndyTran | 0:06bd2763aa53 | 152 | break; |
AndyTran | 0:06bd2763aa53 | 153 | case 1: |
AndyTran | 0:06bd2763aa53 | 154 | E_row[(colum+8)*2] = 'O'; |
AndyTran | 0:06bd2763aa53 | 155 | break; |
AndyTran | 0:06bd2763aa53 | 156 | case 2: |
AndyTran | 0:06bd2763aa53 | 157 | D_row[(colum+8)*2] = 'O'; |
AndyTran | 0:06bd2763aa53 | 158 | break; |
AndyTran | 0:06bd2763aa53 | 159 | case 3: |
AndyTran | 0:06bd2763aa53 | 160 | C_row[(colum+8)*2] = 'O'; |
AndyTran | 0:06bd2763aa53 | 161 | break; |
AndyTran | 0:06bd2763aa53 | 162 | case 4: |
AndyTran | 0:06bd2763aa53 | 163 | B_row[(colum+8)*2] = 'O'; |
AndyTran | 0:06bd2763aa53 | 164 | break; |
AndyTran | 0:06bd2763aa53 | 165 | case 5: |
AndyTran | 0:06bd2763aa53 | 166 | A_row[(colum+8)*2] = 'O'; |
AndyTran | 0:06bd2763aa53 | 167 | break; |
AndyTran | 0:06bd2763aa53 | 168 | } |
AndyTran | 0:06bd2763aa53 | 169 | } |
AndyTran | 0:06bd2763aa53 | 170 | }; |