#include <cstdlib>
#include <iostream>
#include <ctime>
#include "dice.h"
#include "kniffel.h"

using namespace std;

int main(int, char**) {
    srand(time(nullptr));
    Kniffel k;
    while(!is_finished(k))
    {
        Dice d;
        roll_dice(d);
        while(d.rolls_left > 0)
        {   
            cout << "\033[2J";
            print(k);
            print_dice(d);
            switch(choose_roll(d))
            {
                case 'N':
                case 'n':
                    roll_dice(d);
                    break;
                case 'E':
                case 'e':
                    d.rolls_left = 0;
                    break;
                case 'H':
                case 'h':
                    hold_dice(d, choose_dice(d, true));
                    break;
                case 'Z':
                case 'z':
                    return_dice(d, choose_dice(d, false));
                    break;
                default:
                    cout << "Ungültige Eingabe!" << endl;
            }
        }
        
        set_result(d);
        bool inserted = false;
        while(!inserted)
        {
            cout << "\033[2J";
            print(k);
            print_result(d);
            int selected = choose_insert(k, d);
            if(selected < 7)
            {
                inserted = set_sum(k, d, selected);
            }
            else
            {
                inserted = set_special(k, d, selected - 7);
            }
            if(!inserted)
            {
                cout << "Ungültige Eingabe!" << endl;
            }
        }
    }
    cout << "\033[2J" << "Das Spiel ist beendet!" << endl;
    print(k);
}
