ZADEFINUJEME SI VRCHOLY TEAMY: Team(Scorpions, SK) Team(Outsiterz, SK) Team(Bigez, A) Team(Fury, USA) .... NADEFINUJEME SI, AKE HRY MAJU BYT ODOHRATE: Hra(team1, team2, id) :- team1 != team2, Team(team1, krajina) Hra(team1, team2, id) :- Hra(team2, team1, id) ... //vlozime konkretne hry TAKTO SI DEFINUJEME CASOVE BLOKY: Cas(sobota, 9) Cas(novy_den, nova_hodina) :- ZvysCas(den, hodina, novy_den, nova_hodina), Cas(den, hodina) ZvysCas(den, hodina, novy_den, nova_hodina) :- #succ(hod, nova_hodina), den = sobota, novy_den = sobota, hod >= 9, hod <= 19 ZvysCas(den, hodina, novy_den, nova_hodina) :- #succ(hod, nova_hodina), den = nedela, novy_den = nedela, hod >= 9, hod <= 16 ZvysCas(den, hodina, novy_den, nova_hodina) :- nova_hodina = 9, den = sobota, novy_den = nedela, hod > 19 VLOZIME HRU DO ROZVRHU: Rozvrh(den, hodina, ihrisko, team1, team2, id_hry) :- Hra(team1, team2, id_hry), Cas(den, hodina), not Odohrata(id_hry), Odohrate_hry_predtym(id_hry), not Hral_hru_predtym(team1, hodina), Hral_hru_predtym(team2, hodina) not Hra_na_inom_ihrisku(team1, den, hodina, ihrisko), not not Hra_na_inom_ihrisku(team2, den, hodina, ihrisko), Nie_je_volne_lepsie_ihrisko(den, hodina, ihrisko) Rozvrh(den, hodina, ihrisko, team1, team2, id_hry) :- Rozvrh(den, hodina, ihrisko, team2, team1, id_hry) Odohrata(id_hry) :- Rozvrh(den, hodina, ihrisko, team1, team2, id_hry) Odohrate_hry_predtym(id_hry) :- Rozvrh(den, hodina, ihrisko, team1, team2, id_hry_mensie), id_hry + buharska_konstanta > id_hry_mensie //Pomocou bulharskej konstanty si nechavame istu volnost Hral_hru_predtym(team, hodina) :- Rozvrh(den, hodina_pred, ihrisko, team, team2, id_hry), hodina = hodina_pred + 1 Hra_na_inom_ihrisku(team, den, hodina, ihrisko) :- Rozvrh(den, hodina_pred, ihrisko1, team, team2, id_hry), ihrisko != ihrisko1 Nie_je_volne_lepsie_ihrisko(den, hodina, ihrisko) :- Rozvrh(den, hodina, ihrisko1, team1, team2, id_hry), ihrisko = ihrisko1 + 1 Nie_je_volne_lepsie_ihrisko(den, hodina, ihrisko) :- ihrisko = 1 AK JE TO MOZNE, NECHAME PRI PRICHODE MEDII HRAT NA NAJLEPSOM IHRISKU DOMACI TIM: Domaci(team) :- Team(team, krajina), krajina = SK Rozvrh(den, hodina, ihrisko, team1, team2, id_hry) :~ PrichodMedii(den, hodina), Domaci(team1), ihrisko = 1 ZAUJIMAVEJSIE HRY NA IHRISKU S VYSSOU PRIORITOU: Rank(team, rank) :- Team(team, krajina), rank = 1 ZvysRank(team, rank) :- Vyhral(team, id_hry), Rank(team, rank_povod), rank = rank_povod + 1 Rozvrh(den, hodina, ihrisko1, team1, team2, id_hry) :- Rozvrh(den, hodina, ihrisko2, team3, team4, id_hry2), Rank(team1, rank1), Rank(team2, rank2), Rank(team3, rank3), Rank(team4, rank4), rank1 + rank2 > rank3 + rank4, ihrisko1 < ihrisko2 TIMOM, KTORE DOCESTUJU AZ V DEN TURNAJA, SA SNAZIME HRY POSUNUT NA NESKOR: Rozvrh(sobota, hodina1, ihrisko1, team1, team2, id_hry) :- Rozvrh(sobota, hodina2, ihrisko2, team3, team4, id_hry2), CestujeVSobotu(team1), hodina1 < hodina2, hodina1 < 12 TIMOM, KTORE HRALI DOBRE, SA SNAZIME HRY V SOBOTU VECER POSUNUT NA SKOR: Rozvrh(sobota, hodina1, ihrisko1, team1, team2, id_hry) :- Rozvrh(sobota, hodina2, ihrisko2, team3, team4, id_hry2), Rank(team1, rank1), Rank(team2, rank2), Rank(team3, rank3), Rank(team4, rank4), rank1 + rank2 > rank3 + rank4 hodina1 > hodina2, hodina1 > 17 TIMOM, KTORE HRALI DOBRE, SA SNAZIME HRY V NEDELU RANO POSUNUT NA NESKOR: Rozvrh(nedela, hodina1, ihrisko1, team1, team2, id_hry) :- Rozvrh(nedela, hodina2, ihrisko2, team3, team4, id_hry2), Rank(team1, rank1), Rank(team2, rank2), Rank(team3, rank3), Rank(team4, rank4), rank1 + rank2 > rank3 + rank4 hodina1 < hodina2, hodina1 < 11