Orientuje się ktoś, jak mogę zmienić kod programu, gry "kółko i krzyżyk" (z zastosowaniem biblioteki allegro) tak, aby mieć planszę 4x4? Będę bardzo wdzięczny za pomoc. pozdrawiam.

#include <allegro.h>
#include <iostream>
using namespace std;
int kolko (int x,int y); //f rysujaca kolka
int krzyzyk (int x,int y);  //f rysujaca krzyzyki
int gracz1(); //f - ruchy gracza 1
int gracz2(); //f - ruchy gracza 2
int sprawdz(int x); // f sprawdzajaca i wyswietlajaca wynik
int wynik=0;
int z=0;
int i=1;
char p; //zmienna pomocnicza do porownywania
char log[9]; //historia naciskanych klawiszy
bool wynikg[2][9]; 
int main()
{ 
  allegro_init();
  install_keyboard();
  set_color_depth(16);
  set_gfx_mode(GFX_AUTODETECT_WINDOWED,600,600,0,0);
  clear_to_color(screen, makecol(128,128,128));
  hline(screen, 0, 400, 600, makecol(255,255,255));
  hline(screen, 0, 200, 600, makecol(255,255,255));
  hline(screen, 0, 600, 600, makecol(255,255,255));
  vline(screen, 200, 0, 600, makecol(255,255,255));
  vline(screen, 400, 0, 600, makecol(255,255,255));

while(!key[KEY_ESC] && wynik<1){

      p=readkey();      

      for(int i=0; i<z; i++){
          if (p==log[i]) {textprintf(screen,font,20,690,makecol(255,255,128),"Ruch nie dozwolony");
          i=-1;
          p=readkey();}
          }
      log[z]=p; 
      ::z++;
      gracz1();
      
      wynik=sprawdz(0);
      if (wynik>0) continue;
      textprintf(screen,font,20,650,makecol(255,255,128),"Ruch gracza 2");
      p=readkey();

      for(int i=0; i<z; i++){
          if (p==log[i]) {textprintf(screen,font,20,690,makecol(255,255,128),"Ruch nie dozwolony");
          i=-1;
          p=readkey();}
          }
      log[z]=p; 
      ::z++;
      gracz2();
      wynik=sprawdz(1);
      };  

readkey();
allegro_exit();
//  system("pause");

 return 0;
} 
END_OF_MAIN(); 
//------------------------------------------------------------------------------
int gracz1(){
  if (key [KEY_1_PAD]) {
          kolko(100,500);
          wynikg[0][0] = true;}
  if (key [KEY_2_PAD]) {
          kolko(300,500);
          wynikg[0][1] = true;}
  if (key [KEY_3_PAD]) {
          kolko(500,500);
          wynikg[0][2] = true;}
  if (key [KEY_4_PAD]) {
          kolko(100,300);
          wynikg[0][3] = true;}
  if (key [KEY_5_PAD]) {
          kolko(300,300);
          wynikg[0][4] = true;}
  if (key [KEY_6_PAD]) {
          kolko(500,300);
          wynikg[0][5] = true;}
  if (key [KEY_7_PAD]) {
          kolko(100,100);
          wynikg[0][6] = true;}
  if (key [KEY_8_PAD]) {
          kolko(300,100);
          wynikg[0][7] = true;}
  if (key [KEY_9_PAD]) {
          kolko(500,100);
          wynikg[0][8] = true;}
}
int gracz2(){
  if (key [KEY_1_PAD]) {
          krzyzyk(0,400);
          wynikg[1][0] = true;}
  if (key [KEY_2_PAD]) {
          krzyzyk(200,400);
          wynikg[1][1] = true;}
  if (key [KEY_3_PAD]) {
          krzyzyk(400,400);
          wynikg[1][2] = true;}
  if (key [KEY_4_PAD]) {
          krzyzyk(000,200);
          wynikg[1][3] = true;}
  if (key [KEY_5_PAD]) {
          krzyzyk(200,200);
          wynikg[1][4] = true;}
  if (key [KEY_6_PAD]) {
          krzyzyk(400,200);
          wynikg[1][5] = true;}
  if (key [KEY_7_PAD]) {
          krzyzyk(0,0);
          wynikg[1][6] = true;}
  if (key [KEY_8_PAD]) {
          krzyzyk(200,0);
          wynikg[1][7] = true;}
  if (key [KEY_9_PAD]) {
          krzyzyk(400,0);
          wynikg[1][8] = true;}
}

