Skiskyting - visuell simulering#
Fra “Kaares kokebok i programmering”, oppgave 10.7 - av Kaare E. Jørgensen og Stein A. Dahl
! pip install turtle
! pip install random
! pip install time
Collecting turtle
Using cached turtle-0.0.2.tar.gz (11 kB)
Preparing metadata (setup.py): started
Preparing metadata (setup.py): finished with status 'error'
error: subprocess-exited-with-error
python setup.py egg_info did not run successfully.
exit code: 1
[7 lines of output]
Traceback (most recent call last):
File "<string>", line 2, in <module>
File "<pip-setuptools-caller>", line 34, in <module>
File "C:\Users\sigur\AppData\Local\Temp\pip-install-85jp009h\turtle_9aa8654ec64040558875864c74515f22\setup.py", line 40
except ValueError, ve:
^
SyntaxError: invalid syntax
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
Encountered error while generating package metadata.
See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
WARNING: There was an error checking the latest version of pip.
ERROR: Could not find a version that satisfies the requirement random (from versions: none)
ERROR: No matching distribution found for random
WARNING: There was an error checking the latest version of pip.
ERROR: Could not find a version that satisfies the requirement time (from versions: none)
ERROR: No matching distribution found for time
WARNING: There was an error checking the latest version of pip.
from turtle import *
from random import random
clear()
treff = 0.6
dot(20, 'black')
if random() < treff:
print('treff')
dot(10, 'white')
else:
print('bom')
bom
I skiskyting skytes en serie på 5 skudd. Vi skal lage et program som skal simulere dette. I koden ovenfor er treffsannsynligheten satt til 0.6, det vil si at sannsynligheten for å treffe er 60%
a) Les koden ovenfor og gjett resultatet av denne. random() produserer et tilfeldig tall mellom 0 og 1
b) Kjør programmet minst 5 ganger og se hva som skjer
c) Legg til kode slik at når det blir bom, så skal programmet tegne en rød sirkel istedet for en hvit.
d) Legg til kode for å tegne en blink til. Simuler at det skytes på 2 blinker. Hvis du har endret på treffhyppigheten, sett den tilbake til treff=2. Hint: Bruk forward(40) før du tegner blink nummer to.
e) Skriv programmet ferdig slik at du skyter på 5 blinker. Vi antar at skytteren bruker 2 sekunder på å sikte seg inn på hver blink. Du kan få bruk for blant annet disse kodene:
from time import sleep
for i in range(5)
sleep(2)
forward(40)