P9: A7,A13 battle ship 2016 J
Dependencies: mbed
Revision 0:b6fa066730db, committed 2016-12-06
- Comitter:
- dragondrunk
- Date:
- Tue Dec 06 04:04:11 2016 +0000
- Commit message:
- Battle Ship Game
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ColorMbed.cpp Tue Dec 06 04:04:11 2016 +0000
@@ -0,0 +1,73 @@
+#include "mbed.h"
+#include "ColorMbed.h"
+
+SPI dot_matrix(D11,NC,D13); //mosi miso sclk
+DigitalOut lat(PA_12);
+DigitalOut sb(PA_11);
+DigitalOut rst(D10);
+BusOut open_line(D2,D3,D4,D5,D6,D7,D8,D9);
+ //c0 c1 c2 c3 c4 c5 c6 c7 dont foget d7
+uint8_t temp;
+int line[8] = {1,2,4,8,16,32,64,128};
+
+
+
+void ColorMbed::init(){
+ dot_matrix.frequency(1000000);
+ uint8_t wb[3] = {255,255,255};
+ rst = 1;
+ wait(0.5);
+ rst = 0;
+ wait(0.5);
+ rst = 1;
+ wait(0.5);
+ sb = 0; // 6 bit
+ for(int i = 0; i<8; i++){
+ dot_matrix.write(wb[0]);
+ dot_matrix.write(wb[1]);
+ dot_matrix.write(wb[2]);
+ }
+ open_line = 0;
+ sb = 1; // 8 bit
+}
+
+
+void ColorMbed::display_pic(int *pic,int *color){
+ for(int j = 0;j<8;j++){
+ temp = pic[j];
+ for(int i = 0; i<8; i++){
+ if(temp & 0x80){
+ dot_matrix.write(color[0]);
+ dot_matrix.write(color[1]);
+ dot_matrix.write(color[2]);
+ }
+ else{
+ dot_matrix.write(0);
+ dot_matrix.write(0);
+ dot_matrix.write(0);
+ }
+ temp = temp << 1;
+ }
+ lat = 1;
+ lat = 0;
+ open_line = line[j];
+ wait(0.001);
+ open_line = 0;
+ }
+}
+
+
+void ColorMbed::display_big_array(int pic[8][8][3]){
+ for(int j = 0;j<8;j++){
+ for(int i = 0; i<8; i++){
+ dot_matrix.write(pic[j][7-i][0]);
+ dot_matrix.write(pic[j][7-i][1]);
+ dot_matrix.write(pic[j][7-i][2]);
+ }
+ lat = 1;
+ lat = 0;
+ open_line = line[j];
+ wait(0.001);
+ open_line = 0;
+ }
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ColorMbed.h Tue Dec 06 04:04:11 2016 +0000
@@ -0,0 +1,43 @@
+/*
+*************************************
+I have some idea to create only three function
+display ship;
+display dot or bomb;
+finally display game interface;
+*************************************
+*/
+
+#ifndef ColorMbed_H
+#define ColorMbed_H
+
+#include "mbed.h"
+
+class ColorMbed{
+
+public:
+
+ void init(); // set white_balance
+ /*
+ display_dot can display one dot on dot matrix
+ parameter :
+ row : int (1,2,3,...,8)
+ column : int (1,2,3,...,8)
+ color : {B,G,R}
+ */
+
+ void display_pic(int *pic,int *color);
+ /*
+ display picture from hexa code color in this function is
+ only color and blank
+ parameter : array hexa number (pic[8] = {0x3c,0x7e,0xdc,0xf8,0xf8,0xfc,0x7e,0x3c})
+ color array {R,G,B} (rgb[3] = {255,255,255})
+ */
+
+ void display_big_array(int pic[8][8][3]);
+/*
+ display array {R,G,B}
+ parameter : array 3-dimension for 1 picture
+*/
+
+};
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Tue Dec 06 04:04:11 2016 +0000
@@ -0,0 +1,2140 @@
+/******************************************************************************/
+/* This Nicleo is state 0 */
+/******************************************************************************/
+#include "mbed.h"
+#include "ColorMbed.h"
+
+// Setting
+int ifUrJirat = 1;
+
+// Initail I/O.
+AnalogIn VRx(A0);
+AnalogIn VRy(A1);
+DigitalIn Button(PA_4);
+Serial bt(PA_15, PB_7);
+Serial com(D1,D0);
+ColorMbed dotmatrix;
+Timer t;
+
+// Initial function.
+char posit2char(int posit);
+char check_joys(int jx,int jy);
+int IamWin();
+int TellUrEnemy_uWin();
+int char2posit(char cha);
+int check_joys_int(int jx,int jy);
+int check_correctPosition(int X,int Y);
+int protect_ship(int head_position,int ship_type);
+int get_ship_platform(int input_position,int ship_type);
+void atk_enemy();
+void enemy_atk();
+void check_end();
+void check_ready();
+void mark_ship_destroyed();
+void Select_Position(char M,int SetOrPlay);
+void get_atk_platform(int atkpos);
+void get_ship_UShipsRdestroyed();
+
+//inessential
+void print_ship_destroyed();
+void print_enemy_platform();
+void print_ship_platform();
+void print_atk_platform();
+
+// Nasarun's function.
+int _power(int number , int power);
+void hex_to_array(int* ar);
+void place_ship3(char dir);
+void array_to_hex(int ar1[8][8]);
+void place_ship2_4(int ship,char dir);
+void ch_same_position(int ar1[8][8],int ar2[8][8]);
+void discard_same_position(int ar1[8][8],int ar2[8][8]);
+void hex_to_array_ship(int *hex_array); // convert hex_array to complete picture array[8][8][3]
+
+// Nasrun : Fuction place bomb
+void plant_bomb(char dir);
+void set_zero();
+// plot color
+void change_orange_myship(int row,int col);
+void change_orange_hisship(int row,int col);
+void change_red_myship(int row,int col);
+void change_red_hisship(int row,int col);
+void change_green_hisship(int row,int col);
+void change_red_deadship(int* array_coordinate,int mode);
+void change_green_myship(int row,int col);
+void change_green_hisship(int row,int col);
+void display_bomb_enemy(int row,int col);
+
+
+// Initial variable.
+int check_ship_underATK = 0;
+int select_Position = 0;
+int ATKposition = 0;
+int enemy_ready = 0;
+int check_ship1 = 0;
+int check_ship2 = 0;
+int check_win = 0;
+int state = 0;
+//Index.
+int iShipType = 0;
+int iWaitATK = 0;
+int iGSU=0;
+int iSUSPD = 0;
+//Array
+int ship_SelectType[8] = {4,3,2,2,1,1,1,1};
+int enemy_platform[8][8] = {{0}};
+int ship_platform[8][8] = {{0}}; //______________________________________________This is ship area.
+int atk_platform[8][8] = {{0}};
+int ship_underATK[15] = {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9};
+int ship_myShipsRdestroyed[15] = {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9};
+int ship_UShipsRdestroyed[15] = {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9};
+int ship_destroyed[8] = {0};
+int ship4[4] = {0};
+int ship3[3] = {0};
+int ship2[2][2] = {{0}};
+int ship1[4] = {0};
+//fuction nasrun
+int return_position[8][8] ;
+int for_hex = 0;
+int ch_post[8][8] = {{1,1,1,1,1,1,1,1},
+ {1,1,1,1,1,1,1,1},
+ {1,1,1,1,1,1,1,1},
+ {1,1,1,1,1,1,1,1},
+ {1,1,1,1,1,1,1,1},
+ {1,1,1,1,1,1,1,1},
+ {1,1,1,1,1,1,1,1},
+ {1,1,1,1,1,1,1,1}};
+int return_hex[8];
+int display_battle[8][8][3] = {0};
+int _temppic[8] = {0x01,0x01,0x01,0x01,0,0,0,0};
+int temppic2[8] = {0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+int temppic3[7][8] = {{0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00},{0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00},{0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00},{0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00}};
+int temppic4[8] = {0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+int forshift[8] = {0};
+int pic[8] = {0};
+int i,j;
+int check_boat3=0;
+int check_hex=0;
+
+
+
+int ship[8][8][3] = {0}; // gen hex to ship
+int plot_bombed_usage[8][8][3] = {{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
+ {{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
+ {{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
+ {{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
+ {{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
+ {{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
+ {{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
+ {{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}}};
+
+int bomb[8][8][3] = {{{100,100,90},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
+ {{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
+ {{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
+ {{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
+ {{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
+ {{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
+ {{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
+ {{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}}};
+
+int main_frame1[8][8][3] = {{{0}}}; // for show im placed bomb phase
+int main_frame2[8][8][3] = {{{0}}};
+
+int bomb_enemy[8][8][3] = {{{0}}};
+
+int zero[8][8][3] = {{{0}}};
+// psrameter for function plant_bomb
+int col = 0;
+int row = 0;
+int iCheck = 0;
+int temp_array[3] = {0};
+
+// function Test!
+int main(){ //-------------------------------------------------------------------Main Function.
+ bt.baud(9600);
+ float Vx;
+ float Vy;
+ int SW,iVxVy,iSW,n = 0;
+ int uli = 0;
+ char m;
+ int rgb[3] = {60,0,0};
+ int state_place_ship = 0;
+ dotmatrix.init();
+
+ int winlose[2][8] = {{0x3c,0x42,0xa5,0x81,0xa5,0x99,0x42,0x3c},{0x3c,0x42,0xa5,0x81,0x99,0xa5,0x42,0x3c}};
+ int rgbwin[3] = {0,255,0};
+ int rgblose[3] = {0,0,255};
+
+ int threetwoone[4][8] = {{0xbd,0xa1,0xa1,0xbd,0xa1,0xa1,0xbd,0x81},{0xbd,0xa1,0xa1,0xbd,0x85,0x85,0xbd,0x81},{0x99,0x9d,0x99,0x99,0x99,0x99,0xbd,0x81},{0x00,0xef,0xa1,0xad,0xa9,0xef,0x00,0x00}};
+ int rgbtto[3] = {0};
+
+ int picwait[9][8] = {
+ {0xff,0xff,0x42,0x24,0x24,0x42,0x81,0xff},
+ {0xff,0xff,0x7e,0x24,0x24,0x42,0x81,0xff},
+ {0xff,0xff,0x7e,0x3c,0x24,0x42,0x81,0xff},
+ {0xff,0x81,0x7e,0x3c,0x3c,0x42,0x81,0xff},
+ {0xff,0x81,0x42,0x3c,0x3c,0x7e,0x81,0xff},
+ {0xff,0x81,0x42,0x24,0x3c,0x7e,0xff,0xff},
+ {0xff,0x81,0x42,0x24,0x24,0x7e,0xff,0xff},
+ {0xff,0x81,0x42,0x24,0x24,0x42,0xff,0xff},
+ {0xff,0x81,0x42,0x24,0x24,0x42,0x81,0xff}};
+ int rgbwait[3] = {0};
+ int shiprun[19][8][8][3] = {
+
+ {{{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{200,0,0}, {200,10,0}, {200,20,0}, {200,30,0}, {200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}},
+ {{200,0,0}, {200,10,0}, {200,20,0}, {200,30,0}, {200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}}},
+
+ {{{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{200,0,0}, {200,10,0}, {200,20,0}, {200,30,0}, {200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}},
+ {{200,0,0}, {200,10,0}, {200,20,0}, {200,30,0}, {200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}}},
+
+
+ {{{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{10,20,20}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{200,0,0}, {200,10,0}, {200,20,0}, {200,30,0}, {200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}},
+ {{200,0,0}, {200,10,0}, {200,20,0}, {200,30,0}, {200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}}},
+
+ {{{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{10,20,20}, {10,20,20}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{10,20,20}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{200,0,0}, {200,10,0}, {200,20,0}, {200,30,0}, {200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}},
+ {{200,0,0}, {200,10,0}, {200,20,0}, {200,30,0}, {200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}}},
+
+
+ {{{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{10,20,20}, {10,20,20}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{10,20,20}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{200,0,0}, {200,10,0}, {200,20,0}, {200,30,0}, {200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}},
+ {{200,0,0}, {200,10,0}, {200,20,0}, {200,30,0}, {200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}}},
+
+
+ {{{10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{10,20,20}, {10,20,20}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{200,0,0}, {200,10,0}, {200,20,0}, {200,30,0}, {200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}},
+ {{200,0,0}, {200,10,0}, {200,20,0}, {200,30,0}, {200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}}},
+
+
+ {{{10,20,20}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {0,0,0}, {0,0,0}},
+ {{10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{200,10,0}, {200,20,0}, {200,30,0}, {200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}, {200,60,0}},
+ {{200,10,0}, {200,20,0}, {200,30,0}, {200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}, {200,60,0}}},
+
+ {{{0,0,0}, {10,20,20}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{10,20,20}, {0,0,0}, {0,0,0}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {0,0,0}},
+ {{10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {0,0,0}, {0,0,0}},
+ {{10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{200,20,0}, {200,30,0}, {200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}, {200,60,0}, {200,50,0}},
+ {{200,20,0}, {200,30,0}, {200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}, {200,60,0}, {200,50,0}}},
+
+ {{{0,0,0}, {0,0,0}, {10,20,20}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {10,20,20}, {0,0,0}, {0,0,0}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {0,0,0}, {0,0,0}},
+ {{10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}},
+ {{10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {0,0,0}},
+ {{10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {0,0,0}, {0,0,0}},
+ {{200,30,0}, {200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}, {200,60,0}, {200,50,0}, {200,40,0}},
+ {{200,30,0}, {200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}, {200,60,0}, {200,50,0}, {200,40,0}}},
+
+
+
+ {{{0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {10,20,20}, {0,0,0}, {0,0,0}, {10,20,20}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {0,0,0}},
+ {{10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}},
+ {{10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}},
+ {{0,0,0}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {0,0,0}},
+ {{200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}, {200,60,0}, {200,50,0}, {200,40,0}, {200,30,0}},
+ {{200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}, {200,60,0}, {200,50,0}, {200,40,0}, {200,30,0}}},
+
+
+ {{{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {10,20,20}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {0,0,0}, {0,0,0}, {10,20,20}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}},
+ {{10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}},
+ {{0,0,0}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}},
+ {{0,0,0}, {0,0,0}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}},
+ {{200,50,0}, {200,60,0}, {200,80,0}, {200,60,0}, {200,50,0}, {200,40,0}, {200,30,0}, {200,20,0}},
+ {{200,50,0}, {200,60,0}, {200,80,0}, {200,60,0}, {200,50,0}, {200,40,0}, {200,30,0}, {200,20,0}}},
+
+ {{{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {10,20,20}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {0,0,0}, {0,0,0}, {10,20,20}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}},
+ {{0,0,0}, {0,0,0}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}},
+ {{200,60,0}, {200,80,0}, {200,60,0}, {200,50,0}, {200,40,0}, {200,30,0}, {200,20,0}, {200,10,0}},
+ {{200,60,0}, {200,80,0}, {200,60,0}, {200,50,0}, {200,40,0}, {200,30,0}, {200,20,0}, {200,10,0}}},
+
+ {{{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {10,20,20}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}},
+ {{200,80,0}, {200,60,0}, {200,50,0}, {200,40,0}, {200,30,0}, {200,20,0}, {200,10,0}, {200,0,0}},
+ {{200,80,0}, {200,60,0}, {200,50,0}, {200,40,0}, {200,30,0}, {200,20,0}, {200,10,0}, {200,0,0}}},
+
+ {{{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {10,20,20}, {10,20,20}},
+ {{200,60,0}, {200,80,0}, {200,60,0}, {200,50,0}, {200,40,0}, {200,30,0}, {200,20,0}, {200,10,0}},
+ {{200,60,0}, {200,80,0}, {200,60,0}, {200,50,0}, {200,40,0}, {200,30,0}, {200,20,0}, {200,10,0}}},
+
+ {{{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {10,20,20}, {10,20,20}, {10,20,20}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {10,20,20}, {10,20,20}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {10,20,20}},
+ {{200,50,0}, {200,60,0}, {200,80,0}, {200,60,0}, {200,50,0}, {200,40,0}, {200,30,0}, {200,20,0}},
+ {{200,50,0}, {200,60,0}, {200,80,0}, {200,60,0}, {200,50,0}, {200,40,0}, {200,30,0}, {200,20,0}}},
+
+ {{{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {10,20,20}, {10,20,20}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {10,20,20}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}},
+ {{200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}, {200,60,0}, {200,50,0}, {200,40,0}, {200,30,0}},
+ {{200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}, {200,60,0}, {200,50,0}, {200,40,0}, {200,30,0}}},
+
+ {{{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}, {10,20,20}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{200,30,0}, {200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}, {200,60,0}, {200,50,0}, {200,40,0}},
+ {{200,30,0}, {200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}, {200,60,0}, {200,50,0}, {200,40,0}}},
+
+ {{{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {10,20,20}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{200,20,0}, {200,30,0}, {200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}, {200,60,0}, {200,50,0}},
+ {{200,20,0}, {200,30,0}, {200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}, {200,60,0}, {200,50,0}}},
+
+ {{{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
+ {{200,10,0}, {200,20,0}, {200,30,0}, {200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}, {200,60,0}},
+ {{200,10,0}, {200,20,0}, {200,30,0}, {200,40,0}, {200,50,0}, {200,60,0}, {200,80,0}, {200,60,0}}},
+ };
+
+ int circle[65][8] = {
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+ {0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+ {0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+ {0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+ {0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+ {0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+ {0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+ {0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+ {0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
+ {0xff,0x80,0x00,0x00,0x00,0x00,0x00,0x00},
+ {0xff,0x80,0x80,0x00,0x00,0x00,0x00,0x00},
+ {0xff,0x80,0x80,0x80,0x00,0x00,0x00,0x00},
+ {0xff,0x80,0x80,0x80,0x80,0x00,0x00,0x00},
+ {0xff,0x80,0x80,0x80,0x80,0x80,0x00,0x00},
+ {0xff,0x80,0x80,0x80,0x80,0x80,0x80,0x00},
+ {0xff,0x80,0x80,0x80,0x80,0x80,0x80,0x80},
+ {0xff,0x80,0x80,0x80,0x80,0x80,0x80,0xc0},
+ {0xff,0x80,0x80,0x80,0x80,0x80,0x80,0xe0},
+ {0xff,0x80,0x80,0x80,0x80,0x80,0x80,0xf0},
+ {0xff,0x80,0x80,0x80,0x80,0x80,0x80,0xf8},
+ {0xff,0x80,0x80,0x80,0x80,0x80,0x80,0xfc},
+ {0xff,0x80,0x80,0x80,0x80,0x80,0x80,0xfe},
+ {0xff,0x80,0x80,0x80,0x80,0x80,0x80,0xff},
+ {0xff,0x80,0x80,0x80,0x80,0x80,0x81,0xff},
+ {0xff,0x80,0x80,0x80,0x80,0x81,0x81,0xff},
+ {0xff,0x80,0x80,0x80,0x81,0x81,0x81,0xff},
+ {0xff,0x80,0x80,0x81,0x81,0x81,0x81,0xff},
+ {0xff,0x80,0x81,0x81,0x81,0x81,0x81,0xff},
+ {0xff,0x81,0x81,0x81,0x81,0x81,0x81,0xff},
+ {0xff,0x83,0x81,0x81,0x81,0x81,0x81,0xff},
+ {0xff,0x87,0x81,0x81,0x81,0x81,0x81,0xff},
+ {0xff,0x8f,0x81,0x81,0x81,0x81,0x81,0xff},
+ {0xff,0x9f,0x81,0x81,0x81,0x81,0x81,0xff},
+ {0xff,0xbf,0x81,0x81,0x81,0x81,0x81,0xff},
+ {0xff,0xff,0x81,0x81,0x81,0x81,0x81,0xff},
+ {0xff,0xff,0xc1,0x81,0x81,0x81,0x81,0xff},
+ {0xff,0xff,0xc1,0xc1,0x81,0x81,0x81,0xff},
+ {0xff,0xff,0xc1,0xc1,0xc1,0x81,0x81,0xff},
+ {0xff,0xff,0xc1,0xc1,0xc1,0xc1,0x81,0xff},
+ {0xff,0xff,0xc1,0xc1,0xc1,0xc1,0xc1,0xff},
+ {0xff,0xff,0xc1,0xc1,0xc1,0xc1,0xe1,0xff},
+ {0xff,0xff,0xc1,0xc1,0xc1,0xc1,0xf1,0xff},
+ {0xff,0xff,0xc1,0xc1,0xc1,0xc1,0xf9,0xff},
+ {0xff,0xff,0xc1,0xc1,0xc1,0xc1,0xfd,0xff},
+ {0xff,0xff,0xc1,0xc1,0xc1,0xc1,0xff,0xff},
+ {0xff,0xff,0xc1,0xc1,0xc1,0xc3,0xff,0xff},
+ {0xff,0xff,0xc1,0xc1,0xc3,0xc3,0xff,0xff},
+ {0xff,0xff,0xc1,0xc3,0xc3,0xc3,0xff,0xff},
+ {0xff,0xff,0xc3,0xc3,0xc3,0xc3,0xff,0xff},
+ {0xff,0xff,0xc7,0xc3,0xc3,0xc3,0xff,0xff},
+ {0xff,0xff,0xcf,0xc3,0xc3,0xc3,0xff,0xff},
+ {0xff,0xff,0xdf,0xc3,0xc3,0xc3,0xff,0xff},
+ {0xff,0xff,0xff,0xc3,0xc3,0xc3,0xff,0xff},
+ {0xff,0xff,0xff,0xe3,0xc3,0xc3,0xff,0xff},
+ {0xff,0xff,0xff,0xe3,0xe3,0xc3,0xff,0xff},
+ {0xff,0xff,0xff,0xe3,0xe3,0xe3,0xff,0xff},
+ {0xff,0xff,0xff,0xe3,0xe3,0xf3,0xff,0xff},
+ {0xff,0xff,0xff,0xe3,0xe3,0xfb,0xff,0xff},
+ {0xff,0xff,0xff,0xe3,0xe3,0xff,0xff,0xff},
+ {0xff,0xff,0xff,0xe3,0xe7,0xff,0xff,0xff},
+ {0xff,0xff,0xff,0xe7,0xe7,0xff,0xff,0xff},
+ {0xff,0xff,0xff,0xef,0xe7,0xff,0xff,0xff},
+ {0xff,0xff,0xff,0xff,0xe7,0xff,0xff,0xff},
+ {0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff},
+ {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}
+ };
+ int rgbcircle[3] = {0};
+ int counter = 0;
+ int click = 0;
+ int extwhile = 0;
+ t.start();
+while(1){
+ for( int a=0 ; a<=64 ;a++){
+ extwhile = extwhile+1;
+ counter = counter+10;
+ if( counter == 60 ){
+ click = click+1;
+ counter=0;
+ }
+ if(click == 0){
+ rgbcircle[0] = 0;
+ rgbcircle[1] = 0;
+ rgbcircle[2] = counter;
+ }
+ else if(click == 1){
+ rgbcircle[0] = 0;
+ rgbcircle[1] = counter;
+ rgbcircle[2] = 60;
+ }
+ else if(click == 2){
+ rgbcircle[0] = 0;
+ rgbcircle[1] = 60;
+ rgbcircle[2] = 60 - counter;
+ }
+ else if(click == 3){
+ rgbcircle[0] = counter;
+ rgbcircle[1] = 60;
+ rgbcircle[2] = 0;
+ }
+ else if(click == 4){
+ rgbcircle[0] = 60;
+ rgbcircle[1] = 60 - counter;
+ rgbcircle[2] = 0;
+ }
+ else if(click == 5){
+ rgbcircle[0] = 60;
+ rgbcircle[1] = 0;
+ rgbcircle[2] = counter;
+ }
+ else if(click == 6){
+ rgbcircle[0] = 60 - counter;
+ rgbcircle[1] = 0;
+ rgbcircle[2] = 60;
+ }
+ else if(click == 7){
+ rgbcircle[0] = 0;
+ rgbcircle[1] = 0;
+ rgbcircle[2] = 60;
+ click = 1;
+ }
+ wait(0.0025);
+ if(t.read() <= 0.8){dotmatrix.display_pic(circle[a],rgbcircle);}
+
+ }
+ break;
+}
+ t.stop();
+ t.reset();
+ t.start();
+
+ while(1){
+ if( t.read()<=0.2){dotmatrix.display_big_array(shiprun[0]);}
+ else if( t.read()>0.2 && t.read()<=0.4){dotmatrix.display_big_array(shiprun[1]);}
+ else if( t.read()>0.4 && t.read()<=0.6){dotmatrix.display_big_array(shiprun[2]);}
+ else if( t.read()>0.6 && t.read()<=0.8){dotmatrix.display_big_array(shiprun[3]);}
+ else if( t.read()>0.8 && t.read()<=1){dotmatrix.display_big_array(shiprun[4]);}
+ else if( t.read()>1 && t.read()<=1.2){dotmatrix.display_big_array(shiprun[5]);}
+ else if( t.read()>1.2 && t.read()<=1.4){dotmatrix.display_big_array(shiprun[6]);}
+ else if( t.read()>1.2 && t.read()<=1.6){dotmatrix.display_big_array(shiprun[7]);}
+ else if( t.read()>1.6 && t.read()<=1.8){dotmatrix.display_big_array(shiprun[8]);}
+ else if( t.read()>1.8 && t.read()<=2){dotmatrix.display_big_array(shiprun[9]);}
+ else if( t.read()>2 && t.read()<=2.2){dotmatrix.display_big_array(shiprun[10]);}
+ else if( t.read()>2.2 && t.read()<=2.4){dotmatrix.display_big_array(shiprun[11]);}
+ else if( t.read()>2.4 && t.read()<=2.6){dotmatrix.display_big_array(shiprun[12]);}
+ else if( t.read()>2.6 && t.read()<=2.8){dotmatrix.display_big_array(shiprun[13]);}
+ else if( t.read()>2.8 && t.read()<=3){dotmatrix.display_big_array(shiprun[14]);}
+ else if( t.read()>3 && t.read()<=3.2){dotmatrix.display_big_array(shiprun[15]);}
+ else if( t.read()>3.2 && t.read()<=3.4){dotmatrix.display_big_array(shiprun[16]);}
+ else if( t.read()>3.4 && t.read()<=3.6){dotmatrix.display_big_array(shiprun[17]);}
+ else if( t.read()>3.6 && t.read()<=3.8){dotmatrix.display_big_array(shiprun[18]);}
+ else{break;}
+ }
+
+ t.stop();
+ t.reset();
+ t.start();
+
+
+ while(1) {
+ if(t.read()<0.4){
+ dotmatrix.display_pic(_temppic,rgb);
+ }
+ else if(t.read() > 0.4 && t.read() < 0.8){
+ dotmatrix.display_pic(pic,rgb);
+ }
+ else{
+ t.reset();
+ }
+ if(iShipType<8){
+ Vx = VRx.read() * 1024;
+ Vy = VRy.read() * 1024;
+ SW = Button.read();
+ m = check_joys(Vx,Vy);
+ n = check_joys_int(Vx,Vy);
+ if(n == 1){ //_______________________________________________________ For make sure coordinate is press 1 time.
+ iVxVy = 0;
+ check_ready();
+ }
+ if(SW == 1){ //______________________________________________________ For make sure switch is press 1 time.
+ iSW = 0;
+ check_ready();
+ }
+ if(m!=NULL && iVxVy==0){ //__________________________________________ Get position that wait for press switch.
+ check_ready();
+ Select_Position(m,0);
+ if(state_place_ship == 0){
+ place_ship2_4(0,m); // 4
+ }
+ else if(state_place_ship == 1){
+ place_ship3(m); // 3
+ }
+ else if(state_place_ship == 2){
+ place_ship2_4(1,m); // 2
+ }
+ else if(state_place_ship == 3){
+ place_ship2_4(2,m); //2
+ }
+ else if(state_place_ship == 4){
+ place_ship2_4(3,m); // 1
+ }
+ else if(state_place_ship == 5){
+ place_ship2_4(4,m); // 1
+ }
+ else if(state_place_ship == 6){
+ place_ship2_4(5,m); // 1
+ }
+ else if(state_place_ship == 7){
+ place_ship2_4(6,m); // 1
+ }
+ printf("select_Position = %d\n",select_Position);
+ check_ready();
+ iVxVy = 1;
+ check_ready();
+ }
+ if(SW==0 && iSW==0){ //______________________________________________If switch pressing by human.
+ printf("Wait!\n");
+
+ check_ready();
+ if(get_ship_platform(select_Position,ship_SelectType[iShipType])==0){ //__Please read explanation in function get_ship_platform.
+ printf("Please input correct position\n");
+ }else{
+ iShipType++;
+ if(state_place_ship == 0){
+ for(j=0;j<8;j++){
+ pic[j] = temppic3[0][j]+pic[j];
+ }
+ for(j=0;j<8;j++){
+ _temppic[j] = temppic2[j];
+ }
+ }
+ else if(state_place_ship == 1){
+ for(j=0;j<8;j++){
+ pic[j] = temppic2[j]+pic[j];
+ }
+ for(j=0;j<8;j++){
+ _temppic[j] = temppic3[1][j];
+ }
+ }
+ else if(state_place_ship == 2){
+ for(j=0;j<8;j++){
+ pic[j] = temppic3[1][j]+pic[j];
+ }
+ for(j=0;j<8;j++){
+ _temppic[j] = temppic3[2][j];
+ }
+ }
+ else if(state_place_ship == 3){
+ for(j=0;j<8;j++){
+ pic[j] = temppic3[2][j]+pic[j];
+ }
+ for(j=0;j<8;j++){
+ _temppic[j] = temppic3[3][j];
+ }
+ }
+ else if(state_place_ship == 4){
+ for(j=0;j<8;j++){
+ pic[j] = temppic3[3][j]+pic[j];
+ }
+ for(j=0;j<8;j++){
+ _temppic[j] = temppic3[4][j];
+ }
+ }
+ else if(state_place_ship == 5){
+ for(j=0;j<8;j++){
+ pic[j] = temppic3[4][j]+pic[j];
+ }
+ for(j=0;j<8;j++){
+ _temppic[j] = temppic3[5][j];
+ }
+ }
+ else if(state_place_ship == 6){
+ for(j=0;j<8;j++){
+ pic[j] = temppic3[5][j]+pic[j];
+ }
+ for(j=0;j<8;j++){
+ _temppic[j] = temppic3[6][j];
+ }
+ }
+ else if(state_place_ship == 7){
+ for(j=0;j<8;j++){
+ pic[j] = temppic3[6][j]+pic[j];
+ }
+ }
+ state_place_ship = state_place_ship + 1;
+ select_Position = 0;
+ }
+ check_ready();
+ iSW = 1;
+ print_ship_platform();
+ check_ready();
+ }
+ }else{
+ counter = 0;
+ if(enemy_ready!=1){
+ printf("sent E\n");
+ while(uli<50){
+ bt.printf("E");
+ uli++;
+ }
+ }else{
+ bt.putc('l');
+ printf("sent l\n");
+ }
+ printf("\n");
+ break;
+ }
+ }
+ if(enemy_ready == 0){
+ printf("Wait for enemy ready\n");
+ t.stop();
+ t.reset();
+ t.start();
+ while(1){
+ counter = counter+1;
+ if( counter == 60 ){
+ click = click+1;
+ counter=0;
+ }
+ if(click == 0){
+ rgbwait[0] = 0;
+ rgbwait[1] = 0;
+ rgbwait[2] = counter;
+ }
+ else if(click == 1){
+ rgbwait[0] = 0;
+ rgbwait[1] = counter;
+ rgbwait[2] = 60;
+ }
+ else if(click == 2){
+ rgb[0] = 0;
+ rgb[1] = 60;
+ rgb[2] = 60 - counter;
+ }
+ else if(click == 3){
+ rgbwait[0] = counter;
+ rgbwait[1] = 60;
+ rgbwait[2] = 0;
+ }
+ else if(click == 4){
+ rgbwait[0] = 60;
+ rgbwait[1] = 60 - counter;
+ rgbwait[2] = 0;
+ }
+ else if(click == 5){
+ rgbwait[0] = 60;
+ rgbwait[1] = 0;
+ rgbwait[2] = counter;
+ }
+ else if(click == 6){
+ rgbwait[0] = 60 - counter;
+ rgbwait[1] = 0;
+ rgbwait[2] = 60;
+ }
+ else if(click == 7){
+ rgbwait[0] = 0;
+ rgbwait[1] = 0;
+ rgbwait[2] = 60;
+ click = 1;
+ }
+ if(t.read()<0.2){dotmatrix.display_pic(picwait[0],rgbwait);}
+ else if(t.read()>0.2 && t.read()<=0.4){dotmatrix.display_pic(picwait[1],rgbwait);}
+ else if(t.read()>0.4 && t.read()<=0.6){dotmatrix.display_pic(picwait[2],rgbwait);}
+ else if(t.read()>0.6 && t.read()<=0.8){dotmatrix.display_pic(picwait[3],rgbwait);}
+ else if(t.read()>0.8 && t.read()<=1){dotmatrix.display_pic(picwait[4],rgbwait);}
+ else if(t.read()>1 && t.read()<=1.2){dotmatrix.display_pic(picwait[5],rgbwait);}
+ else if(t.read()>1.2 && t.read()<=1.4){dotmatrix.display_pic(picwait[6],rgbwait);}
+ else if(t.read()>1.4 && t.read()<=1.6){dotmatrix.display_pic(picwait[7],rgbwait);}
+ else if(t.read()>1.6 && t.read()<=1.8){dotmatrix.display_pic(picwait[8],rgbwait);}
+ else if(t.read()>1.8 ){t.reset();}
+
+ if(bt.readable()){
+ if(bt.getc()=='l'){
+ break;
+ }
+ }
+ }
+ state = 0;
+ }else{state = 1;}
+ hex_to_array_ship(pic);
+
+ t.stop();
+ t.reset();
+ t.start();
+ while(1){
+ counter = counter+1;
+ if( counter == 60 ){
+ click = click+1;
+ counter=0;
+ }
+ if(click == 0){
+ rgbtto[0] = 0;
+ rgbtto[1] = 0;
+ rgbtto[2] = counter;
+ }
+ else if(click == 1){
+ rgbtto[0] = 0;
+ rgbtto[1] = counter;
+ rgbtto[2] = 60;
+ }
+ else if(click == 2){
+ rgbtto[0] = 0;
+ rgbtto[1] = 60;
+ rgbtto[2] = 60 - counter;
+ }
+ else if(click == 3){
+ rgbtto[0] = counter;
+ rgbtto[1] = 60;
+ rgbtto[2] = 0;
+ }
+ else if(click == 4){
+ rgbtto[0] = 60;
+ rgbtto[1] = 60 - counter;
+ rgbtto[2] = 0;
+ }
+ else if(click == 5){
+ rgbtto[0] = 60;
+ rgbtto[1] = 0;
+ rgbtto[2] = counter;
+ }
+ else if(click == 6){
+ rgbtto[0] = 60 - counter;
+ rgbtto[1] = 0;
+ rgbtto[2] = 60;
+ }
+ else if(click == 7){
+ rgbtto[0] = 0;
+ rgbtto[1] = 0;
+ rgbtto[2] = 60;
+ click = 1;
+ }
+ if(t.read()<1.5){dotmatrix.display_pic(threetwoone[0],rgbtto);}
+ else if(t.read()>1.5 && t.read()<3){dotmatrix.display_pic(threetwoone[1],rgbtto);}
+ else if(t.read()>3 && t.read()<4.5){dotmatrix.display_pic(threetwoone[2],rgbtto);}
+ else if(t.read()>4.5 && t.read()<6){dotmatrix.display_pic(threetwoone[3],rgb);}
+ else{break;}
+ }
+
+ t.stop();
+ t.reset();
+
+ while(1) { //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Play
+ if(state == 0){
+ printf("Your turn.\n");
+ atk_enemy();
+ printf("This is enemy_platform.\n");
+ print_enemy_platform();
+ state = 1;
+ }else{
+ printf("Wait for enemy attack.\n");
+ enemy_atk();
+ if(check_win==1){
+ dotmatrix.display_pic(winlose[0],rgbwin);
+ printf("BOO!! You Win!\n");
+ break;
+ }
+ printf("This is atk_platform.\n");
+ print_atk_platform();
+ printf("This is ship_destroyed. : ");
+ print_ship_destroyed();
+ if(TellUrEnemy_uWin()==1){
+ while(uli<100){
+ bt.putc('u');
+ uli++;
+ }
+ dotmatrix.display_pic(winlose[1],rgblose);
+ printf("BOO!! You lost!\n");
+ break;
+ }else{state = 0;}
+ }
+ }
+ while(1){
+ printf("END\n");
+ if(check_win == 1){dotmatrix.display_pic(winlose[0],rgbwin);}
+ else{dotmatrix.display_pic(winlose[1],rgblose);}
+ }
+
+}
+
+/******************************************************************************/
+/* */
+/* */
+/* Another function */
+/* */
+/* */
+/******************************************************************************/
+
+char check_joys(int jx,int jy){ //-----------------------------------------------Check joystick that it up,down,left or right.
+
+ if(ifUrJirat==1){
+ if(jx < 14.0){ return 'a';}
+ else if(jx > 1010.0){return 'd';}
+ else if(jy < 14.0){ return 'w';}
+ else if(jy > 1010.0){return 's';}
+ else{return NULL;}
+ }else{
+ if(jx < 14.0){ return 'd';}
+ else if(jx > 1010.0){return 'a';}
+ else if(jy < 14.0){ return 's';}
+ else if(jy > 1010.0){return 'w';}
+ else{return NULL;}
+ }
+}
+int check_joys_int(int jx,int jy){ //--------------------------------------------Check joystick that it is centre.
+ if(jx>=450.0&&jx<=600.0){
+ if(jy>=450.0&&jy<=600.0){
+ return 1;
+ }else{
+ return 0;
+ }
+ }else{
+ return 0;
+ }
+}
+void Select_Position(char M,int SetOrPlay){ //-------------------------------------------------Change position of cursor (Joystick).
+ int protect_ships;
+ protect_ships = protect_ship(select_Position,ship_SelectType[iShipType]);
+ switch(M){
+ case 'a':
+ if(select_Position%10!=0){
+ select_Position = select_Position - 1;
+ }
+ break;
+ case 'd':
+ if(select_Position%10!=7){
+ if(SetOrPlay==1){
+ select_Position = select_Position + 1;
+ }else{
+ if(protect_ships==1 or protect_ships==0){
+ select_Position = select_Position + 1;
+ }
+ }
+ }
+ break;
+ case 'w':
+ if(select_Position/10!=0){
+ select_Position = select_Position - 10;
+ }
+ break;
+ case 's':
+ if(select_Position/10!=7){
+ if(SetOrPlay==1){
+ select_Position = select_Position + 10;
+ }else{
+ if(protect_ships==1 or protect_ships==2){
+ select_Position = select_Position + 10;
+ }
+ }
+ }
+ break;
+ }
+}
+int protect_ship(int head_position,int ship_type){
+ int x,y = 0;
+ y = head_position/10;
+ x = head_position%10;
+ if(ship_type==4){if((y+4)>7){return 0;}else{return 1;}}
+ else if(ship_type==3){if((x+3)>7){return 2;}else{return 1;}}
+ else if(ship_type==2){if((y+2)>7){return 0;}else{return 1;}}
+ else{return 1;}
+}
+int get_ship_platform(int input_position,int ship_type){ //-----------------------Plot ship in ship area.
+ int i,x,y = 0;
+ int error = 0;
+
+ y = input_position/10;
+ x = input_position%10;
+
+ for(i=0;i<ship_type;i++){
+ if(check_correctPosition(y,x) == 1){
+ if(ship_type == 4){ship4[i] = (y*10)+x;}
+ else if(ship_type == 3){ship3[i] = (y*10)+x;}
+ else if(ship_type == 2){ship2[check_ship2][i] = (y*10)+x;}
+ else if(ship_type == 1){ship1[check_ship1] = (y*10)+x;check_ship1++;}
+ }else{error = 1;break;}
+ if(ship_type%2 == 0){y++;}else{x++;}
+ }
+ if(ship_type==2){check_ship2++;}
+ if(error == 1){return 0;}else{
+ y = input_position/10;
+ x = input_position%10;
+ for(i=0;i<ship_type;i++){
+ if(ship_type == 2 and check_ship2==1){
+ ship_platform[y][x] = ship_type + 3;
+ }else{ship_platform[y][x] = ship_type;}
+ if(ship_type%2 == 0){y++;}else{x++;}
+ }
+ return 1;
+ }
+}
+int check_correctPosition(int X,int Y){
+ if(X<=7){
+ if(Y<=7){
+ if(ship_platform[X][Y] == 0){return 1;}else{return 0;}
+ }else{return 0;}
+ }else{return 0;}
+}
+void print_ship_platform(){
+ for(int i=0;i<8;i++){
+ for(int j=0;j<8;j++){
+ printf("| %d |",ship_platform[i][j]);
+ }
+ printf("\n");
+ }
+}
+void print_enemy_platform(){
+ for(int i=0;i<8;i++){
+ for(int j=0;j<8;j++){
+ printf("| %d |",enemy_platform[i][j]);
+ }
+ printf("\n");
+ }
+}
+void print_atk_platform(){
+ for(int i=0;i<8;i++){
+ for(int j=0;j<8;j++){
+ printf("| %d |",atk_platform[i][j]);
+ }
+ printf("\n");
+ }
+}
+void print_ship_destroyed(){
+ printf("{");
+ for(int i=0;i<8;i++){
+ printf("%d",ship_destroyed[i]);
+ if(i!=14){printf(",");}
+ }
+ printf("}\n");
+}
+void check_ready(){
+ if(bt.readable()){enemy_ready = 1;}
+}
+char posit2char(int posit){
+ int as = posit+48;
+ char ch = as;
+ return ch ;
+}
+int char2posit(char cha){
+ int as = cha;
+ as = as-48;
+ return as;
+}
+void get_atk_platform(int atkpos){
+ int i,j,k,x,y,error = 0;
+
+ x = atkpos/10;
+ y = atkpos%10;
+
+ if(ship_platform[x][y]!=0){
+ change_orange_myship(x,y);
+
+ if(atk_platform[x][y]==0){
+ atk_platform[x][y] = ship_platform[x][y];
+ printf("posit2char : %c\n",posit2char(atk_platform[x][y]));
+ bt.putc(posit2char(atk_platform[x][y]));
+ for(k=0;k<15;k++){
+ if(ship_underATK[k]==atkpos){error=1;break;}
+ }
+ if (error!=1) {
+ ship_underATK[check_ship_underATK] = atkpos;
+ check_ship_underATK++;
+ if(atk_platform[x][y]==4){
+ for(i=0;i<4;i++){
+ for(j=0;j<15;j++){
+ if(ship4[i]==ship_underATK[j]){ship_destroyed[0]++;}
+ }
+ }
+ }else if(atk_platform[x][y]==3){
+ for(i=0;i<3;i++){
+ for(j=0;j<15;j++){
+ if(ship3[i]==ship_underATK[j]){ship_destroyed[1]++;}
+ }
+ }
+ }else if(atk_platform[x][y]==5){
+ for(i=0;i<2;i++){
+ for(j=0;j<15;j++){
+ if(ship2[0][i]==ship_underATK[j]){ship_destroyed[2]++;}
+ }
+ }
+ }else if(atk_platform[x][y]==2){
+ for(i=0;i<2;i++){
+ for(j=0;j<15;j++){
+ if(ship2[1][i]==ship_underATK[j]){ship_destroyed[3]++;}
+ }
+ }
+ }else if(atk_platform[x][y]==1){
+ atk_platform[x][y] = 11;
+ ship_myShipsRdestroyed[iGSU] = atkpos;
+ for(i=0;i<4;i++){
+ for(j=0;j<15;j++){
+ if(ship3[i]==ship_underATK[j]){
+ ship_destroyed[4+i]++;
+ iGSU++;
+ }
+ }
+ }
+ }
+ }
+ }else{
+ printf("You repeatedly attacked.\n");
+ }
+ }else{
+ change_green_myship(x,y);
+ atk_platform[x][y] = 8;
+ bt.putc(posit2char(atk_platform[x][y]));
+ }
+
+}
+void get_ship_UShipsRdestroyed(){
+ int error=0;
+ int ship[8] = {0};
+ for(int k=0;k<2;k++){
+ for(int i=0;i<8;i++){
+ for(int j=0;j<8;j++){
+ if(enemy_platform[i][j]==4){
+ error=0;
+ if(k==0){ship[0]++;}
+ if(ship[4]==1){
+ for(int l=0;l<15;l++){
+ if(ship_UShipsRdestroyed[l]==(i*10)+j){error=1;break;}
+ }
+ if(error!=1){
+ ship_UShipsRdestroyed[iSUSPD] = (i*10)+j;
+ iSUSPD++;
+ }
+ }
+ }
+ else if(enemy_platform[i][j]==3){
+ error=0;
+ if(k==0){
+ ship[1]++;
+ }
+ if(ship[5]==1){
+ for(int l=0;l<15;l++){
+ if(ship_UShipsRdestroyed[l]==(i*10)+j){error=1;break;}
+ }
+ if(error!=1){
+ ship_UShipsRdestroyed[iSUSPD] = (i*10)+j;
+ iSUSPD++;
+ }
+ }
+ }
+ else if(enemy_platform[i][j]==2){
+ error=0;
+ if(k==0){
+ ship[2]++;
+ }
+ if(ship[6]==1){
+ for(int l=0;l<15;l++){
+ if(ship_UShipsRdestroyed[l]==(i*10)+j){error=1;break;}
+ }
+ if(error!=1){
+ ship_UShipsRdestroyed[iSUSPD] = (i*10)+j;
+ iSUSPD++;
+ }
+ }
+ }
+ else if(enemy_platform[i][j]==5){
+ error=0;
+ if(k==0){
+ ship[3]++;
+ }
+ if(ship[7]==1){
+ for(int l=0;l<15;l++){
+ if(ship_UShipsRdestroyed[l]==(i*10)+j){error=1;break;}
+ }
+ if(error!=1){
+ ship_UShipsRdestroyed[iSUSPD] = (i*10)+j;
+ iSUSPD++;
+ }
+ }
+ }
+ else if(enemy_platform[i][j]==1){
+ for(int l=0;l<15;l++){
+ if(ship_UShipsRdestroyed[l]==(i*10)+j){error=1;break;}
+ }
+ if(error!=1){
+ ship_UShipsRdestroyed[iSUSPD] = (i*10)+j;
+ iSUSPD++;
+ }
+ }
+ }
+ }
+ if(ship[0]==4){ship[4]=1;}
+ if(ship[1]==3){ship[5]=1;}
+ if(ship[2]==2){ship[6]=1;}
+ if(ship[3]==2){ship[7]=1;}
+ }/*
+ printf("ship[] : ");
+ for (int i=0;i<8;i++) {
+ printf("| %d |", ship[i]);
+ }
+ printf("\n");
+ for(int i=0;i<15;i++){
+ printf("| %d ",ship_UShipsRdestroyed[i] );
+ }
+ printf("\n");*/
+}
+void mark_ship_destroyed(){
+ int i,j,k = 0;
+
+ if(ship_destroyed[0]==10){
+ for(i=0;i<8;i++){
+ for(j=0;j<8;j++){
+ if(atk_platform[i][j]==4){
+ atk_platform[i][j] = 11;
+ ship_myShipsRdestroyed[iGSU] = (i*10)+j;
+ iGSU++;
+ }
+ }
+ }
+ }
+ if(ship_destroyed[1]==6){
+ for(i=0;i<8;i++){
+ for(j=0;j<8;j++){
+ if(atk_platform[i][j]==3){
+ atk_platform[i][j] = 11;
+ ship_myShipsRdestroyed[iGSU] = (i*10)+j;
+ iGSU++;
+ }
+ }
+ }
+ }
+ if(ship_destroyed[2]==3){
+ for(k=0;k<2;k++){
+ i = ship2[0][k]/10;
+ j = ship2[0][k]%10;
+ atk_platform[i][j] = 11;
+ ship_myShipsRdestroyed[iGSU] = (i*10)+j;
+ iGSU++;
+ }
+ }
+ if(ship_destroyed[3]==3){
+ for(k=0;k<2;k++){
+ i = ship2[1][k]/10;
+ j = ship2[1][k]%10;
+ atk_platform[i][j] = 11;
+ ship_myShipsRdestroyed[iGSU] = (i*10)+j;
+ iGSU++;
+ }
+ }
+}
+void atk_enemy(){
+ // comment for display : see only bomb and history of planting
+ float Vx;
+ float Vy;
+ int SW,iVxVy,iSW,n = 0;
+ char m;
+
+ select_Position = 0;
+ t.start();
+ while(1){
+ for(int i = 0;i<8;i++){
+ for (int j = 0 ;j < 8; j++) {
+ main_frame1[i][j][0] = plot_bombed_usage[i][j][0] + bomb[i][j][0];
+ main_frame1[i][j][1] = plot_bombed_usage[i][j][1] + bomb[i][j][1];
+ main_frame1[i][j][2] = plot_bombed_usage[i][j][2] + bomb[i][j][2];
+ }
+ }
+
+ if(t.read()<0.4){
+ dotmatrix.display_big_array(main_frame1);
+ }
+ else if(t.read() > 0.4 && t.read() < 0.8){
+ dotmatrix.display_big_array(plot_bombed_usage);
+ }
+ else{
+ t.reset();
+ }
+ Vx = VRx.read() * 1024;
+ Vy = VRy.read() * 1024;
+ SW = Button.read();
+ m = check_joys(Vx,Vy);
+ n = check_joys_int(Vx,Vy);
+ if(n == 1){ iVxVy = 0;}
+ if(SW == 1){
+ iSW = 0;
+ }
+ if(iSW == 1){
+ if(bt.readable()){
+ enemy_platform[select_Position/10][select_Position%10] = char2posit(bt.getc());
+ if(enemy_platform[select_Position/10][select_Position%10] == 8){
+ change_green_hisship(select_Position/10,select_Position%10);
+ }
+ else{
+ change_orange_hisship(select_Position/10,select_Position%10);
+ }
+ get_ship_UShipsRdestroyed();
+ change_red_deadship(ship_UShipsRdestroyed,1);
+ t.stop();
+ t.reset();
+ t.start();
+ while (1) {
+ if(t.read()<1){dotmatrix.display_big_array(plot_bombed_usage);}
+ else{break;} // try++++++++++++++++++++++++++++++++++
+ }
+ set_zero();
+ break;
+ }
+ }
+ if(m!=NULL and iVxVy==0){
+ Select_Position(m,1);
+ plant_bomb(m);
+ printf("select_Position = %d\n",select_Position);
+ bt.putc(posit2char(select_Position));
+ iVxVy = 1;
+ }
+ if(SW==0 && iSW==0){
+ bt.putc('B');
+ printf("You attacking at position %d\n",select_Position);
+ iSW = 1;
+ }
+ }
+}
+void enemy_atk(){
+ int data_fromEnemy;
+ char replica_data_fromEnemy;
+ select_Position = 0;
+ t.start();
+ while(1){
+ for(int i = 0;i<8;i++){
+ for (int j = 0 ;j < 8; j++) {
+ main_frame2[i][j][0] = ship[i][j][0] + bomb_enemy[i][j][0];
+ main_frame2[i][j][1] = ship[i][j][1] + bomb_enemy[i][j][1];
+ main_frame2[i][j][2] = ship[i][j][2] + bomb_enemy[i][j][2];
+ }
+ }
+ if(t.read()<0.4){
+ dotmatrix.display_big_array(main_frame2);
+ }
+ else if(t.read() > 0.4 && t.read() < 0.8){
+ dotmatrix.display_big_array(ship);
+ }
+ else{
+ t.reset();
+ }
+ if(bt.readable()){
+ replica_data_fromEnemy = bt.getc();
+ if(replica_data_fromEnemy!='u' and replica_data_fromEnemy!=8){
+ data_fromEnemy = char2posit(replica_data_fromEnemy);
+ if(data_fromEnemy != 18){
+ select_Position = data_fromEnemy;
+ display_bomb_enemy(select_Position/10,select_Position%10);
+ printf("enemy select_Position = %d\n",select_Position);
+ }else{
+ ATKposition = select_Position;
+
+ break;
+ }
+ }
+ if(replica_data_fromEnemy=='u'){
+ check_win = 1;
+ break;
+ }
+ }
+ }
+ if(check_win!=1){
+ printf("Enemy attack at your area %d\n",ATKposition);
+ get_atk_platform(ATKposition);
+ t.stop();
+ t.reset();
+ t.start();
+ while (1) {
+ if(t.read()<1){dotmatrix.display_big_array(ship);}
+ else{break;} // try++++++++++++++++++++++++++++++++++
+ }
+ mark_ship_destroyed();
+ change_red_deadship(ship_myShipsRdestroyed,0);
+ }
+ for (int i = 0; i < 15; i++) {
+ printf("! %d !", ship_underATK[i]);
+ }
+
+}
+int TellUrEnemy_uWin(){
+ int sub_end = 0;
+
+ for(int i=0;i<15;i++){
+ if(ship_underATK[i]!=9){sub_end++;}
+ }
+ if(sub_end==15){return 1;}else{return 0;}
+}
+int IamWin(){
+ char chare;
+ if(bt.readable()){
+ chare = bt.getc();
+ if(chare=='u'){return 1;}else{return 0;}
+ }else{return 0;}
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// ____________________________________________________________________________________________________________________________________Nasarun's function.
+
+void hex_to_array(int* ar){
+ int i;
+ int j;
+ int temp;
+ for(i = 0;i<8;i++){
+ temp = ar[i];
+ for(j = 0;j<8;j++){
+ if(0x80 & temp){
+ return_position[i][j] = 1;
+ }
+ else{
+ return_position[i][j] = 0;
+ }
+ temp = temp << 1;
+ }
+ }
+}
+
+void ch_same_position(int ar1[8][8],int ar2[8][8]){
+ int i;
+ int j;
+ for(i = 0;i<8;i++){
+ for(j = 0;j<8;j++){
+ if(ar1[i][j] == 1 && ar2[i][j] == 1){
+ ch_post[i][j] = 1;
+ }
+ else{
+ ch_post[i][j] = 0;
+ }
+ }
+ }
+
+}
+
+void discard_same_position(int ar1[8][8],int ar2[8][8]){
+ int i;
+ int j;
+ for(i = 0;i<8;i++){
+ for(j = 0;j<8;j++){
+ if(ar1[i][j] == ch_post[i][j] && ar2[i][j] == ch_post[i][j] ){
+ ar1[i][j] = 0;
+ ar2[i][j] = 0;
+ }
+ }
+ }
+}
+
+
+int _power(int number , int power){
+ int i = 0;
+ int number1 = number;
+ if(power == 0){return 1;}
+ for(i = 1 ; i <= power ; i++ ){
+ if(power == 1){return number;}
+ if(i == 1){number = number * 1;}
+ else{number1 = number1 * number;}
+ }
+return number1;
+}
+
+
+void array_to_hex(int ar1[8][8]){
+ int prompt;
+ int i;
+ int j;
+ for(i = 0;i<8;i++){
+ for(j = 0;j<8;j++){
+ prompt = _power(2,7-j);
+ if(ar1[i][j] == 1){
+ for_hex = for_hex + prompt;
+ }
+ else{
+ for_hex = for_hex + 0;
+ }
+ }
+ return_hex[i] = for_hex;
+ prompt = 0;
+ for_hex = 0;
+ }
+}
+
+void place_ship3(char dir){
+ int post1[8][8] = {0};
+ int post2[8][8] = {0};
+ int hex_post1[8] = {0};
+ int hex_post2[8] = {0};
+ int hex_post_cut[8] = {0};
+ int get_same_position[8][8];
+ int wow=0;
+
+ if(dir == 'w'&& temppic2[0] == 0){
+ for(j=0;j<8;j++){
+ if(j == 7){
+ forshift[7] = 0;
+ }
+ else{
+ forshift[j] = temppic2[j+1];
+ }
+ }
+ for(j=0;j<8;j++){
+ temppic2[j] = forshift[j];
+ _temppic[j] = temppic2[j];
+ }
+ // begin to compare and combine two frame
+ hex_to_array(_temppic);
+ for(i = 0;i<8;i++){
+ for(j = 0;j<8;j++){
+ post1[i][j] = return_position[i][j];
+ }
+ }
+ hex_to_array(pic);
+ for(i = 0;i<8;i++){
+ for(j = 0;j<8;j++){
+ post2[i][j] = return_position[i][j];
+ }
+ }
+
+ // begin to check boypeacemaker
+ ch_same_position(post1,post2);
+ for(i=0;i<8;i++){
+ for(j=0;j<8;j++){
+ get_same_position[i][j] = ch_post[i][j];
+ if(get_same_position[i][j] == 1){
+ wow = 1;
+ }
+ }
+ }
+ if(wow == 0){
+ for(i=0;i<8;i++){_temppic[i] = temppic2[i]+pic[i];}
+ }
+ else{
+ discard_same_position(post1,post2);
+ array_to_hex(post1);
+ for(i = 0;i<8;i++){
+ hex_post1[i] = return_hex[i];
+ }
+ array_to_hex(post2);
+ for(i = 0;i<8;i++){
+ hex_post2[i] = return_hex[i];
+ }
+ array_to_hex(get_same_position);
+ for(i = 0;i<8;i++){
+ hex_post_cut[i] = return_hex[i];
+ }
+ for(i = 0;i<8;i++){
+ _temppic[i] = hex_post1[i] + hex_post2[i] + hex_post_cut[i];
+ }
+ }
+ }
+ if(dir == 'd'){
+ for(i=0;i<8;i++){
+ if(temppic2[i] == 0xe0){
+ check_boat3 = 1;
+ }
+ }
+ if(check_boat3 == 0){
+ for(j=0;j<8;j++){
+ if(temppic2[j] != 0){
+ temppic2[j] = temppic2[j]*2;
+ }
+ else{
+ temppic2[j] = 0;
+ }
+ _temppic[j] = temppic2[j];
+ }
+ // begin to compare and combine two frame
+ hex_to_array(_temppic);
+ for(i = 0;i<8;i++){
+ for(j = 0;j<8;j++){
+ post1[i][j] = return_position[i][j];
+ }
+ }
+ hex_to_array(pic);
+ for(i = 0;i<8;i++){
+ for(j = 0;j<8;j++){
+ post2[i][j] = return_position[i][j];
+ }
+ }
+
+ // begin to check boypeacemaker
+ ch_same_position(post1,post2);
+ for(i=0;i<8;i++){
+ for(j=0;j<8;j++){
+ get_same_position[i][j] = ch_post[i][j];
+ if(get_same_position[i][j] == 1){
+ wow = 1;
+ }
+ }
+ }
+ if(wow == 0){
+ for(i=0;i<8;i++){_temppic[i] = temppic2[i]+pic[i];}
+ }
+ else{
+ discard_same_position(post1,post2);
+ array_to_hex(post1);
+ for(i = 0;i<8;i++){
+ hex_post1[i] = return_hex[i];
+ }
+ array_to_hex(post2);
+ for(i = 0;i<8;i++){
+ hex_post2[i] = return_hex[i];
+ }
+ array_to_hex(get_same_position);
+ for(i = 0;i<8;i++){
+ hex_post_cut[i] = return_hex[i];
+ }
+ for(i = 0;i<8;i++){
+ _temppic[i] = hex_post1[i] + hex_post2[i] + hex_post_cut[i];
+ }
+ }
+ }
+ check_boat3 = 0;
+ }
+ if(dir == 'a'){
+ for(i=0;i<8;i++){
+ if(temppic2[i] == 0x07){
+ check_boat3 = 1;
+ }
+ }
+ if(check_boat3 == 0){
+ for(j=0;j<8;j++){
+ if(temppic2[j] != 0){
+ temppic2[j] = temppic2[j]/2;
+ }
+ else{
+ temppic2[j] = 0;
+ }
+ _temppic[j] = temppic2[j];
+ }
+ // begin to compare and combine two frame
+ hex_to_array(_temppic);
+ for(i = 0;i<8;i++){
+ for(j = 0;j<8;j++){
+ post1[i][j] = return_position[i][j];
+ }
+ }
+ hex_to_array(pic);
+ for(i = 0;i<8;i++){
+ for(j = 0;j<8;j++){
+ post2[i][j] = return_position[i][j];
+ }
+ }
+
+ // begin to check boypeacemaker
+ ch_same_position(post1,post2);
+ for(i=0;i<8;i++){
+ for(j=0;j<8;j++){
+ get_same_position[i][j] = ch_post[i][j];
+ if(get_same_position[i][j] == 1){
+ wow = 1;
+ }
+ }
+ }
+ if(wow == 0){
+ for(i=0;i<8;i++){_temppic[i] = temppic2[i]+pic[i];}
+ }
+ else{
+ discard_same_position(post1,post2);
+ array_to_hex(post1);
+ for(i = 0;i<8;i++){
+ hex_post1[i] = return_hex[i];
+ }
+ array_to_hex(post2);
+ for(i = 0;i<8;i++){
+ hex_post2[i] = return_hex[i];
+ }
+ array_to_hex(get_same_position);
+ for(i = 0;i<8;i++){
+ hex_post_cut[i] = return_hex[i];
+ }
+ for(i = 0;i<8;i++){
+ _temppic[i] = hex_post1[i] + hex_post2[i] + hex_post_cut[i];
+ }
+ }
+ }
+ check_boat3 = 0;
+ }
+ if(dir == 's' && temppic2[7] == 0){
+ for(j=0;j<8;j++){
+ if(j == 0){
+ forshift[0] = 0;
+ }
+ else{
+ forshift[j] = temppic2[j-1];
+ }
+ }
+ for(j=0;j<8;j++){
+ temppic2[j] = forshift[j];
+ _temppic[j] = temppic2[j];
+ }
+ // begin to compare and combine two frame
+ hex_to_array(_temppic);
+ for(i = 0;i<8;i++){
+ for(j = 0;j<8;j++){
+ post1[i][j] = return_position[i][j];
+ }
+ }
+ hex_to_array(pic);
+ for(i = 0;i<8;i++){
+ for(j = 0;j<8;j++){
+ post2[i][j] = return_position[i][j];
+ }
+ }
+
+ // begin to check boypeacemaker
+ ch_same_position(post1,post2);
+ for(i=0;i<8;i++){
+ for(j=0;j<8;j++){
+ get_same_position[i][j] = ch_post[i][j];
+ if(get_same_position[i][j] == 1){
+ wow = 1;
+ }
+ }
+ }
+ if(wow == 0){
+ for(i=0;i<8;i++){_temppic[i] = temppic2[i]+pic[i];}
+ }
+ else{
+ discard_same_position(post1,post2);
+ array_to_hex(post1);
+ for(i = 0;i<8;i++){
+ hex_post1[i] = return_hex[i];
+ }
+ array_to_hex(post2);
+ for(i = 0;i<8;i++){
+ hex_post2[i] = return_hex[i];
+ }
+ array_to_hex(get_same_position);
+ for(i = 0;i<8;i++){
+ hex_post_cut[i] = return_hex[i];
+ }
+ for(i = 0;i<8;i++){
+ _temppic[i] = hex_post1[i] + hex_post2[i] + hex_post_cut[i];
+ }
+ }
+
+ }
+}
+// ******************************************************************** ship 2 channal ******************************************************************
+
+void place_ship2_4(int ship,char dir){
+
+ int post1[8][8] = {0};
+ int post2[8][8] = {0};
+ int hex_post1[8] = {0};
+ int hex_post2[8] = {0};
+ int hex_post_cut[8] = {0};
+ int get_same_position[8][8];
+ int wow=0;
+
+ if(dir == 'w'&& temppic3[ship][0] == 0 ){
+ for(j=0;j<8;j++){
+ if(j == 7){
+ forshift[7] = 0;
+ }
+ else{
+ forshift[j] = temppic3[ship][j+1];
+ }
+ }
+ for(j=0;j<8;j++){
+ temppic3[ship][j] = forshift[j];
+ _temppic[j] = temppic3[ship][j];
+ }
+ // begin to compare and combine two frame
+ hex_to_array(_temppic);
+ for(i = 0;i<8;i++){
+ for(j = 0;j<8;j++){
+ post1[i][j] = return_position[i][j];
+ }
+ }
+ hex_to_array(pic);
+ for(i = 0;i<8;i++){
+ for(j = 0;j<8;j++){
+ post2[i][j] = return_position[i][j];
+ }
+ }
+
+ // begin to check boypeacemaker
+ ch_same_position(post1,post2);
+ for(i=0;i<8;i++){
+ for(j=0;j<8;j++){
+ get_same_position[i][j] = ch_post[i][j];
+ if(get_same_position[i][j] == 1){
+ wow = 1;
+ }
+ }
+ }
+ if(wow == 0){
+ for(i=0;i<8;i++){_temppic[i] = temppic3[ship][i]+pic[i];}
+ }
+ else{
+ discard_same_position(post1,post2);
+ array_to_hex(post1);
+ for(i = 0;i<8;i++){
+ hex_post1[i] = return_hex[i];
+ }
+ array_to_hex(post2);
+ for(i = 0;i<8;i++){
+ hex_post2[i] = return_hex[i];
+ }
+ array_to_hex(get_same_position);
+ for(i = 0;i<8;i++){
+ hex_post_cut[i] = return_hex[i];
+ }
+ for(i = 0;i<8;i++){
+ _temppic[i] = hex_post1[i] + hex_post2[i] + hex_post_cut[i];
+ }
+ }
+
+ }
+ if(dir == 'd' && temppic3[ship][0] != 0x80 && temppic3[ship][1] != 0x80 && temppic3[ship][2] != 0x80 && temppic3[ship][3] != 0x80 && temppic3[ship][4] != 0x80 && temppic3[ship][5] != 0x80 && temppic3[ship][6] != 0x80 && temppic3[ship][7] != 0x80 ){
+ for(j=0;j<8;j++){
+ if(temppic3[j] != 0){
+ temppic3[ship][j] = temppic3[ship][j]*2;
+ }
+ else{
+ temppic3[ship][j] = 0;
+ }
+ _temppic[j] = temppic3[ship][j];
+ }
+ // begin to compare and combine two frame
+ hex_to_array(_temppic);
+ for(i = 0;i<8;i++){
+ for(j = 0;j<8;j++){
+ post1[i][j] = return_position[i][j];
+ }
+ }
+ hex_to_array(pic);
+ for(i = 0;i<8;i++){
+ for(j = 0;j<8;j++){
+ post2[i][j] = return_position[i][j];
+ }
+ }
+
+ // begin to check boypeacemaker
+ ch_same_position(post1,post2);
+ for(i=0;i<8;i++){
+ for(j=0;j<8;j++){
+ get_same_position[i][j] = ch_post[i][j];
+ if(get_same_position[i][j] == 1){
+ wow = 1;
+ }
+ }
+ }
+ if(wow == 0){
+ for(i=0;i<8;i++){_temppic[i] = temppic3[ship][i]+pic[i];}
+ }
+ else{
+ discard_same_position(post1,post2);
+ array_to_hex(post1);
+ for(i = 0;i<8;i++){
+ hex_post1[i] = return_hex[i];
+ }
+ array_to_hex(post2);
+ for(i = 0;i<8;i++){
+ hex_post2[i] = return_hex[i];
+ }
+ array_to_hex(get_same_position);
+ for(i = 0;i<8;i++){
+ hex_post_cut[i] = return_hex[i];
+ }
+ for(i = 0;i<8;i++){
+ _temppic[i] = hex_post1[i] + hex_post2[i] + hex_post_cut[i];
+ }
+ }
+
+ }
+ if(dir == 'a' && temppic3[ship][0] != 0x01 && temppic3[ship][1] != 0x01 && temppic3[ship][2] != 0x01 && temppic3[ship][3] != 0x01 && temppic3[ship][4] != 0x01 && temppic3[ship][5] != 0x01 && temppic3[ship][6] != 0x01 && temppic3[ship][7] != 0x01){
+ for(j=0;j<8;j++){
+ if(temppic3[ship][j] != 0){
+ temppic3[ship][j] = temppic3[ship][j]/2;
+ }
+ else{
+ temppic3[ship][j] = 0;
+ }
+ _temppic[j] = temppic3[ship][j];
+ }
+ // begin to compare and combine two frame
+ hex_to_array(_temppic);
+ for(i = 0;i<8;i++){
+ for(j = 0;j<8;j++){
+ post1[i][j] = return_position[i][j];
+ }
+ }
+ hex_to_array(pic);
+ for(i = 0;i<8;i++){
+ for(j = 0;j<8;j++){
+ post2[i][j] = return_position[i][j];
+ }
+ }
+
+ // begin to check boypeacemaker
+ ch_same_position(post1,post2);
+ for(i=0;i<8;i++){
+ for(j=0;j<8;j++){
+ get_same_position[i][j] = ch_post[i][j];
+ if(get_same_position[i][j] == 1){
+ wow = 1;
+ }
+ }
+ }
+ if(wow == 0){
+ for(i=0;i<8;i++){_temppic[i] = temppic3[ship][i]+pic[i];}
+ }
+ else{
+ discard_same_position(post1,post2);
+ array_to_hex(post1);
+ for(i = 0;i<8;i++){
+ hex_post1[i] = return_hex[i];
+ }
+ array_to_hex(post2);
+ for(i = 0;i<8;i++){
+ hex_post2[i] = return_hex[i];
+ }
+ array_to_hex(get_same_position);
+ for(i = 0;i<8;i++){
+ hex_post_cut[i] = return_hex[i];
+ }
+ for(i = 0;i<8;i++){
+ _temppic[i] = hex_post1[i] + hex_post2[i] + hex_post_cut[i];
+ }
+ }
+
+ }
+ if(dir == 's' && temppic3[ship][7] == 0){
+ for(j=0;j<8;j++){
+ if(j == 0){
+ forshift[0] = 0;
+ }
+ else{
+ forshift[j] = temppic3[ship][j-1];
+ }
+ }
+ for(j=0;j<8;j++){
+ temppic3[ship][j] = forshift[j];
+ _temppic[j] = temppic3[ship][j];
+ }
+ // begin to compare and combine two frame
+ hex_to_array(_temppic);
+ for(i = 0;i<8;i++){
+ for(j = 0;j<8;j++){
+ post1[i][j] = return_position[i][j];
+ }
+ }
+ hex_to_array(pic);
+ for(i = 0;i<8;i++){
+ for(j = 0;j<8;j++){
+ post2[i][j] = return_position[i][j];
+ }
+ }
+
+ // begin to check boypeacemaker
+ ch_same_position(post1,post2);
+ for(i=0;i<8;i++){
+ for(j=0;j<8;j++){
+ get_same_position[i][j] = ch_post[i][j];
+ if(get_same_position[i][j] == 1){
+ wow = 1;
+ }
+ }
+ }
+ if(wow == 0){
+ for(i=0;i<8;i++){_temppic[i] = temppic3[ship][i]+pic[i];}
+ }
+ else{
+ discard_same_position(post1,post2);
+ array_to_hex(post1);
+ for(i = 0;i<8;i++){
+ hex_post1[i] = return_hex[i];
+ }
+ array_to_hex(post2);
+ for(i = 0;i<8;i++){
+ hex_post2[i] = return_hex[i];
+ }
+ array_to_hex(get_same_position);
+ for(i = 0;i<8;i++){
+ hex_post_cut[i] = return_hex[i];
+ }
+ for(i = 0;i<8;i++){
+ _temppic[i] = hex_post1[i] + hex_post2[i] + hex_post_cut[i];
+ }
+ }
+
+ }
+}
+void hex_to_array_ship(int *hex_array){
+ int i,j;
+ int temp;
+ for(i = 0; i<8;i++){
+ temp = hex_array[i];
+ for(j = 0;j<8;j++){
+ if(temp & 0x80){
+ ship[i][7-j][0] = 80;
+ ship[i][7-j][1] = 20;
+ }
+ else{
+ ship[i][7-j][0] = 0;
+ ship[i][7-j][1] = 0;
+ ship[i][7-j][2] = 0;
+ }
+ temp = temp << 1;
+ }
+ }
+}
+
+void plant_bomb(char dir){
+
+ //scanf("%c",&dir);
+ if(dir == 'w' && row>0){
+ row = row - 1;
+ for(i=0;i<3;i++){
+ temp_array[i] = bomb[row][col][i];
+ }
+ for(i=0;i<3;i++){
+ bomb[row][col][i] = bomb[row+1][col][i];
+ bomb[row+1][col][i] = temp_array[i];
+ }
+ iCheck = 0;
+ }else if(dir == 'a' && col>0){
+ col = col - 1;
+ for(i=0;i<3;i++){
+ temp_array[i] = bomb[row][col][i];
+ }
+ for(i=0;i<3;i++){
+ bomb[row][col][i] = bomb[row][col+1][i];
+ bomb[row][col+1][i] = temp_array[i];
+ }
+ iCheck = 0;
+ }else if(dir == 's' && row<7){
+ row = row + 1;
+ for(i=0;i<3;i++){
+ temp_array[i] = bomb[row][col][i];
+ }
+ for(i=0;i<3;i++){
+ bomb[row][col][i] = bomb[row-1][col][i];
+ bomb[row-1][col][i] = temp_array[i];
+ }
+ iCheck = 0;
+ }else if(dir == 'd' && col<7){
+ col = col + 1;
+ for(i=0;i<3;i++){
+ temp_array[i] = bomb[row][col][i];
+ }
+ for(i=0;i<3;i++){
+ bomb[row][col][i] = bomb[row][col-1][i];
+ bomb[row][col-1][i] = temp_array[i];
+ }
+ iCheck = 0;
+ }
+ // if change state pls use set_zero
+}
+
+void set_zero(){
+ memcpy(bomb,zero,sizeof bomb);
+ bomb[0][0][0] = 20;
+ bomb[0][0][1] = 20;
+ bomb[0][0][2] = 10;
+ row = 0;
+ col = 0;
+}
+
+void change_orange_myship(int row,int col){ // change to orange
+ //printf("plot orange (myship) at |%d,%d| \n",row,col);
+ for(int i = 0; i<8;i++){
+ for(int j = 0;j<8;j++){
+ if(i == row && j == col){
+ ship[i][j][0] = 0; //b
+ ship[i][j][1] = 150; //g
+ ship[i][j][2] = 250; //r
+ }
+ }
+ }
+}
+void change_orange_hisship(int row,int col){ // change to orange
+ //printf("plot orange (enemy ship) at |%d,%d| \n",row,col);
+ for(int i = 0; i<8;i++){
+ for(int j = 0;j<8;j++){
+ if(i == row && j == col){
+ plot_bombed_usage[i][j][0] = 0; //b
+ plot_bombed_usage[i][j][1] = 150; //g
+ plot_bombed_usage[i][j][2] = 250; //r
+ }
+ }
+ }
+}
+void change_red_hisship(int row,int col){ // change to red
+ //printf("plot red (enemy ship) at |%d,%d| \n",row,col);
+ for(int i = 0; i<8;i++){
+ for(int j = 0;j<8;j++){
+ if(i == row && j == col){
+ plot_bombed_usage[i][j][0] = 0;
+ plot_bombed_usage[i][j][1] = 0;
+ plot_bombed_usage[i][j][2] = 200;
+ }
+ }
+ }
+}
+void change_red_myship(int row,int col){ // change to red
+ //printf("plot red (my ship) at |%d,%d| \n",row,col);
+ for(int i = 0; i<8;i++){
+ for(int j = 0;j<8;j++){
+ if(i == row && j == col){
+ ship[i][j][0] = 0;
+ ship[i][j][1] = 0;
+ ship[i][j][2] = 200;
+ }
+ }
+ }
+}
+
+void change_red_deadship(int* array_coordinate,int mode){ // change to red
+ int row = 0;
+ int col = 0;
+ for(int i = 0;i<15;i++){
+ if(array_coordinate[i] != 9){
+ row = array_coordinate[i] / 10;
+ col = array_coordinate[i] % 10;
+ if(mode == 0){
+ change_red_myship(row,col);
+ }
+ else if(mode == 1){
+ change_red_hisship(row,col);
+ }
+ }
+ }
+}
+void change_green_myship(int row,int col){
+ for(int i = 0; i<8;i++){
+ for(int j = 0;j<8;j++){
+ if(i == row && j == col){
+ ship[i][j][0] = 0;
+ ship[i][j][1] = 200;
+ ship[i][j][2] = 0;
+ }
+ }
+ }
+}
+void change_green_hisship(int row,int col){
+ for(int i = 0; i<8;i++){
+ for(int j = 0;j<8;j++){
+ if(i == row && j == col){
+ plot_bombed_usage[i][j][0] = 0;
+ plot_bombed_usage[i][j][1] = 200;
+ plot_bombed_usage[i][j][2] = 0;
+ }
+ }
+ }
+}
+void display_bomb_enemy(int row,int col){
+ int zero_array[8][8][3] = {{{0}}};
+ memcpy(bomb_enemy,zero_array,sizeof bomb_enemy);
+ for(int i = 0; i<8;i++){
+ for(int j = 0;j<8;j++){
+ if(i == row && j == col){
+ bomb_enemy[i][j][0] = 20;
+ bomb_enemy[i][j][1] = 20;
+ bomb_enemy[i][j][2] = 10;
+ }
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Tue Dec 06 04:04:11 2016 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/d75b3fe1f5cb \ No newline at end of file