int kolko (int x, int y){
  circle(screen, x, y,50, makecol(255,0,0));
  rest(2);
}
int krzyzyk (int x, int y){
  line( screen,x,y,x+200,y+200, makecol(0,255,0));
  line( screen,x,y+200,x+200,y, makecol(0,255,0));
  rest(2);
}
int sprawdz(int x){
    if (wynikg[x][0]&&wynikg[x][1]&&wynikg[x][2]==true ) {textprintf(screen,font,20,690,makecol(255,255,128),"BRAWO! WYGRYWA Gracz %d",x+1);
    return x+1;}
    if (wynikg[x][3]&&wynikg[x][4]&&wynikg[x][5]==true ) {textprintf(screen,font,20,690,makecol(255,255,128),"BRAWO! WYGRYWA Gracz %d",x+1);
    return x+1;}
    if (wynikg[x][6]&&wynikg[x][7]&&wynikg[x][8]==true ) {textprintf(screen,font,20,690,makecol(255,255,128),"BRAWO! WYGRYWA Gracz %d",x+1);
    return x+1;}
    if (wynikg[x][0]&&wynikg[x][4]&&wynikg[x][9]==true ) {textprintf(screen,font,20,690,makecol(255,255,128),"BRAWO! WYGRYWA Gracz %d",x+1);
    return x+1;}
    if (wynikg[x][2]&&wynikg[x][4]&&wynikg[x][6]==true ) {textprintf(screen,font,20,690,makecol(255,255,128),"BRAWI! WYGRYWA Gracz %d",x+1);
    return x+1;}
    if (wynikg[x][0]&&wynikg[x][3]&&wynikg[x][6]==true ) {textprintf(screen,font,20,690,makecol(255,255,128),"BARWO! WYGRYWA Gracz %d",x+1);
    return x+1;}
    if (wynikg[x][1]&&wynikg[x][4]&&wynikg[x][7]==true ) {textprintf(screen,font,20,690,makecol(255,255,128),"BRAWO! WYGRYWA Gracz %d",x+1);
    return x+1;}
    if (wynikg[x][2]&&wynikg[x][5]&&wynikg[x][8]==true ) {textprintf(screen,font,20,690,makecol(255,255,128),"BRAWO! WYGRYWA Gracz %d",x+1);
    return x+1;}
    else return 0;
}

Edit:
Zdenerwowałem się i napisałem tę grę dla planszy 4x4. Mam wiele obowiązków na innych przedmiotach, ale ten muszę zaliczyć. Trochę mi przykro, że mam takie słabe oceny z programowania, smutno jest być najgorszym, kiedy się człowiek stara. Denerwuje mnie wyścig szczurów o oceny i pyskówki studentów o punkty z laboratorium. Ja będę mieć ich jak najmniej, ale kij z tym... Może oddam swój program jako ostatni, ale grunt, że go zrobiłem samodzielnie. Nie przyda mi się w zawodzie, ale mam jakąś satysfakcję. Voilà!

