2013-01-17 15 views
5

Zanim powiem cokolwiek innego, chciałbym wspomnieć, że jestem prawie całkowicie nowy w kodowaniu i mam tylko bardzo podstawowe zrozumienie Pythona.Jak przypisać losową liczbę do zmiennej?

Teraz, kiedy to jest nie na miejscu, moim problemem jest to, że próbuję zakodować tekstową grę przygodową, na wzór D & D. Utknąłem na wczesnym etapie - mianowicie, jak przypisać losowa liczba całkowita od 1 do 18 do zmiennej.

Widziałem kilka sposobów na zrobienie tego, ale wartość zmiennej zmienia się za każdym razem, gdy zostanie wywołana. To się nie może zdarzyć. Powodem tego jest to, że statystyki (Siła, Mądrość, Inteligencja, Zręczność, Charyzma i Konstytucja) to losowo generowane, ale ustalone liczby, które można wywoływać i za każdym razem je mieć.

Próbowałem wygłupiać się z takimi rzeczami jak Str = random.randomint(1,18), używając modułu losowego.

Najbliższy, do którego przyszedłem, używa funkcji lambda, więc gdy przywołuję zmienną, generuje ona losową liczbę, która za każdym razem jest inna. Żadne z nich nie działało i naprawdę chciałbym wiedzieć, co robię źle.

+0

Jeśli symulujesz 3 rolki z 6 kostkami bocznymi, nie powinno być losowo między 3 a 18? –

+6

@MarceloAssis: nie, powinny to być 3 losowe liczby od 1 do 6 razem wziętych (chociaż OP nie wspomina o używaniu 3d6). – geoffspear

+0

@Wooble A wyniki będą inne, gdy użyjesz 3 randów? –

Odpowiedz

7

widzę, że jesteś bardzo blisko tego, co masz:

Str = random.randomint(1,18) powinny być Str = random.randint(1,18)

Jest to linia, która przydziela losowo int do zmiennej Str, a jeśli poprosisz o Str powinieneś dostać ten sam numer za każdym razem.

Jeśli będziesz dzwonić pod numer Str = random.randint(1,18), za każdym razem zmieni się Str. więc rób to tylko raz.

Jeśli znasz lub rozumiesz o classes, powinieneś używać ich do przechowywania swoich postaci/przedmiotów/zaklęć/przygód/potworów itp., Które mogą mieć własności i atrybuty oraz zapasy itp., Podobnie jak w samej grze, zgrupowujesz wszystkie rzeczy pod różnymi typami.

Uwaga: wspomnieć użyłeś lambda, to może oznaczać, że masz przydzielony Str do funkcji, która zwraca zmienną losową za każdym razem, czyli za każdym razem hasła Str byś faktycznie prosząc o funkcji powrotu losowy numer.

+1

To 'random.Randint',' random.randomint' nie istnieje :) – mgilson

+0

+1 za zrozumienie tego, co OP naprawdę chce :) –

+0

@mgilson dzięki, skopiowałem kod OPS bez szukania zbyt blisko. –

1

Witamy w kodowaniu.

Przez jakiś czas byłem programistą internetowym i ostatnio zacząłem zatapiać zęby w lepszych rzeczach niż php (według mnie). Chciałbym również użyć:

Str = random.randomint(1,18) 

Czy używasz IDE? Zauważyłem, że są świetne, gdy po raz pierwszy uczysz się nowego języka z powodu ukończenia kodu. To naprawdę pomaga szybciej poznać Twój język, ponieważ nie trzeba iść na różne strony internetowe, aby sprawdzić składnię. Powodzenia! Tekstowe gry przygodowe to świetny sposób na rozpoczęcie nauki!

Powiązane problemy