Nothing but Net Videogame
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
(a general understanding of what the model is trying to show or explain)
HOW IT WORKS
(what rules the agents use to create the overall behavior of the model)
HOW TO USE IT
(how to use the model, including a description of each of the items in the Interface tab)
THINGS TO NOTICE
(suggested things for the user to notice while running the model)
THINGS TO TRY
(suggested things for the user to try to do (move sliders, switches, etc.) with the model)
EXTENDING THE MODEL
(suggested things to add or change in the Code tab to make the model more complicated, detailed, accurate, etc.)
NETLOGO FEATURES
(interesting or unusual features of NetLogo that the model uses, particularly in the Code tab; or where workarounds were needed for missing features)
RELATED MODELS
(models in the NetLogo Models Library and elsewhere which are of related interest)
CREDITS AND REFERENCES
(a reference to the model's URL on the web if it has one, as well as any other necessary credits, citations, and links)
Comments and Questions
globals [ robotX robotY robotH capacityB capacityR launcherH cstep time timing? score running? loadA loadD elevatingL? elevatingH? elevation] breed [tiles tile] breed [tape tapesing] breed [balls ball] breed [robots robot] breed [rollers roller] breed [launchers launcher] to startup setup end to setup ca reset-ticks import-drawing "Gael (1).png" set elevation "Normal" set elevatingL? false set elevatingH? false set timing? true set running? true set loadA 4 set loadD 24 set cstep 0 set robotX 0 set robotY 1 ask patches [ set pcolor grey ] create-tiles 1 [ set shape "square" set color blue set size 10 setxy 0 1 ] create-tiles 1 [ set shape "square" set color blue set size 10 setxy 1 0 ] create-tiles 1 [ set shape "square" set color red set size 10 setxy 4 0 ] create-tiles 1 [ set shape "square" set color red set size 10 setxy 5 1 ] create-tiles 1 [ set shape "tri" set color blue set size 10 setxy 5 5 set heading 180 ] create-tiles 1 [ set shape "tri" set color red set size 10 setxy 0 5 set heading 90 ] create-tape 1 [ set shape "circle" set size 0.1 set color white setxy 5.55 1.45 set heading towardsxy 1.5 5.5 while[xcor < 1.44] [ fd 0.01 hatch 1 ] set heading 0 while[ycor < 1.44] [ fd 0.01 hatch 1 ] set heading 270 while[xcor > -0.45] [ fd 0.01 hatch 1 ] ] create-tape 1 [ set shape "circle" set size 0.1 set color white setxy 5.45 1.45 set heading towardsxy 3.5 5.5 while[xcor > 3.55] [ fd 0.01 hatch 1 ] set heading 0 while[ycor < 1.44] [ fd 0.01 hatch 1 ] set heading 90 while[xcor < 5.45] [ fd 0.01 hatch 1 ] ] create-tape 1 [ set shape "circle" set size 0.1 set color white setxy 1.5 1.5 hatch 1 set heading towardsxy 4 4 while[xcor < 5] [ fd 0.01 hatch 1 ] ] create-tape 1 [ set shape "circle" set size 0.1 set color white setxy 3.5 1.5 hatch 1 set heading towardsxy 1 4 while[xcor > 0] [ fd 0.01 hatch 1 ] ] create-balls 1 [ set shape "nbnpyramid" set size 1.5 setxy 3.5 1.5 ] create-balls 1 [ set shape "nbnpyramid" set size 1.5 setxy 1.5 1.5 ] create-balls 1 [ set shape "nbnpyramid" set size 1.5 setxy 3.5 3.5 ] create-balls 1 [ set shape "nbnpyramid" set size 1.5 setxy 1.5 3.5 ] create-balls 1 [ set shape "nbnpyramid" set size 1.5 setxy 2.5 0.5 ] create-balls 1 [ set shape "nbnpyramid" set size 1.5 setxy 2.5 4.5 ] create-balls 1 [ set shape "nbnpyramid" set size 1.5 setxy 2.5 5.65 set heading 180 ] create-balls 1 [ set shape "nbnpyramid" set size 1.5 setxy 2.5 5.35 set heading 0 ] create-balls 1 [ set shape "nbnpyramid" set size 1.5 setxy 5.35 2.5 set heading 90 ] create-balls 1 [ set shape "nbnpyramid" set size 1.5 setxy 5.65 2.5 set heading 270 ] create-robots 1 [ set shape "robot" set size 1.40625 setxy 0 1 set color 2 set heading 0 ] create-rollers 1 [ set shape "rollers" set size 1 setxy 0 1.25 set color 0 set heading 0 ] create-launchers 1 [ set shape "launcher" set size 1 setxy 0 1 set color 0 set heading 0 ] end to up if running? and not elevatingH? and not elevatingL? [ ask robots [ set robotX (xcor + (sin(heading) * 0.05 * speed)) set robotY (ycor + (cos(heading) * 0.05 * speed)) ] ] end to down if running? and not elevatingH? and not elevatingL? [ ask robots [ set robotX (xcor - (sin(heading) * 0.05 * speed)) set robotY (ycor - (cos(heading) * 0.05 * speed)) ] ] end to rturn if running? and not elevatingH? and not elevatingL? [ ask robots [ set robotH (heading + 5 * speed) ] ] end to lturn if running? and not elevatingH? and not elevatingL? [ ask robots [ set robotH (heading - 5 * speed) ] ] end to strafeR if running? and not elevatingH? and not elevatingL? [ ask robots [ set robotX (xcor + (sin(heading + 90) * 0.05 * speed)) set robotY (ycor + (cos(heading + 90) * 0.05 * speed)) ] ] end to strafeL if running? and not elevatingH? and not elevatingL? [ ask robots [ set robotX (xcor - (sin(heading + 90) * 0.05 * speed)) set robotY (ycor - (cos(heading + 90) * 0.05 * speed)) ] ] end to shoot if running? [ ifelse(capacityB > 0) [ set capacityB capacityB - 1 create-balls 1 [ set shape "nbnball" set color orange set size 1.5 setxy robotX robotY set heading launcherH ] ] [ if(capacityR > 0) [ set capacityR capacityR - 1 create-balls 1 [ set shape "nbnball" set color green set size 1.5 setxy robotX robotY set heading launcherH ] ] ] ] end to go if running? [ ask robots [ if(robotx < -0.12) [ set robotx -0.12 ] if(roboty < -0.12) [ set roboty -0.12 ] if(robotx > 5.12) [ set robotx 5.12 ] if(roboty > 5.12) [ set roboty 5.12 ] setxy robotX robotY set heading robotH ] ask rollers [ setxy (robotx + 0.25 * sin(robotH)) (roboty + 0.25 * cos(robotH)) set heading robotH ] ask balls with [shape = "nbnpyramid"][ if(distance one-of rollers < 0.25 and capacityB + capacityR = 0) [ set capacityB capacityB + 1 set capacityR capacityR + 3 die ] ] ask launchers [ setxy robotx roboty set launcherH atan (5 - robotX) (5 - robotY) set heading launcherH ] ask balls with [shape = "nbnball"] [ ifelse(distancexy 5 5 > 0.25) [ fd 0.1 ] [ ifelse(color = orange) [ set score score + 10 ] [ set score score + 5 ] die ] ] commentary if timing? [ set time timer ] ifelse elevatingL? [ set elevation "Low" ] [ ifelse elevatingH? [ set elevation "High" ] [ set elevation "Normal" ] ] wait 0.01 ] end to commentary if(cstep = 0) [ setup output-print "Autonomous begins in 3" wait 0.5 output-print "2" wait 0.5 output-print "1" wait 0.5 output-print "Go!" set cstep 1 reset-timer ] if(timer >= 10 and cstep = 1) [ output-print "5 seconds left!" set cstep 2 ] if(timer >= 15 and cstep = 2) [ set score score + 10 output-print (word "Time's up! You scored " score ) set LoadD LoadD + LoadA set LoadA 0 set cstep 3 set timing? false set time 15 set running? false wait 1 output-print "Driver Control begins in 3" wait 0.5 output-print "2" wait 0.5 output-print "1" wait 0.5 output-print "Go!" set timing? true set running? true ] if(timer >= 90 and cstep = 3) [ output-print "30 seconds left!" set cstep 4 ] if(timer >= 120 and cstep = 4) [ if elevatingL? [ set score score + 25 ] if elevatingH? [ set score score + 50 ] output-print (word "Time's up! You scored " score ) set cstep 3 set timing? false set time 120 set running? false ] end to load if not elevatingH? and not elevatingL? [ ask robots [ ifelse(timer < 15) [ if(CapacityR + CapacityB < 4 and LoadA > 0 and distancexy 0 1 <= 1) [ set CapacityR CapacityR + 1 set LoadA LoadA - 1 ] ] [ if(CapacityR + CapacityB < 4 and LoadD > 0 and distancexy 0 1 <= 1) [ set CapacityR CapacityR + 1 set LoadD LoadD - 1 ] ] ] ] end to elevateL ask robots [ if robotX >= -0.12 and robotX <= 1.2 and robotY >= -0.12 and robotY <= 1.2 and running? and time >= 90[ set elevatingL? not elevatingL? set elevatingH? false ] ] end to elevateH ask robots [ if robotX >= -0.12 and robotX <= 1.2 and robotY >= -0.12 and robotY <= 1.2 and running? and time >= 90[ set elevatingH? not elevatingH? set elevatingL? false ] ] end
There is only one version of this model, created over 9 years ago by Robert Dennis.
Attached files
No files
This model does not have any ancestors.
This model does not have any descendants.