PLEASE ANSWER THIS IN MATLAB. NOT IN C PLUS !!!!! BE 1500 – Extra Credit Project
ID: 3713399 • Letter: P
Question
PLEASE ANSWER THIS IN MATLAB. NOT IN C PLUS !!!!!
BE 1500 – Extra Credit Project: Darts Simulation Overview: In this project you will create a program (script) that simulates a game of Darts. The program should display what each player hit with their darts each round and the current score until the game is completed. Background: A standard dart board has several scoring areas as displayed in the figure below. There are many types of games that can be played with a dartboard. You need to simulate one of the games that requires at least two players. Details about different dart games and how they are scored are available here: http://www.darting.com/Darts-Rules/. Different games have very different scoring, it is up to you to decide which game you want to implement. All games will be graded equally based on how accurately they simulate a game, using the rules on the above website. If you are completely unfamiliar with the game of darts, there are several video’s available on YouTube by searching “How to Play Darts”. Program Structure: You will be provided with two 512x512 matrices that represent a dart board. The first includes the value for each wedge around the board, the value in the matrix is the wedge value (or zero if you are off the board). For instance, if you select a number in the upper middle of the board (i.e. location 100,256) the resulting value will be 20. The second matrix indicates where the rings are for single, double or triple. In this case, each location has a value of 1 for single rings, 2 for double ring, 3 for triple ring, and zero if you are off the board. You should use a random number generator to select one place on the dartboard, by row and column, which represents a dart throw. Your code must display where each dart hits (this can be done with text, it does not require a visual representation) for each round. Then display the current score for all players. This process should continue until the game is successfully completed. Since you are using random number generators and not incorporating any skill into the throws the game simulation will likely take many rounds. When developing your code it might work better to start with small goals before trying to let the simulation run for an entire game. Your code must also include at least one user defined function. Project Deliverables: 1. All code in a zip file 2. Instructions for running code (PDF): This document should assume that you have given the reader your code on a flash drive and explain all steps required to get from there to running the code. 3. Example output (PDF): This should be the entirety of the output created for one simulation (i.e. one time running the code). 4. Brief Report: In narrative form answer the following questions: a. What was most challenging about completing this project? b. Where did you go for help with this project? c. Would you recommend using this project again?
X Question You will be provided with two 512x for each wedge around the board, the value in the matrix is the wedge value (or zero if you are off the board). For instance, if you select a number in the upper middle of the board (i.e. location 100,256) the resulting value will be 20. The second matrix indicates where the rings are for single, double or triple. In 512 matrices that represent a dart board. The first includes the value tase, each location has a value of 1 for single ringes, 2 for double ring, 3 for triple ing, and zero f you are off the board You should use a random number generator to select one place on the dartboard, by row and colu which mn, represents a dart throw. This location will be the same for both data matrices. Your code must display (i.e. triple-14) where each dart hits (this can be done with text, it does not require a visual representation) for each round. Then display the current score for all players. This process should continue until the game is successfully completed. Since you are using random number generators and not incorporating any skill into the throws the game simulation will likely take many rounds. When developing your code it might work better to start with small goals before trying to let the simulation run for an entire game. Your code must also Include at least one user defined function that has both input and output Please write in in matlab code A standard dart board has several scoring areas as displayed in the figure below. There are many types of games that can be played with a dartboard. You need to simulate one of the games that requires at least two players. Details about different dart games and how they are scored are available here: Darts-RulesL Different games have very different scoring, it is up to you to decide which game you want to implement. All games will be graded equally based on how accurately they simulate a game, using the rules on the above website. NOTE: You will not get any points for the project if you simulate your own version of darts, you MUST choose a game from the website listed. If you are completely unfamiliar with the game of darts, there are several video's available on YouTube by searching "How to Play Darts" 20 1 5 18 Double ring 12 9 Triple ring Bullseye Bullseye 4 14 13 Outer 6 Inner 8 15Explanation / Answer
Matlab code:
function [Values,Valid,Wires,Outside]=dartboard(scale,out,Rw)
% example:
% % Dartboard with high resolution, 10mm frame, 2mm wires
% Points = dartboard(0.1,10,2);
% image(Points); colormap hot;
if nargin==0
scale=1; % resolution mm per pixel
end
if nargin<=1
out=1; % frame mm
end
if nargin<=2
Rw=0.6; % wire diameter mm
end
vallist=[20 1 18 4 13 6 10 15 2 17 3 19 7 16 8 11 14 9 12 5];
% DIMENSIONS in mm
out=out/scale;% outside frame
Rf=8/scale;% width of rings
RT1=107/scale;
RT2=RT1-Rf;% tripple ring
RD1=170/scale;
RD2=RD1-Rf; % double ring
RB=31.8/2/scale; % bull
RE=12.7/2/scale; % bulls eye
Rw=Rw/scale; % wire diameter
N=(2*RD1+2*out)+1;
Nmid=round(N/2);
[x,y]=meshgrid((1:N)-Nmid,(1:N)-Nmid);
R=sqrt(x.^2+y.^2);
ag=atan2(x,y)/2/pi*360+180;
agm=mod(ag-9,18);
ag2=ag-9;ag2(ag2<0)=ag2(ag2<0)+360;
idx=20-floor((ag2)/18);
da=asin(Rw/2./R)/2/pi*360;
MF=~((agm<da)|(agm>(18-da))); % valid radials
ME=(R<=(RE-Rw/2)); % eye
MB=(R>=(RE+Rw/2))&(R<=(RB-Rw/2)); %bull
MS1=((R>=(RB+Rw/2))&(R<=(RT2-Rw/2)))&MF; % single
MT =((R>=(RT2+Rw/2))&(R<=(RT1-Rw/2)))&MF; % tripple
MS2=((R>=(RT1+Rw/2))&(R<=(RD2-Rw/2)))&MF; % single
MD = ((R >= (RD2 + Rw/2)) & (R <= (RD1 - Rw/2))) & MF; % double
Valid = ME | MB | MS1 | MT | MS2 | MD; % all valid
Wires = (R <= (RD1 + Rw/2)) & ~Valid; % all wires
Values = ME * 50 +...
MB *25 +...
(((MS1 | MS2) * 1 + ...
MT * 3 + ...
MD * 2) .* vallist(idx)); % values
Outside = (R > (RD1 + Rw/2)); % all outside
assert(sum(Valid(:))+sum(Wires(:))+sum(Outside(:)) == N*N,'overlapping maps')
%%
% figure;image(Values),colormap hot
% figure;image(Valid),colormap lines
% figure;image(Wires),colormap lines
% figure;image(Outside),colormap lines
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.