1

Тема: Рестарт коду

Я написав гру і тепер мені потрібно щоб користувач міг почати гру заново. Я пробував різними варіантами, через def,while, нічого не змінилось. Хоча це можливо тому-що я не правильно їх використовував. Ось код :

import random
print("------------------------------------")
print("-------Камінь, ножниці, папір-------")
print("Вітаю тебе в моїй грі!")
print("Гра складається з трьох раундів")
print("Виграє той, хто набере більше балів")
print("\t[r] - камінь\n\t[p] - папір\n\t[s] - ножниці")

player_score = 0
player_select = 0
comp_score = 0
comp_select = 0
print("-----------------------------")
print("-----------------------------")
for i in range (3) :
   print("\t--------ROUND №" + str(i + 1) + "--")
   comp_select = random.choice("rps")


   while True:
       player_select = input ("\tYour choice:")
       if (player_select == "r") or (player_select == "s") or (player_select == "p"):
           break
       else:
           print("\tError")
   print("\tComputer:" + comp_select)

   if player_select == comp_select:
           print("\tНічія!")
   elif player_select == "r" and comp_select == "s":
        player_score = player_score + 1
        print("\tТи виграв!")
   elif player_select == "r" and comp_select == "p":
        comp_score = comp_score + 1
        print("\tКомп'ютер виграв!")
   elif player_select == "p" and comp_select == "r":
        player_score = player_score + 1
        print("\tТи виграв!")
   elif player_select == "p" and comp_select == "s":
        comp_score = comp_score + 1
        print("\tКомп'ютер виграв!")
   elif player_select == "s" and comp_select == "p":
        player_score = player_score + 1
        print("\tТи виграв!")
   elif player_select == "s" and comp_select == "r":
        comp_score = comp_score + 1
        print("\tКомп'ютер виграв!")

print("-----------------------------------")
print("------------Результат гри------------")
if player_score > comp_score:
  print("Вітаємо! Ви виграли!")
elif player_score < comp_score:
  print("Комп'ютер виграв, але нічого! Ви зможете!'")
else:
  print("Нічія!")

a = input("Продолжить? y/n\n>>>").lower()
while True :
    if a==("y"):
         print(str(comp_score) + " в бота")
         print(str(player_score) + " в игрока")
         continue
    elif a==("n"):
         print(str(comp_score) + " в бота")
         print(str(player_score) + " в игрока")
         break
         input()
    else :
         print("ERROR!")
         break
         input()

2

Re: Рестарт коду

while треба ставити перед тим фрагментом, який треба повторити. Умовно так:

while True:
    ...#тут майже весь код
    a = input("Продовжити? y/n\n>>>").lower()
    if a=='n':
        break
Подякували: Megiya, plusxx2

3

Re: Рестарт коду

koala написав:

while треба ставити перед тим фрагментом, який треба повторити. Умовно так:

while True:
    ...#тут майже весь код
    a = input("Продовжити? y/n\n>>>").lower()
    if a=='n':
        break

Я розумію що я прошу дуже багато, але можеш сам це поставити? Я просто не хочу знову сидіти на одній вправі 1-2 дня.

4

Re: Рестарт коду

Та будь ласка. Тільки не тикайте мені, я бородатий і мені майже 40.
Тут ще багато чого можна спростити, але тоді доведеться знову сидіти на одній вправі 1-2 дні. І взагалі - якщо збираєтеся програмувати, то морально готуйтеся, сидіти доведеться.

Прихований текст
import random

