2013-01-17 30 views
5

Trước khi tôi nói bất cứ điều gì khác, tôi muốn đề cập đến rằng tôi gần như hoàn toàn mới để mã hóa, và chỉ có một sự hiểu biết rất thô sơ của python.Làm cách nào để gán một số ngẫu nhiên cho một biến?

Bây giờ, đó là ngoài con đường, vấn đề của tôi là tôi đang cố gắng mã hóa trò chơi phiêu lưu văn bản, dọc theo dòng D & D. Tôi bị kẹt ở giai đoạn đầu - cụ thể là cách chỉ định một số nguyên ngẫu nhiên trong khoảng từ 1 đến 18 đến một biến.

Tôi đã nhìn thấy một số cách để thực hiện việc này, nhưng giá trị của biến thay đổi mỗi khi được gọi. Điều này không thể xảy ra. Lý do cho điều này là bởi vì tôi muốn số liệu thống kê (Sức mạnh, Trí tuệ, Trí tuệ, Thủ thuật, Uy tín và Hiến pháp) là một số được tạo ngẫu nhiên nhưng cố định, có thể được gọi và có cùng thời gian.

Tôi đã thử mucking xung quanh với những thứ như Str = random.randomint(1,18), sử dụng mô-đun ngẫu nhiên.

Gần nhất tôi đến là sử dụng hàm lambda, để khi tôi gọi biến, nó tạo ra một số ngẫu nhiên khác nhau mỗi lần. Không ai trong số này có cuộc biểu tình làm việc, và tôi thực sự muốn biết những gì tôi đang làm sai.

+0

Nếu bạn đang mô phỏng 3 cuộn dices 6 mặt, không nên là ngẫu nhiên từ 3 đến 18? –

+6

@MarceloAssis: không, nó phải là 3 số ngẫu nhiên giữa 1 và 6 được thêm vào với nhau (mặc dù OP không đề cập đến thực sự sử dụng 3d6). – geoffspear

+0

@Wooble Và kết quả sẽ khác, khi sử dụng 3 randoms? –

Trả lời

7

Tôi thấy bạn đang rất gần gũi với những gì bạn có:

Str = random.randomint(1,18) nên Str = random.randint(1,18)

Đây là dòng mà giao cho int ngẫu nhiên để biến Str, và khi bạn yêu cầu Str bạn sẽ nhận được cùng một số mỗi lần.

Nếu bạn tiếp tục gọi Str = random.randint(1,18), nó sẽ thay đổi Str mỗi lần. vì vậy chỉ làm điều đó một lần.

Nếu bạn biết hoặc hiểu về classes, bạn nên sử dụng chúng để chứa các nhân vật/vật phẩm/phép thuật/cuộc phiêu lưu/quái vật của bạn, có thể có thuộc tính và thuộc tính và hàng tồn kho, v.v. những thứ dưới nhiều loại khác nhau.

Lưu ý: Bạn đề cập đến bạn đã sử dụng lambda, có nghĩa là bạn đã gán Str cho hàm trả về biến ngẫu nhiên mỗi lần, nghĩa là mỗi lần bạn yêu cầu Str bạn thực sự yêu cầu hàm trả về ngẫu nhiên con số.

+1

Đó là 'random.randint',' random.randomint' không tồn tại :) – mgilson

+0

+1 cho sự hiểu biết những gì OP thực sự muốn :) –

+0

@mgilson cảm ơn, tôi đã sao chép mã OPS mà không cần nhìn quá gần. –

1

Chào mừng bạn đến với mã hóa.

Tôi đã là một nhà phát triển web trong một thời gian và gần đây tôi đã bắt đầu đánh răng vào những thứ tốt hơn so với php (theo ý kiến ​​của tôi). Tôi cũng sẽ sử dụng:

Str = random.randomint(1,18) 

Bạn đang sử dụng IDE? Tôi thấy chúng tuyệt vời khi bạn học một ngôn ngữ mới đầu tiên do hoàn thành mã. Nó thực sự giúp bạn biết cách của bạn xung quanh ngôn ngữ nhanh hơn, do không phải đi đến các trang web khác nhau để tìm kiếm cú pháp. Chúc may mắn! Trò chơi phiêu lưu dựa trên văn bản là một cách tuyệt vời để bắt đầu học!

Các vấn đề liên quan