Hello,
i have problem with program for 2048 like game K. It needs to be compilated with
$ gcc -std=c11 -Werror -Wall -Wconversion -lm But i got error and cant figure it out. Problem is with source file k.c here is screenshot Screenshot by Lightshot. It says return code is different than expected and 3 function were never used. Whats wrong there?
Any help would be appreciated. If i post it on wrong category im sorry.
Makefile.txt
main.c
k.h
ui.c
ui.h
here is k.c
Code:
#include <stdlib.h>
#include "k.h"
void add_random_tile(struct game *game){
int row, col;
// find random, but empty tile
do{
row = rand() % SIZE;
col = rand() % SIZE;
}while(game->board[row][col] != ' ');
// place to the random position 'A' or 'B' tile
if(rand() % 2 == 0){
game->board[row][col] = 'A';
}else{
game->board[row][col] = 'B';
}
}
bool is_game_won(const struct game game)
{
for (int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
if(game.board[i][j]=='K') return true;
}
}
return false;
}
bool is_move_possible(const struct game game)
{
for (int i=0;i<4;i++){
for(int j=0;j<4;j++){
if(game.board[i][j]==' ') return true;
}
}
for (int i=0;i<4;i++){
for(int j=0;j<4;j++){
if(game.board[i][j] == game.board[i][j+1]) return true;
}
}
for (int i=0;i<4;i++){
for(int j=0;j<4;j++){
if(game.board[i][j] == game.board[i+1][j])
return true;
}
}
return false;
}
bool update(struct game *game, int dy, int dx){
char znaky[12] = "ABCDEFGHIJK";
int body[12] = { 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 };
if (dx == 1 && dy == 0){
for (int poc = 0; poc < 4; poc++ ){
for (int row = 0; row < 4; row++){
for (int col = 2; col >= 0; col--){
if (game->board[row][col+1] == ' '){
game->board[row][col+1] = game->board[row][col];
game->board[row][col] = ' ' ; }
}
for (int abc = 0; abc < 12; abc++ ){
for (int col = 2; col >= 0; col--){
if (game->board[row][col+1] == znaky[abc] && game->board[row][col] == znaky[abc]){
game->board[row][col+1] = znaky[abc+1];
game->board[row][col] = ' ';
game->score = game->score + (2*body[abc]);}
}
}
for (int col = 2; col >= 0; col--){
if (game->board[row][col+1] == ' '){
game->board[row][col+1] = game->board[row][col];
game->board[row][col] = ' ' ; }
}
}
}
return true;
}
else if (dx == -1 && dy == 0){
for (int poc = 0; poc < 4; poc++ ){
for (int row = 0; row < 4; row++){
for (int col = 1; col < 4; col++){
if (game->board[row][col-1] == ' '){
game->board[row][col-1] = game->board[row][col];
game->board[row][col] = ' ' ; }
}
for (int abc = 0; abc < 12; abc++ ){
for (int col = 1; col < 4; col++){
if (game->board[row][col-1] == znaky[abc] && game->board[row][col] == znaky[abc]){
game->board[row][col-1] = znaky[abc+1];
game->board[row][col] = ' ';
game->score = game->score + (2*body[abc]);}
}
}
for (int col = 1; col < 4; col++){
if (game->board[row][col-1] == ' '){
game->board[row][col-1] = game->board[row][col];
game->board[row][col] = ' ' ; }
}
}
}
return true;
}
else if (dx == 0 && dy == 1){
for (int poc = 0; poc < 4; poc++ ){
for (int col = 0; col < 4; col++){
for (int row = 2; row >= 0; row--){
if (game->board[row+1][col] == ' '){
game->board[row+1][col] = game->board[row][col];
game->board[row][col] = ' ' ; }
}
for (int abc = 0; abc < 12; abc++ ){
for (int row = 2; row >= 0; row--){
if (game->board[row+1][col] == znaky[abc] && game->board[row][col] == znaky[abc]){
game->board[row+1][col] = znaky[abc+1];
game->board[row][col] = ' ';
game->score = game->score + (2*body[abc]);}
}
}
for (int row = 2; row >= 0; row--){
if (game->board[row+1][col] == ' '){
game->board[row+1][col] = game->board[row][col];
game->board[row][col] = ' ' ; }
}
}
}
return true;
}
else if (dx == 0 && dy == -1){
for (int poc = 0; poc < 3; poc++ ){
for (int col = 0; col < 4; col++){
for (int row = 1; row < 4; row++){
if (game->board[row-1][col] == ' '){
game->board[row-1][col] = game->board[row][col];
game->board[row][col] = ' ' ; }
}
for (int abc = 0; abc < 12; abc++ ){
for (int row = 1; row < 4; row++){
if (game->board[row+1][col] == znaky[abc] && game->board[row][col] == znaky[abc]){
game->board[row+1][col] = znaky[abc+1];
game->board[row][col] = ' ';
game->score = game->score + (2*body[abc]);}
}
}
for (int row = 1; row < 4; row++){
if (game->board[row-1][col] == ' '){
game->board[row-1][col] = game->board[row][col];
game->board[row][col] = ' ' ; }
}
}
}
return true;
}
else return false;
}