Tôi phải thực hiện trò chơi này cho lớp comp của mình và tôi không thể hiểu được cách thoát ra khỏi vòng lặp này. Hãy xem, tôi phải thi đấu với "máy tính", bằng cách lăn những con số lớn hơn và xem ai có điểm số lớn hơn. Nhưng tôi không thể tìm ra cách "phá vỡ" từ lượt của mình và chuyển sang lượt máy tính. Tôi cần "Q" [thoát] để báo hiệu sự khởi đầu của máy tính, nhưng tôi không biết làm thế nào để làm điều đó.
ans=[R]
while True:
print['Your score is so far '+str[myScore]+'.']
print["Would you like to roll or quit?"]
ans=input["Roll..."]
if ans=='R':
R=random.randint[1, 8]
print["You rolled a "+str[R]+"."]
myScore=R+myScore
if ans=='Q':
print["Now I'll see if I can break your score..."]
break
Belphegor
4.19611 Huy hiệu vàng34 Huy hiệu bạc56 Huy hiệu Đồng11 gold badges34 silver badges56 bronze badges
Hỏi ngày 30 tháng 1 năm 2013 lúc 0:13Jan 30, 2013 at 0:13
1
Một vài thay đổi có nghĩa là chỉ có một R
hoặc r
sẽ cuộn. Bất kỳ nhân vật nào khác sẽ bỏ
import random
while True:
print['Your score so far is {}.'.format[myScore]]
print["Would you like to roll or quit?"]
ans = input["Roll..."]
if ans.lower[] == 'r':
R = np.random.randint[1, 8]
print["You rolled a {}.".format[R]]
myScore = R + myScore
else:
print["Now I'll see if I can break your score..."]
break
Sabrewolfy
5.27611 Huy hiệu vàng51 Huy hiệu bạc72 Huy hiệu đồng11 gold badges51 silver badges72 bronze badges
Đã trả lời ngày 30 tháng 1 năm 2013 lúc 0:30Jan 30, 2013 at 0:30
John La Rooyjohn La RooyJohn La Rooy
Phù bằng vàng 287K5151 gold badges359 silver badges500 bronze badges
2
Những gì tôi sẽ làm là chạy vòng lặp cho đến khi ANS là Q
ans=[R]
while not ans=='Q':
print['Your score is so far '+str[myScore]+'.']
print["Would you like to roll or quit?"]
ans=input["Roll..."]
if ans=='R':
R=random.randint[1, 8]
print["You rolled a "+str[R]+"."]
myScore=R+myScore
Đã trả lời ngày 30 tháng 1 năm 2013 lúc 0:21Jan 30, 2013 at 0:21
PhilPhilPhil
6.2112 Huy hiệu vàng18 Huy hiệu bạc25 Huy hiệu Đồng2 gold badges18 silver badges25 bronze badges
Đừng sử dụng trong khi đúng và phá vỡ các tuyên bố. Đó là lập trình xấu.
Hãy tưởng tượng bạn đến để gỡ lỗi mã của người khác và bạn thấy một thời gian đúng trên dòng 1 và sau đó phải truy tìm theo cách của bạn thông qua 200 dòng mã khác với 15 câu lệnh break trong đó Những gì thực sự làm cho nó đến giờ nghỉ. Bạn muốn giết chúng ... rất nhiều.
Điều kiện khiến một vòng lặp trong thời gian dừng lặp lại phải luôn rõ ràng từ dòng mã vòng trong khi mà không cần phải tìm nơi khác.
Phil có giải pháp "chính xác", vì nó có một điều kiện kết thúc rõ ràng ngay trong khi câu lệnh vòng lặp.
Đã trả lời ngày 30 tháng 1 năm 2019 lúc 12:51Jan 30, 2019 at 12:51
Steve Toddsteve ToddSteve Todd
871 Huy hiệu bạc1 Huy hiệu đồng1 silver badge1 bronze badge
ans=[R]
while True:
print['Your score is so far '+str[myScore]+'.']
print["Would you like to roll or quit?"]
ans=input["Roll..."]
if ans=='R':
R=random.randint[1, 8]
print["You rolled a "+str[R]+"."]
myScore=R+myScore
else:
print["Now I'll see if I can break your score..."]
ans = False
break
Đã trả lời ngày 30 tháng 1 năm 2013 lúc 0:21Jan 30, 2013 at 0:21
aug2uagaug2uagaug2uag
PhilPhil2 gold badges30 silver badges52 bronze badges
6.2112 Huy hiệu vàng18 Huy hiệu bạc25 Huy hiệu Đồng
myScore = 0
while ans := input["Roll..."].lower[] == "r":
# ... do something
else:
print["Now I'll see if I can break your score..."]
Đừng sử dụng trong khi đúng và phá vỡ các tuyên bố. Đó là lập trình xấu.Jan 22, 2021 at 5:07
Hãy tưởng tượng bạn đến để gỡ lỗi mã của người khác và bạn thấy một thời gian đúng trên dòng 1 và sau đó phải truy tìm theo cách của bạn thông qua 200 dòng mã khác với 15 câu lệnh break trong đó Những gì thực sự làm cho nó đến giờ nghỉ. Bạn muốn giết chúng ... rất nhiều.DRPK
Điều kiện khiến một vòng lặp trong thời gian dừng lặp lại phải luôn rõ ràng từ dòng mã vòng trong khi mà không cần phải tìm nơi khác.1 gold badge13 silver badges25 bronze badges