#include <allegro.h>
#include <iostream>
using namespace std;
int kolko (int x,int y); //f rysujaca kolka
int krzyzyk (int x,int y);  //f rysujaca krzyzyki
int gracz1(); //f - ruchy gracza 1
int gracz2(); //f - ruchy gracza 2
int sprawdz(int x); // f sprawdzajaca i wyswietlajaca wynik
int wynik=0;
int z=0;
int i=1;
char p; //zmienna pomocnicza do porownywania
char log[9]; //historia naciskanych klawiszy
bool wynikg[2][9]; 
int main()
{ 
  allegro_init();
  install_keyboard();
  set_color_depth(16);
  set_gfx_mode(GFX_AUTODETECT_WINDOWED,600,600,0,0);
  clear_to_color(screen, makecol(128,128,128));
  line(screen, 150, 0, 150, 600, makecol(255,255,255));
  line(screen, 300, 0, 300, 600, makecol(255,255,255));
  line(screen, 450, 0, 450,600, makecol(255,255,255));
  line(screen, 0, 150, 600, 150, makecol(255,255,255));
  line(screen, 0, 300, 600, 300, makecol(255,255,255));
  line(screen, 0, 450, 600, 450, makecol(255,255,255));

while(!key[KEY_ESC] && wynik<1){
 
      p=readkey();      
 
      for(int i=0; i<z; i++){
          if (p==log[i]) {textprintf(screen,font,20,690,makecol(255,255,128),"Ruch nie dozwolony");
          i=-1;
          p=readkey();}
          }
      log[z]=p; 
      ::z++;
      gracz1();
 
      wynik=sprawdz(0);
      if (wynik>0) continue;
      textprintf(screen,font,20,650,makecol(255,255,128),"Ruch gracza 2");
      p=readkey();
 
      for(int i=0; i<z; i++){
          if (p==log[i]) {textprintf(screen,font,20,690,makecol(255,255,128),"Ruch nie dozwolony");
          i=-1;
          p=readkey();}
          }
      log[z]=p; 
      ::z++;
      gracz2();
      wynik=sprawdz(1);
      };  
 
readkey();
allegro_exit();
//  system("pause");
 
 return 0;
} 
END_OF_MAIN(); 
//------------------------------------------------------------------------------
int gracz1(){
  if (key [KEY_Z]) {
          kolko(75,525);
          wynikg[0][0] = true;}
  if (key [KEY_X]) {
          kolko(225,525);
          wynikg[0][1] = true;}
  if (key [KEY_C]) {
          kolko(375,525);
          wynikg[0][2] = true;}
  if (key [KEY_V]) {
          kolko(525,525);
          wynikg[0][3] = true;}
  if (key [KEY_A]) {
          kolko(75,375);
          wynikg[0][4] = true;}
  if (key [KEY_S]) {
          kolko(225,375);
          wynikg[0][5] = true;}
  if (key [KEY_D]) {
          kolko(375,375);
          wynikg[0][6] = true;}
  if (key [KEY_F]) {
          kolko(525,375);
          wynikg[0][7] = true;}
  if (key [KEY_Q]) {
          kolko(75,225);
          wynikg[0][8] = true;}
  if (key [KEY_W]) {
          kolko(225,225);
          wynikg[0][9] = true;}
  if (key [KEY_E]) {
          kolko(375,225);
          wynikg[0][10] = true;}
  if (key [KEY_R]) {
          kolko(525,225);
          wynikg[0][11] = true;}
  if (key [KEY_1]) {
          kolko(75,75);
          wynikg[0][12] = true;}
  if (key [KEY_2]) {
          kolko(225,75);
          wynikg[0][13] = true;}
  if (key [KEY_3]) {
          kolko(375,75);
          wynikg[0][14] = true;}
  if (key [KEY_4]) {
          kolko(525,75);
          wynikg[0][15] = true;}
}
int gracz2(){
  if (key [KEY_Z]) {
          krzyzyk(0,450);
          wynikg[1][0] = true;}
  if (key [KEY_X]) {
          krzyzyk(150,450);
          wynikg[1][1] = true;}
  if (key [KEY_C]) {
          krzyzyk(300,450);
          wynikg[1][2] = true;}
  if (key [KEY_V]) {
          krzyzyk(450,450);
          wynikg[1][3] = true;}
  if (key [KEY_A]) {
          krzyzyk(0,300);
          wynikg[1][4] = true;}
  if (key [KEY_S]) {
          krzyzyk(150,300);
          wynikg[1][5] = true;}
  if (key [KEY_D]) {
          krzyzyk(300,300);
          wynikg[1][6] = true;}
  if (key [KEY_F]) {
          krzyzyk(450,300);
          wynikg[1][7] = true;}
  if (key [KEY_Q]) {
          krzyzyk(0,150);
          wynikg[1][8] = true;}
  if (key [KEY_W]) {
          krzyzyk(150,150);
          wynikg[1][9] = true;}
  if (key [KEY_E]) {
          krzyzyk(300,150);
          wynikg[1][10] = true;}
  if (key [KEY_R]) {
          krzyzyk(450,150);
          wynikg[1][11] = true;}
  if (key [KEY_1]) {
          krzyzyk(0,0);
          wynikg[1][12] = true;}
  if (key [KEY_2]) {
          krzyzyk(150,0);
          wynikg[1][13] = true;}
  if (key [KEY_3]) {
          krzyzyk(300,0);
          wynikg[1][14] = true;}
  if (key [KEY_4]) {
          krzyzyk(450,0);
          wynikg[1][15] = true;}
}
 
