game_board class might need more function but this is for now

Dependents:   Final_Project

Committer:
AndyTran
Date:
Thu Dec 03 09:43:27 2015 +0000
Revision:
0:06bd2763aa53
Child:
1:f4ece2e5a8f6
duck_soup got most of the game_board class done

Who changed what in which revision?

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