SHOW:
|
|
- or go back to the newest paste.
| 1 | - | (* Fishgame v1.0b, Mathematica CoreLanguage *) |
| 1 | + | gamemode = Input["Modo de juego (1-4)"] |
| 2 | playernum = Input["Jugadores (4-8)"] | |
| 3 | - | poplimit = actualpop = 20 |
| 3 | + | poplimit = actualpop = Input["Población Inicial (20)"] |
| 4 | - | regen = 0.25 (* 25% population regeneration rate *) |
| 4 | + | regen = Input["Tasa de Regeneración (0.25)"] |
| 5 | - | playernum = 4 |
| 5 | + | |
| 6 | - | rounds = 10 |
| 6 | + | rounds = 10; |
| 7 | wait = Input["Pausa (seg)"] | |
| 8 | doublewait = Input["Pausa doble (seg)"] | |
| 9 | - | cumulativecatch = {}
|
| 9 | + | |
| 10 | - | playerlist = Table[List[],{playernum}]
|
| 10 | + | |
| 11 | - | globalcatch = {}
|
| 11 | + | cumulativecatch = {};
|
| 12 | - | over = False |
| 12 | + | playerlist = Table[List[],{playernum}];
|
| 13 | globalcatch = {};
| |
| 14 | popsofar = {};
| |
| 15 | over = False; | |
| 16 | ||
| 17 | Do[ | |
| 18 | Print["Starts round ", round, "!"]; | |
| 19 | Pause[doublewait]; | |
| 20 | suma = {};
| |
| 21 | Do[ | |
| 22 | Print["Starts Player ", player, " turn!"]; | |
| 23 | Pause[wait]; | |
| 24 | catch = RandomInteger[{1,3}];
| |
| 25 | (* Print[catch]; Debug *) | |
| 26 | popafterdraw = actualpop - catch; | |
| 27 | (* Print[popafterdraw]; *) | |
| 28 | ||
| 29 | If[actualpop >= catch, (* Validate population before draw *) | |
| 30 | Print["Player ", player, " draws ", catch, " fish!"]; | |
| 31 | Pause[wait]; | |
| 32 | - | over = True |
| 32 | + | |
| 33 | Print["Population is now ", popafterdraw]; | |
| 34 | Pause[wait]; | |
| 35 | actualpop = popafterdraw; | |
| 36 | If[popafterdraw <= 0, | |
| 37 | Print["Fish depleted after ", round, " rounds!"]; | |
| 38 | AppendTo[suma,Last[playerlist[[player]]]]; | |
| 39 | AppendTo[popsofar,0]; | |
| 40 | Pause[wait]; | |
| 41 | over = True; | |
| 42 | Break[]] | |
| 43 | ||
| 44 | (* Begins false part of validator *) | |
| 45 | - | AppendTo[suma,Last[playerlist[[player]]]] |
| 45 | + | |
| 46 | Pause[wait]; | |
| 47 | catch = actualpop; | |
| 48 | - | Print["Regenerating ", Floor[actualpop * (1 + regen)], " fish!"]; |
| 48 | + | |
| 49 | Pause[wait]; | |
| 50 | AppendTo[playerlist[[player]],catch]; | |
| 51 | - | Print["-------"]; |
| 51 | + | |
| 52 | - | , AppendTo[globalcatch,Sum[i,suma]]]; |
| 52 | + | AppendTo[suma,Last[playerlist[[player]]]]; |
| 53 | AppendTo[popsofar,0]; | |
| 54 | - | If[Length[cumulativecatch < 1], |
| 54 | + | |
| 55 | - | AppendTo[cumulativecatch,Sum[i,suma]], |
| 55 | + | |
| 56 | - | AppendTo[cumulativecatch,Last[cumulativecatch]+Sum[i,suma]]]; |
| 56 | + | |
| 57 | - | Print[globalcatch] |
| 57 | + | |
| 58 | - | Print[cumulativecatch] |
| 58 | + | AppendTo[suma,Last[playerlist[[player]]]]; |
| 59 | ,{player,playernum}];
| |
| 60 | ||
| 61 | - | Print[MatrixForm[playerlist]] |
| 61 | + | Print["Suma es", suma] |
| 62 | AppendTo[globalcatch, Total[suma]]; | |
| 63 | - | Print["Catch per turn: ", globalcatch] |
| 63 | + | AppendTo[cumulativecatch, Total[globalcatch]]; |
| 64 | - | Print["Cumulative score: ", cumulativecatch] |
| 64 | + | Print["global catch is ", globalcatch, " so far"] |
| 65 | Print["cummulative catch is ",cumulativecatch, " so far"] | |
| 66 | Print["Over is ", over] | |
| 67 | ||
| 68 | If[over == False, | |
| 69 | Print["Regenerating ", Floor[actualpop * (regen)], " fish!"]; | |
| 70 | Pause[wait]; | |
| 71 | actualpop = Floor[actualpop * (1 + regen)]; | |
| 72 | Print["Population is now ", actualpop]; | |
| 73 | Pause[wait]; | |
| 74 | Print["-------"], Break[]]; | |
| 75 | ||
| 76 | (*If[Length[cumulativecatch < 1], | |
| 77 | Append[cumulativecatch,Total[globalcatch]], | |
| 78 | Append[cumulativecatch,Last[cumulativecatch]+Total[suma]]]; *) | |
| 79 | ||
| 80 | suma=. | |
| 81 | AppendTo[popsofar,actualpop]; | |
| 82 | ,{round,rounds}];
| |
| 83 | ||
| 84 | playerlist//MatrixForm | |
| 85 | ||
| 86 | Print["Catch per turn: ", globalcatch]; | |
| 87 | Print["Cumulative score: ", cumulativecatch]; | |
| 88 | Print["Population each turn: ", popsofar] | |
| 89 | ListLinePlot[{globalcatch,popsofar}, PlotRange->Automatic, PlotLegends -> {"Global Catch", "Population"}]
| |
| 90 | ListLinePlot[playerlist,Filling->Axis,PlotLegends->Automatic, PlotRange->{Automatic,{0,5}}] |