Menggunakan python, saya cuba mencari cara yang lebih pantas untuk menjalankan randint beberapa kali berdasarkan input tanpa perlu menulis kemungkinan setiap input. Ini adalah penggelek dadu untuk permainan meja. Kodnya adalah seperti berikut
import random from random import randint i1=input("what type of die?: ") i2=input("how many times?:") roll_again = "yes" while roll_again == "yes" or roll_again == "y": if i1=="d6": if i2=="1": value1=randint(1,6) print(value1) roll_again = input("roll again?") if i2=="2": value1=randint(1,6) value2=randint(1,6) print(value1,value2) roll_again = input("roll again?") if i2=="3": value1=randint(1,6) value2=randint(1,6) value3=randint(1,6) print(value1,value2,value3) roll_again = input("roll again?") if i2=="4": value1=randint(1,6) value2=randint(1,6) value3=randint(1,6) value4=randint(1,6) print(value1,value2,value3,value4) roll_again = input("roll again?") elif i1=="d4": if i2=="1": value1=randint(1,4) print(value1) roll_again = input("roll again?") if i2=="2": value1=randint(1,4) value2=randint(1,4) print(value1,value2) roll_again = input("roll again?") if i2=="3": value1=randint(1,4) value2=randint(1,4) value3=randint(1,4) print(value1,value2,value3) roll_again = input("roll again?") if i2=="4": value1=randint(1,4) value2=randint(1,4) value3=randint(1,4) value4=randint(1,4) print(value1,value2,value3,value4) roll_again = input("roll again?")
Saya terus menambah jenis dadu yang lain. Pada asasnya saya mahu dapat meletakkan 100 sebagai input dan berikan saya 100 randit tanpa perlu kod secara manual sehingga if i2=="100" tetapi masih menyimpan "ifs" yang berbeza. Saya juga ingin mencetak jumlah nilai yang ditatal
Untuk bahagian kedua, saya cuba print(jumlah(nilai1,nilai2)) tetapi memandangkan nilai1 dan nilai2 bukan integer, saya mendapat ralat
Jika saya faham dengan betul, anda ingin memudahkan operasi algoritma tersebut.
Kod saya berfungsi seperti berikut.
Pengguna memasukkan jenis dadu (cth. "d6", "d10") dan bilangan balingan. Program ini menyemak bahawa dadu yang dimasukkan adalah dari jenis yang betul (bermula dengan "d" dan mempunyai bilangan sisi yang positif).
Jika data adalah betul, program akan menjana bilangan lontaran yang diberikan menggunakan dadu yang diberikan, menyimpan keputusan ke senarai nilai dan mencetaknya.
Atur cara mengira jumlah hasil yang diperoleh dan mencetaknya.
Program ini bertanya kepada pengguna jika mereka ingin meneruskan lontaran yang lain.
Jika pengguna memutuskan untuk menggulung semula, program akan mengulangi proses menjana dan mencetak hasilnya.
Jika pengguna memasukkan data yang salah (contohnya, dadu dalam format yang salah atau bilangan gulungan kurang daripada 1), program akan mencetak mesej ralat.
Saya andaikan anda akan mengubah suai kod ini mengikut keperluan anda
from random import randint i1 = input("Enter the type of dice (e.g., d6, d4): ") i2 = int(input("Enter the number of dice rolls: ")) if i1.startswith("d") and i2 > 0: dice_type = int(i1[1:]) values = [] for _ in range(i2): values.append(randint(1, dice_type)) print(*values) print("Sum:", sum(values)) roll_again = input("Roll again? (yes/no): ").lower() while roll_again == "yes": values = [] for _ in range(i2): values.append(randint(1, dice_type)) print(*values) print("Sum:", sum(values)) roll_again = input("Roll again? (yes/no): ").lower() else: print("Invalid input. Please enter a valid dice type and number of rolls.")
Atas ialah kandungan terperinci Bagaimana untuk menjalankan baris kod beberapa kali berdasarkan input?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!