# Игра Калодонт за ученике 6. разреда основне школе
# ----------------------Опис игре
# Каладонт је игра коју игра неограничен број играча, а најмање два, тако што се
# према унапред одређеном редоследу играчи изговарају по једну реч према
# одређеном правилу. Ко не може да пронађе реч која задовољава правило бива избачен из игре.
# Игра почиње тако што први играч изговара према сопственом избору једну реч.
# Као одговор на њу играч који је следећи по реду мора да пронађе
# реч чија су прва два слова у ствари последња два слова речи коју је
# изговорио претходни играч.
# ----------------------Ток игре
# Игра би требало да тече овако:
# 1. Када играч покрене игрицу први на потезу је рачунар. Рачунар бира једну реч која се исписује на екрану.
# 2. Играч даје своју реч као одговор.
# 3. Реч играча се проверава по два основа:
# a. да ли је важећа, тј. да ли постоји у речнику којим рачунар/твој програм располаже,
# b. да ли се уклапа по датом правилу са оном коју је рачунар дао.
# 4. Уколико реч не постоји или се не уклапа са задатом тада се рачунар проглашава победником, а сама игра се завршава.
# 5. Уколико реч постоји и уклапа се задатом наставља се са игром, па је рачунар на потезу.
# У свом речнику он тражи реч која се уклапа.
# 6. Уколико рачунар не нађе у свом речнику одговарајући реч, тада се играч проглашава победником а игра завршава.
# 7. Уколико рачунар пронађе одговарајућу реч понавља се цео поступак (од корака 2.).
# ---------------------
import random
# Функција
# Провера да ли се речи уклапају
def ReciSeUklapaju(rec1,rec2):
return rec1[-2:]==rec2[0:2]
# списак речи које се у игри користе
reci=["амеба", "америка", "ангелина", "анђео", "аорист", "аргумент", "ацетон", "божидар", "бојлер", "врата", "гавран", "ератостен", "етикета", "каладонт", "канаринац", "качамак", "књига", "кућа", "мама", "мачка", "наочаре", "нар", "небо", "онтарио", "организам", "оркестар", "орнамент", "прозор", "рачунар", "слика", "сто", "столица", "сунце", "таван", "тата", "телевизор", "телефон", "тетка", "ћао", "цар", "царина", "цвет", "цена"]
stampa=int(input("Уколико желите да одштампате речи у бази унесите број 1"))
if stampa==1:
print("Списак речи у игри ", reci)
# Функција
# Игра рачунара
def RacunarIgra(datarec):
mogucereci=[rec for rec in reci if ReciSeUklapaju(datarec,rec)]
if mogucereci==[]:
return""
else:
return random.choice(mogucereci)
# Функција
# Игра човека
def CovekIgra(datarec):
rec=input("Унеси реч (унеси празно ако не знаш):")
while rec != "" and (not(ReciSeUklapaju(datarec,rec)) or not (rec in reci)):
rec = input("Та реч није добра. Унеси реч:")
return rec
# ----------------------
# Почетак главног дела програма
# Избор речи из листе методом случајног избора
rec= random.choice(reci)
print("Почетна реч је: ", rec)
while True:
rec=CovekIgra(rec)
if rec=="":
print("Пошто ниси знао реч, рачунар је победио")
break
rec=RacunarIgra(rec)
if rec=="":
print("Рачунар није нашао реч! Твоја победа.")
break
print("Рачунар је одабрао реч ", rec)
# ---------------------КРАЈ ПРОГРАМА--------------------