#include <stdlib.h>
#include <stdio.h>
#include <stdbool.h>
#include <string.h>

#include <raylib.h>

#include "card.h"
#include "move.h"
#include "teyaku.h"

char *text = "こんにちわ、 世界!";

int main(int argc, char** argv) {
    InitWindow(800, 450, "Hanafuda Hachi-Hachi");
    SetTargetFPS(60);

    /*
    Hand h;
    h.cards[0] = (Card) { 1, BRIGHT, RIBBON_NONE, NOVEMBER, (Vector2) { 0, 0 } };
    h.cards[1] = (Card) { 1, ANIMAL, RIBBON_NONE, NOVEMBER, (Vector2) { 0, 0 } };
    h.cards[2] = (Card) { 1, RIBBON, RIBBON_PLAIN, NOVEMBER, (Vector2) { 0, 0 } };
    h.cards[3] = (Card) { 1, CHAFF, RIBBON_NONE, NOVEMBER, (Vector2) { 0, 0 } };
    h.cards[4] = (Card) { 1, CHAFF, RIBBON_NONE, DECEMBER, (Vector2) { 0, 0 } };
    h.cards[5] = (Card) { 1, CHAFF, RIBBON_NONE, DECEMBER, (Vector2) { 0, 0 } };
    h.cards[6] = (Card) { 1, CHAFF, RIBBON_NONE, DECEMBER, (Vector2) { 0, 0 } };
    h.count = 7;

    printf("Teyaku: %d\n", calculate_teyaku(h));
    */

    Card cards[48];
    for (int i = 0; i < 48; i++) {
      CardType t = CHAFF;
      RibbonType rt = RIBBON_NONE;
      Month month = i / 4;
      switch (i) {
      case 0:
      case 8:
      case 28:
      case 40:
      case 44:
	t = BRIGHT; break;
      case 1:
      case 5:
      case 9:
	t = RIBBON; rt = RIBBON_POETRY; break;
      case 21:
      case 33:
      case 37:
	t = RIBBON; rt = RIBBON_BLUE; break;
      case 13:
      case 17:
      case 25:
      case 42:
	t = RIBBON; rt = RIBBON_PLAIN; break;
      case 4:
      case 12:
      case 16:
      case 20:
      case 24:
      case 29:
      case 32:
      case 36:
      case 41:
	t = ANIMAL; break;
      }
      cards[i] = (Card) { i, t, rt, month, (Vector2) { month * 65, (i % 4) * 110 } };
    }

    float delta;
    Vector2 mouse_position;

    while (!WindowShouldClose()) {
      delta = GetFrameTime();

      BeginDrawing();
      ClearBackground(RAYWHITE);
      for (int i = 0; i < 48; i++) {
	draw_card(&cards[i]);
      }
      EndDrawing();
    }
      
    CloseWindow();

    return 0;
}