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