Browse Source

parsing state_buffer into an 2d array

master
Trolli Schmittlauch 5 years ago
parent
commit
a063a74537
5 changed files with 35 additions and 2 deletions
  1. +1
    -0
      .gitignore
  2. +2
    -0
      Makefile
  3. +15
    -1
      players/playerlib.cc
  4. +7
    -0
      players/playerlib.h
  5. +10
    -1
      players/random-player.cc

+ 1
- 0
.gitignore View File

@@ -4,3 +4,4 @@ my-player
example-player
random-player
othello
*.swp

+ 2
- 0
Makefile View File

@@ -28,6 +28,8 @@ else
CXXFLAGS += -Weverything -Wno-padded -Wno-weak-vtables
endif

CFLAGS += -I. -g

all : $(TARGETS)

othello : $(SRC_common:.cc=.o) $(ASM_common:.S=.o)


+ 15
- 1
players/playerlib.cc View File

@@ -16,4 +16,18 @@ getEnemyChar(char c) {
enemyc='X'; break;
}
return enemyc;
}
}

int
readStateBuffer(char *stateBuffer, struct cell (*gameField)[fieldWidth]) {
for(size_t row=0; row< fieldHeight; ++row)
{
for(size_t col=0; col< fieldWidth; ++col)
{
int index = row*fieldHeight+col+1;
gameField[row][col].content = stateBuffer[index];
//printf("gameField %lu %lu =stateBuffer %d = %c\n", row, col, index, gameField[row][col].content);
}
}
return 0;
}

+ 7
- 0
players/playerlib.h View File

@@ -1,9 +1,16 @@
#ifndef PLAYERLIB_H
#define PLAYERLIB_H

const unsigned int fieldHeight=8, fieldWidth=8;
extern char enemyc; //initially 0, contains char of enemy's stone
struct cell {
char content = '.';
unsigned short int timesVisited = 0;
};

//returns the character used for the enemy's stones
extern char getEnemyChar(char);
//reads the stateBuffer string into a 2d matrix
extern int readStateBuffer(char*, cell (*)[fieldWidth]);

#endif

+ 10
- 1
players/random-player.cc View File

@@ -19,7 +19,6 @@ send_move(int row, int col)
return 0;
}


int main(void)
{
int done = 0;
@@ -49,8 +48,18 @@ int main(void)
if(!enemyc)
enemyc = getEnemyChar(state_buffer[0]);
//pure C:
//struct cell (*field) = malloc(fieldHeight*fieldWidth*sizeof(struct cell));
//C++ version:
auto field = new cell[fieldHeight][fieldWidth]();
printf("%p\n", field);
readStateBuffer(state_buffer, field);

// 3. Return result
//send_move(turn_row, turn_col);
delete field;

/* END PLAYER-SPECIFIC CODE */



Loading…
Cancel
Save