คำอธิบายการท้าทาย
คุณต้องแสดงการจำลองของฝนในสถานี
ในตัวอย่างที่ระบุด้านล่างการเพิ่ม 100 เม็ดฝนที่สุ่ม (ใช้ฟังก์ชั่นการสุ่มเริ่มต้นซึ่งภาษาของคุณมี) พิกัดรอ 0.2 วินาทีแล้ววาดใหม่อีกครั้งจนกว่าเวลาที่กำหนดจะหมดอายุ ตัวละครใด ๆ ที่สามารถใช้สำหรับการเป็นตัวแทนของน้ำฝน
พารามิเตอร์
- รอเวลาระหว่างการวาดใหม่ในไม่กี่วินาที
- เวลาที่ฝนจะมองเห็นได้ นี่เป็นเพียงจำนวนเต็มแทนจำนวนการวนซ้ำ [ดังนั้นเวลาสุทธิที่จะเห็นฝนตกคือจำนวนเต็มนี้คูณด้วยเวลารอ]
- ข้อความที่จะแสดงเมื่อฝนสิ้นสุด (สิ่งนี้จะต้องอยู่กึ่งกลาง)
- จำนวนเม็ดฝนที่จะแสดงบนหน้าจอ
กฎระเบียบ
- ควรใช้ไบต์เดี่ยวแทนการหยดฝนและอาจเป็นอะไรก็ได้แม้แต่แมวและสุนัข
- ไม่จำเป็นต้องตอบสนองต่อขนาดเทอร์มินัลซึ่งหมายความว่าคุณไม่จำเป็นต้องจัดการกับบั๊กสำหรับขนาดเทอร์มินัลที่หลากหลาย คุณสามารถระบุความกว้างและความสูงเทอร์มินัลด้วยตัวคุณเอง
- ใช้กฎมาตรฐานของการเล่นกอล์ฟ
ตัวอย่างโค้ดและเอาต์พุต
นี่เป็นเวอร์ชั่นที่ไม่ได้เขียนที่เขียนใน python 2.7 โดยใช้ ncurses
import curses
import random
import time
myscreen = curses.initscr()
curses.curs_set(0) # no cursor please
HEIGHT, WIDTH = myscreen.getmaxyx()
RAIN = '/' # this is what my rain drop looks like
TIME = 10
def make_it_rain(window, tot_time, msg, wait_time, num_drops):
"""
window :: curses window
time :: Total time for which it rains
msg :: Message displayed when it stops raining
wait_time :: Time between redrawing scene
num_drops :: Number of rain drops in the scene
"""
for _ in range(tot_time):
for i in range(num_drops):
x,y=random.randint(1, HEIGHT-2),random.randint(1,WIDTH-2)
window.addstr(x,y,RAIN)
window.refresh()
time.sleep(wait_time)
window.erase()
window.refresh()
window.addstr(HEIGHT/2, int(WIDTH/2.7), msg)
if __name__ == '__main__':
make_it_rain(myscreen, TIME, 'IT HAS STOPPED RAINING!', 0.2, 100)
myscreen.getch()
curses.endwin()
ผลผลิต -