game_board class might need more function but this is for now

Dependents:   Final_Project

Committer:
AndyTran
Date:
Mon Dec 07 22:10:04 2015 +0000
Revision:
3:e21ecfae42e4
Parent:
2:1a54e4ed2669
duck

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 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 };