while True :
    print("------------------------------------")
    print("-------Камінь, ножниці, папір-------")
    print("Вітаю тебе в моїй грі!")
    print("Гра складається з трьох раундів")
    print("Виграє той, хто набере більше балів")
    print("\t[r] - камінь\n\t[p] - папір\n\t[s] - ножниці")

    player_score = 0
    player_select = 0
    comp_score = 0
    comp_select = 0
    print("-----------------------------")
    print("-----------------------------")
    for i in range (3) :
      print("\t--------ROUND №" + str(i + 1) + "--")
      comp_select = random.choice("rps")


      while True:
          player_select = input ("\tYour choice:")
          if (player_select == "r") or (player_select == "s") or (player_select == "p"):
              break
          else:
              print("\tError")
      print("\tComputer:" + comp_select)

      if player_select == comp_select:
              print("\tНічія!")
      elif player_select == "r" and comp_select == "s":
            player_score = player_score + 1
            print("\tТи виграв!")
      elif player_select == "r" and comp_select == "p":
            comp_score = comp_score + 1
            print("\tКомп'ютер виграв!")
      elif player_select == "p" and comp_select == "r":
            player_score = player_score + 1
            print("\tТи виграв!")
      elif player_select == "p" and comp_select == "s":
            comp_score = comp_score + 1
            print("\tКомп'ютер виграв!")
      elif player_select == "s" and comp_select == "p":
            player_score = player_score + 1
            print("\tТи виграв!")
      elif player_select == "s" and comp_select == "r":
            comp_score = comp_score + 1
            print("\tКомп'ютер виграв!")

    print("-----------------------------------")
    print("------------Результат гри------------")
    if player_score > comp_score:
      print("Вітаємо! Ви виграли!")
    elif player_score < comp_score:
      print("Комп'ютер виграв, але нічого! Ви зможете!'")
    else:
      print("Нічія!")

    a = input("Продолжить? y/n\n>>>").lower()

    if a==("y"):
         print(str(comp_score) + " в бота")
         print(str(player_score) + " в игрока")
         continue
    elif a==("n"):
         print(str(comp_score) + " в бота")
         print(str(player_score) + " в игрока")
         break
         input()
    else :
         print("ERROR!")
         break
         input()
Подякували: Megiya, plusxx2

5

Re: Рестарт коду

koala написав:

Та будь ласка. Тільки не тикайте мені, я бородатий і мені майже 40.
Тут ще багато чого можна спростити, але тоді доведеться знову сидіти на одній вправі 1-2 дні. І взагалі - якщо збираєтеся програмувати, то морально готуйтеся, сидіти доведеться.

Прихований текст
import random

while True :
    print("------------------------------------")
    print("-------Камінь, ножниці, папір-------")
    print("Вітаю тебе в моїй грі!")
    print("Гра складається з трьох раундів")
    print("Виграє той, хто набере більше балів")
    print("\t[r] - камінь\n\t[p] - папір\n\t[s] - ножниці")

    player_score = 0
    player_select = 0
    comp_score = 0
    comp_select = 0
    print("-----------------------------")
    print("-----------------------------")
    for i in range (3) :
      print("\t--------ROUND №" + str(i + 1) + "--")
      comp_select = random.choice("rps")


      while True:
          player_select = input ("\tYour choice:")
          if (player_select == "r") or (player_select == "s") or (player_select == "p"):
              break
          else:
              print("\tError")
      print("\tComputer:" + comp_select)

      if player_select == comp_select:
              print("\tНічія!")
      elif player_select == "r" and comp_select == "s":
            player_score = player_score + 1
            print("\tТи виграв!")
      elif player_select == "r" and comp_select == "p":
            comp_score = comp_score + 1
            print("\tКомп'ютер виграв!")
      elif player_select == "p" and comp_select == "r":
            player_score = player_score + 1
            print("\tТи виграв!")
      elif player_select == "p" and comp_select == "s":
            comp_score = comp_score + 1
            print("\tКомп'ютер виграв!")
      elif player_select == "s" and comp_select == "p":
            player_score = player_score + 1
            print("\tТи виграв!")
      elif player_select == "s" and comp_select == "r":
            comp_score = comp_score + 1
            print("\tКомп'ютер виграв!")

    print("-----------------------------------")
    print("------------Результат гри------------")
    if player_score > comp_score:
      print("Вітаємо! Ви виграли!")
    elif player_score < comp_score:
      print("Комп'ютер виграв, але нічого! Ви зможете!'")
    else:
      print("Нічія!")

    a = input("Продолжить? y/n\n>>>").lower()

    if a==("y"):
         print(str(comp_score) + " в бота")
         print(str(player_score) + " в игрока")
         continue
    elif a==("n"):
         print(str(comp_score) + " в бота")
         print(str(player_score) + " в игрока")
         break
         input()
    else :
         print("ERROR!")
         break
         input()

Дякую і вибачте якщо я вас випадково образив.

6

Re: Рестарт коду

Нашо вам тут безкінечний цикл?

while True :
    if a==("y"):
         print(str(comp_score) + " в бота")
         print(str(player_score) + " в игрока")
         continue
    elif a==("n"):
         print(str(comp_score) + " в бота")
         print(str(player_score) + " в игрока")
         break
         input()
    else :
         print("ERROR!")
         break
         input()

7

Re: Рестарт коду

Доброго ранку, pluszz! Щойно це розв'язали - а тут і ви...