Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // XO.cpp : This file contains the 'main' function. Program execution begins and ends there.
- //
- #include <iostream>
- #include <cmath>
- #include "raylib.h"
- using namespace std;
- int board[100][100]{};
- class checkforWin {
- private:
- float N;
- int Diag1 = 0;
- int Diag2 = 0;
- public:
- int arr[100][3]{};
- public:
- bool check() {
- for (int i = 0; i < N; i++) {
- if ((arr[i][0] == N) || (arr[i][0] == -N))
- return true;
- else if ((arr[i][1] == N) || (arr[i][1] == -N))
- return true;
- }
- if ((Diag1 == N) || (Diag1 == -N))
- return true;
- else if ((Diag2 == N) || (Diag2 == -N))
- return true;
- else
- return false;
- }
- void addX(int i, int j) {
- arr[i][0] += 1;
- arr[j][1] += 1;
- if (i == j) {
- Diag1 += 1;
- }
- if ((N - i) == j) {
- Diag2 += 1;
- }
- }
- void addO(int i, int j) {
- arr[i][0] -= 1;
- arr[j][1] -= 1;
- if (i == j) {
- Diag1 -= 1;
- }
- if ((N - i) == j) {
- Diag2 -= 1;
- }
- }
- checkforWin(float n) {
- N = n;
- }
- };
- class DrawGame{
- private:
- float FinalX;
- float FinalY;
- float sizeLetter;
- int secX;
- int secY;
- public:
- float WindowX;
- float WindowY;
- float TotalSections;
- void DrawX(int x, int y) {
- secX = x + 1;
- secY = y + 1;
- FinalX = secX * (WindowX / TotalSections);
- FinalY = secY * (WindowY / TotalSections);
- DrawLineEx({ FinalX, FinalY}, {FinalX-sizeLetter, FinalY - sizeLetter}, 10, BLACK);
- DrawLineEx({ FinalX-sizeLetter, FinalY}, { FinalX, FinalY-sizeLetter }, 10, BLACK);
- }
- void DrawO(int x, int y) {
- secX = x + 1;
- secY = y + 1;
- FinalX = secX * (WindowX / TotalSections);
- FinalY = secY * (WindowY / TotalSections);
- DrawLineEx({ FinalX, FinalY}, { FinalX - sizeLetter, FinalY }, 10, BLACK);
- DrawLineEx({ FinalX - sizeLetter, FinalY}, { FinalX - sizeLetter, FinalY - sizeLetter }, 10, BLACK);
- DrawLineEx({ FinalX - sizeLetter, FinalY - sizeLetter }, { FinalX, FinalY - sizeLetter }, 10, BLACK);
- DrawLineEx({ FinalX, FinalY- sizeLetter }, { FinalX, FinalY}, 10, BLACK);
- }
- void DrawGrid() {
- for (int i = 1; i < TotalSections; i++) {
- DrawLineEx({ i * WindowX / TotalSections, 0 }, { i * WindowX / TotalSections, WindowY }, 5, BLACK);
- DrawLineEx({ 0, i * WindowY / TotalSections }, { i * WindowX, i*WindowY / TotalSections }, 5, BLACK);
- }
- }
- DrawGame(float windowX, float windowY, float n) {
- WindowX = windowX;
- WindowY = windowY;
- TotalSections = n;
- sizeLetter = min(WindowX / TotalSections, WindowY / TotalSections)-10;
- }
- };
- int main()
- {
- InitWindow(900, 600, "Alin");
- SetWindowState(FLAG_VSYNC_HINT);
- int sizegrid = 4;
- DrawGame draw = DrawGame(GetScreenWidth(), GetScreenHeight(), (float)sizegrid);
- checkforWin cfw = checkforWin((float)sizegrid);
- while (!WindowShouldClose())
- {
- int xMouse = 0;
- int yMouse = 0;
- for (int i = 0; i < sizegrid; i++) {
- for (int j = 0; j < sizegrid; j++) {
- if (board[i][j] == 1) {
- draw.DrawX(i, j);
- cfw.addX(i, j);
- }
- }
- }
- for (int i = 0; i < sizegrid; i++) {
- cout << cfw.arr[i][0] << cfw.arr[i][1];
- }
- if (cfw.check()) {
- CloseWindow();
- }
- BeginDrawing();
- ClearBackground(WHITE);
- DrawFPS(5, 5);
- draw.DrawGrid();
- if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) {
- xMouse = GetMouseX();
- yMouse = GetMouseY();
- xMouse = xMouse / (GetScreenWidth() /(float) sizegrid);
- yMouse = yMouse / (GetScreenHeight() /(float) sizegrid);
- board[xMouse][yMouse] = 1;
- }
- EndDrawing();
- }
- CloseWindow();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement