+void move_player (struct World * world, char d) {
+// Move player in direction d, increment turn counter and update log.
+ update_info (world);
+ char success = 0;
+ char * dir;
+ char * msg = calloc(25, sizeof(char));
+ if ('s' == d) {
+ dir = "south";
+ if (world->player->y < world->map->height - 1) {
+ world->player->y++;
+ success = 1; } }
+ else if ('n' == d) {
+ dir = "north";
+ if (world->player->y > 0) {
+ world->player->y--;
+ success = 1; } }
+ else if ('w' == d) {
+ dir = "west";
+ if (world->player->x > 0) {
+ world->player->x--;
+ success = 1; } }
+ else if ('e' == d) {
+ dir = "east";
+ if (world->player->x < world->map->width - 1) {
+ world->player->x++;
+ success = 1; } }
+ char * msg_content = "You fail to move";
+ if (success)
+ msg_content = "You move";
+ sprintf(msg, "\n%s %s.", msg_content, dir);
+ update_log (world, msg);
+ free(msg); }
+