I am very new to C++ and decided to start off by making tic tac toe with RayLib as a graphics engine. The code below sets up a screen, draws the grid and checks for an input. The part I was working on is showing an X or O in the fields that were clicked on. I finally got the program to draw text but it seems to draw the whole array instead of one letter.
#include "raylib.h"
#include <string.h>
#include <stdio.h>
#include <math.h>
int main(void)
{
//INITIALIZE//
int screenWidth = 750;
int screenHeight = 750;
char matrix[9] = {'E', 'E', 'E', 'E', 'E', 'E', 'E', 'E', 'E'};
char currentPlayer = 'X';
InitWindow(screenWidth, screenHeight, "raylib [core] example - basic window");
SetTargetFPS(60);
while (!WindowShouldClose())
{
//INPUT//
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) {
int mouseX = GetMouseX();
int mouseY = GetMouseY();
double x = floor(mouseX/250);
double y = floor(mouseY/250);
int index = x + 3*y;
matrix[index] = currentPlayer;
currentPlayer = (currentPlayer == 'X') ? 'O' : 'X';
}
//DRAWING//
BeginDrawing();
ClearBackground(WHITE);
for (int i = 1; i < 3; i++) {
int num = i*250;
DrawLine(num, 0, num, screenWidth, LIGHTGRAY);
DrawLine(0, num, screenHeight, num, LIGHTGRAY);
}
//Code I was working on
for (int i = 0; i < 9; i++) {
if (matrix[i] != 'E') {
int textX = 115 + i*250 - (i%3)*750;
int textY = 115 + (i%3)*250;
char text = matrix[i];
DrawText(&text, textX, textY, 20, LIGHTGRAY); //The problem is here
}
}
EndDrawing();
}
CloseWindow();
return 0;
}
When I click the top left cell to draw an X it draws 'XXEEEEEEEE0?D' instead. Does anyone know how to draw only one character from the array?
Thanks in advance!