Gra w chińczyka

0

Hejka.
Jestem na Erasmusie w Czechach. mam problem z zadaniem z pythona. Czy jest tu ktoś to mógłby mi pomóc rozwiązać to zadanie. Totalnie nie wiem jak to zrobić a zależy mi żeby to zrozumieć i rozwiązać. Bardzo proszę i dziękuje.

Zadanie:
Stwórz prostą symulacje gry w "chinczyka".
Zasady:

  • Gra się na planszy o n polach
  • Gra tylko jeden pionek , który zaczyna po jednej stronie planszy.
  • Rzuca się kostką (1-6), jeśli wypadnie 6, rzuca się ponownie.
  • pionek porusza się albo o całkowitą sumę rzutów kostką , albo wcale (w sytuacji gdy jest już na mecie)
  • Co dziesiąte pole jest zatrute. Kiedy figurka wejdzie na to pole, wraca na początek. Ostatnie pole
    nigdy nie jest zatrute.
  • Gra kończy się, gdy pionek dotrze dokładnie do ostatniego pola.

Zadanie:

  1. Utwórz funkcję symulującą postęp jednej gry. pokaże informacje o poszczególnych ruchach, a stan gry zostanie pokazany z grafiką tekstową (patrz przykład poniżej).
  2. Utwórz funkcję obliczającą średnią długość gry dla danego rozmiaru planszy. Przy użyciu
    ta funkcja wyświetla średnią długość gry dla rozmiaru planszy od 2 do 100.

z kodu napisałem tylko coś takiego ale pewnie to jest zle.

from random import randint

kostka = randint(1,6)

n = 50
x = n +2
fig = "#"
pol = "."
tries = 1
start = 0
end = n

print("Turn:", tries, '\t' "Throws:", kostka)
i = (pol * x)
forr_i = ""
l_p = 0

while l_p < len(i):
    if l_p % 10 == 0 and l_p != 0:
        forr_i += "P"
    forr_i += i[l_p]
    l_p += 1
print(forr_i)

start = 0
end = n

print("Game finished in turn", tries)
0

tak powinno to wygadać:
ukol2.pngukol3.png

daniel338 napisał(a):

Hejka.
Jestem na Erasmusie w Czechach. mam problem z zadaniem z pythona. Czy jest tu ktoś to mógłby mi pomóc rozwiązać to zadanie. Totalnie nie wiem jak to zrobić a zależy mi żeby to zrozumieć i rozwiązać. Bardzo proszę i dziękuje.

Zadanie:
Stwórz prostą symulacje gry w "chinczyka".
Zasady:

  • Gra się na planszy o n polach
    ● Gra tylko jeden pionek , który zaczyna po jednej stronie planszy.
    ● Rzuca się kostką (1-6), jeśli wypadnie 6, rzuca się ponownie.
    ● pionek porusza się albo o całkowitą sumę rzutów kostką , albo wcale (w sytuacji gdy jest już na mecie)
    ● Co dziesiąte pole jest zatrute. Kiedy figurka wejdzie na to pole, wraca na początek. Ostatnie pole
    nigdy nie jest zatrute.
    ● Gra kończy się, gdy pionek dotrze dokładnie do ostatniego pola.

Zadanie:

  1. Utwórz funkcję symulującą postęp jednej gry. pokaże informacje o poszczególnych ruchach, a stan gry zostanie pokazany z grafiką tekstową (patrz przykład poniżej).
  2. Utwórz funkcję obliczającą średnią długość gry dla danego rozmiaru planszy. Przy użyciu
    ta funkcja wyświetla średnią długość gry dla rozmiaru planszy od 2 do 100.

z kodu napisałem tylko coś takiego ale pewnie to jest zle.

from random import randint

kostka = randint(1,6)

n = 50
x = n +2
fig = "#"
pol = "."
tries = 1
start = 0
end = n

print("Turn:", tries, '\t' "Throws:", kostka)
i = (pol * x)
forr_i = ""
l_p = 0

while l_p < len(i):
if l_p % 10 == 0 and l_p != 0:
forr_i += "P"
forr_i += i[l_p]
l_p += 1
print(forr_i)

start = 0
end = n

print("Game finished in turn", tries)

daniel338 napisał(a):

Hejka.
Jestem na Erasmusie w Czechach. mam problem z zadaniem z pythona. Czy jest tu ktoś to mógłby mi pomóc rozwiązać to zadanie. Totalnie nie wiem jak to zrobić a zależy mi żeby to zrozumieć i rozwiązać. Bardzo proszę i dziękuje.

Zadanie:
Stwórz prostą symulacje gry w "chinczyka".
Zasady:

  • Gra się na planszy o n polach
    ● Gra tylko jeden pionek , który zaczyna po jednej stronie planszy.
    ● Rzuca się kostką (1-6), jeśli wypadnie 6, rzuca się ponownie.
    ● pionek porusza się albo o całkowitą sumę rzutów kostką , albo wcale (w sytuacji gdy jest już na mecie)
    ● Co dziesiąte pole jest zatrute. Kiedy figurka wejdzie na to pole, wraca na początek. Ostatnie pole
    nigdy nie jest zatrute.
    ● Gra kończy się, gdy pionek dotrze dokładnie do ostatniego pola.

Zadanie:

  1. Utwórz funkcję symulującą postęp jednej gry. pokaże informacje o poszczególnych ruchach, a stan gry zostanie pokazany z grafiką tekstową (patrz przykład poniżej).
  2. Utwórz funkcję obliczającą średnią długość gry dla danego rozmiaru planszy. Przy użyciu
    ta funkcja wyświetla średnią długość gry dla rozmiaru planszy od 2 do 100.

z kodu napisałem tylko coś takiego ale pewnie to jest zle.

from random import randint

kostka = randint(1,6)

n = 50
x = n +2
fig = "#"
pol = "."
tries = 1
start = 0
end = n

print("Turn:", tries, '\t' "Throws:", kostka)
i = (pol * x)
forr_i = ""
l_p = 0

while l_p < len(i):
if l_p % 10 == 0 and l_p != 0:
forr_i += "P"
forr_i += i[l_p]
l_p += 1
print(forr_i)

start = 0
end = n

print("Game finished in turn", tries)

3

Klas jeszcze na pewno nie miałeś, więc zacznij tak


# stan gry w postaci słownika to w tej chwili 'overengineering', ale ma pewne zalety 
# - słownik jest mutable więc możesz go modyfikiwać wewnątrz funkcji
# - bardzo łatwo przerobisz to na klasy jak już je poznasz
state = { 'position': 0 }

def display_board(state):
  """
  Funkcja ma narysować planszę na podstawie przekazanego w parametrze state aktualnego stanu gry
  Pozycja gracza jest dostępna jako state['position']
  """
  print (f'Gracz jest na polu: {state["position"]}')

Teraz zmodyfikuj funkcję display_board tak, abyś zobaczył poprawną planszę dla poniższych wywołań

state = { 'position': 0 }
display_board(state)

state['position'] = 7
display_board(state)

Jak już zrobisz - pochwal się i dostaniesz kolejną podpowiedź

1 użytkowników online, w tym zalogowanych: 0, gości: 1