int kolko (int x, int y){
  circle(screen, x, y,50, makecol(255,0,0));
  rest(2);
}
int krzyzyk (int x, int y){
  line( screen,x,y,x+150,y+150, makecol(0,255,0));
  line( screen,x,y+150,x+150,y, makecol(0,255,0));
  rest(2);
}
int sprawdz(int x){

    if (wynikg[x][0]&&wynikg[x][1]&&wynikg[x][2]&&wynikg[x][3]==true==true ) {textprintf(screen,font,20,690,makecol(255,255,128),"BRAWO! WYGRYWA Gracz %d",x+1);
    return x+1;}
    if (wynikg[x][4]&&wynikg[x][5]&&wynikg[x][6]&&wynikg[x][7]==true==true ) {textprintf(screen,font,20,690,makecol(255,255,128),"BRAWO! WYGRYWA Gracz %d",x+1);
    return x+1;}
    if (wynikg[x][8]&&wynikg[x][9]&&wynikg[x][10]&&wynikg[x][11]==true==true ) {textprintf(screen,font,20,690,makecol(255,255,128),"BRAWO! WYGRYWA Gracz %d",x+1);
    return x+1;}
    if (wynikg[x][12]&&wynikg[x][13]&&wynikg[x][14]&&wynikg[x][15]==true==true ) {textprintf(screen,font,20,690,makecol(255,255,128),"BRAWO! WYGRYWA Gracz %d",x+1);
    return x+1;}
    if (wynikg[x][0]&&wynikg[x][4]&&wynikg[x][8]&&wynikg[x][12]==true==true ) {textprintf(screen,font,20,690,makecol(255,255,128),"BRAWO! WYGRYWA Gracz %d",x+1);
    return x+1;}
     if (wynikg[x][13]&&wynikg[x][9]&&wynikg[x][5]&&wynikg[x][1]==true==true ) {textprintf(screen,font,20,690,makecol(255,255,128),"BRAWO! WYGRYWA Gracz %d",x+1);
    return x+1;}
     if (wynikg[x][14]&&wynikg[x][10]&&wynikg[x][6]&&wynikg[x][2]==true==true ) {textprintf(screen,font,20,690,makecol(255,255,128),"BRAWO! WYGRYWA Gracz %d",x+1);
    return x+1;}
     if (wynikg[x][15]&&wynikg[x][11]&&wynikg[x][7]&&wynikg[x][3]==true==true ) {textprintf(screen,font,20,690,makecol(255,255,128),"BRAWO! WYGRYWA Gracz %d",x+1);
    return x+1;}
     if (wynikg[x][0]&&wynikg[x][5]&&wynikg[x][10]&&wynikg[x][15]==true==true ) {textprintf(screen,font,20,690,makecol(255,255,128),"BRAWO! WYGRYWA Gracz %d",x+1);
    return x+1;}
     if (wynikg[x][3]&&wynikg[x][6]&&wynikg[x][9]&&wynikg[x][12]==true==true ) {textprintf(screen,font,20,690,makecol(255,255,128),"BRAWO! WYGRYWA Gracz %d",x+1);
    return x+1;}
    else return 0;
}