diff --git a/GUI.ozf b/GUI.ozf deleted file mode 100644 index 85b3ffa7e90e9f1d976b71e15804c358c601d8b8..0000000000000000000000000000000000000000 Binary files a/GUI.ozf and /dev/null differ diff --git a/Input.oz b/Input.oz index 555e6e9d18f551fb1ecd46d78e56f04efaa600bd..2a56b7d1c07156f4844815bf406cbac3b228a224 100644 --- a/Input.oz +++ b/Input.oz @@ -1,4 +1,7 @@ functor +import + OS + System export isTurnByTurn:IsTurnByTurn nRow:NRow @@ -41,6 +44,45 @@ define MinDistanceMissile MaxDistanceMissile GUIDelay + + fun {SumTwoList L1 L2 Acc} + case L1#L2 + of nil#nil then {List.reverse Acc} + [] (H1|T1)#(H2|T2) then + {SumTwoList T1 T2 H1+H2|Acc} + end + end + + fun{ValidateTwoConsecutiveRows Row1 Row2} + Sum={SumTwoList Row1 Row2 nil} + in + {List.foldL Sum fun{$A I} ({Min ~1*I 0}+1)+A end 0} >= NbPlayers + end + + fun{GenerateRow Length Acc} + if Length==0 then + Acc + elseif ({OS.rand} mod 3) \= 0 then + {GenerateRow Length-1 0|Acc} + else + {GenerateRow Length-1 1|Acc} + end + end + + fun{GenerateMap NbRow NbColumn Acc} + if NbRow==0 then + Acc + else NewRow={GenerateRow NbColumn nil} in + case Acc + of nil then + {GenerateMap NbRow-1 NbColumn NewRow|Acc} + [] LastRow|T andthen {ValidateTwoConsecutiveRows NewRow LastRow} then + {GenerateMap NbRow-1 NbColumn NewRow|Acc} + else + {GenerateMap NbRow NbColumn Acc} + end + end + end in @@ -48,43 +90,19 @@ in IsTurnByTurn = true -%%%% Description of the map %%%% - - NRow = 10 - NColumn = 20 - Map = [[0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0] - [0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] - [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0] - [0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0] - [0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0] - [0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0] - [0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0] - [0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0] - [0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0] - [0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0]] - - /* - NRow = 5 - NColumn = 5 - Map = [[0 0 0 0 1] - [0 1 1 0 0] - [0 0 0 1 0] - [0 0 1 0 0] - [0 0 0 0 0]] - */ %%%% Players description %%%% - NbPlayers = 2 - Players = [player020random player020hunter] - Colors = [c(245 88 203) c(255 102 0)] + NbPlayers = 6 + Players = [player020random player020random player020hunter player020hunter player020hunter player020hunter] + Colors = [c(245 88 203) c(255 102 0) black green blue red] %%%% Surface time/turns %%%% - TurnSurface = 5 + TurnSurface = 3 %%%% Life %%%% - MaxDamage = 8 + MaxDamage = 16 %%%% Number of load for each item %%%% @@ -103,4 +121,10 @@ in %%%% Waiting time for the GUI between each effect %%%% GUIDelay = 100 % ms +%%%% Description of the map %%%% + +NRow = ({OS.rand} mod 5) + (NbPlayers+(NbPlayers div 2)) +NColumn = ({OS.rand} mod 10) + (NbPlayers *2) +Map = {GenerateMap NRow NColumn nil} + end \ No newline at end of file diff --git a/Input.ozf b/Input.ozf deleted file mode 100644 index e584f42386dd1d5383f222ec45bcea421cd7c01d..0000000000000000000000000000000000000000 Binary files a/Input.ozf and /dev/null differ diff --git a/Main.oz b/Main.oz index a6c3725dae3d0ca4265def1f0a13a58979baad86..49e4434b062f992e57d45d3eb788208b25d6ad61 100644 --- a/Main.oz +++ b/Main.oz @@ -212,7 +212,6 @@ define end proc {TurnByTurn Players CurrentIndex} - % {System.show 'Turnof'#CurrentIndex} %% 1. {TurnByTurn1 Players CurrentIndex} end diff --git a/Main.ozf b/Main.ozf deleted file mode 100644 index 794ced979301e2f32ab41f3c0951a9eeb57c1099..0000000000000000000000000000000000000000 Binary files a/Main.ozf and /dev/null differ diff --git a/Player020Hunter.oz b/Player020Hunter.oz index fc1af653ee5851a8419afe6abf20ab59c8057f37..5df8fd2179516d421c121e95eeb5c7c855dad35c 100644 --- a/Player020Hunter.oz +++ b/Player020Hunter.oz @@ -144,7 +144,6 @@ define State [] (missile(Position)|T1)#(Target|T2) then Position=Target in ID=State.id KindFire=missile(Position) - {System.show '-----------------Firing a missile at enemy postion'#Position} {NewRec {NewRec State chargedItems {List.subtract State.chargedItems T1}} targets T2} end end @@ -331,9 +330,7 @@ define {AliveTreatStream T State} [] sayMove(ID Direction)|T then NewState in %% Ignored {System.show 'Player'#State.id.id#'received'#sayMove(ID Direction)} - {System.show 'Player'#State.id.id#'before enemies:'#State.enemies} NewState={HandleSayMove State State.enemies sayMove(ID Direction) nil} - {System.show 'Player'#State.id.id#'after enemies:'#State.enemies} {AliveTreatStream T NewState} [] isDead(Answer)|T then Answer=false @@ -396,9 +393,11 @@ define [] sayDamageTaken(ID Damage LifeLeft)|T then %% Ignore {System.show 'Player'#State.id.id#'received'#sayDamageTaken(ID Damage LifeLeft)} {AliveTreatStream T State} - [] sayDeath(ID)|T then NewState DeadEnemy in %% Ignore + [] sayDeath(ID)|T then NewState RemovedDeadEnemy in %% Ignore + RemovedDeadEnemy={List.filter State.enemies fun{$ Enemy} Enemy.idNum \= ID.id end} + NewState={NewRec State enemies RemovedDeadEnemy} {System.show 'Player'#State.id.id#'received'#sayDeath(ID)} - {AliveTreatStream T State} + {AliveTreatStream T NewState} end end @@ -407,7 +406,7 @@ define elseif Count==MyIDNum then {InitEnemies MyIDNum Count-1 Acc} else NewEnemy in - NewEnemy=enemy(idNum:Count history:nil alive:true) + NewEnemy=enemy(idNum:Count history:nil) {InitEnemies MyIDNum Count-1 NewEnemy|Acc} end end diff --git a/Player020Hunter.ozf b/Player020Hunter.ozf deleted file mode 100644 index 89f98e13cf2c721934f106cb338826acb19a1203..0000000000000000000000000000000000000000 Binary files a/Player020Hunter.ozf and /dev/null differ diff --git a/Player020Random.oz b/Player020Random.oz index 9794921f4e45c634f0ea885a461e6044b9c0e6fb..b471aeb89b2767b5656d8771f2cbaf2f41fba442 100644 --- a/Player020Random.oz +++ b/Player020Random.oz @@ -161,7 +161,7 @@ define of nil then ID=State.id Mine=null State - elseif {OS.rand} mod 5 \= 0 then MineToExplode={GetRandomElement State.placedMines} in + elseif {OS.rand} mod 3 \= 0 then MineToExplode={GetRandomElement State.placedMines} in ID=State.id Mine=MineToExplode {NewRec State placedMines {List.subtract State.placedMines MineToExplode}} else diff --git a/Player020Random.ozf b/Player020Random.ozf deleted file mode 100644 index 1c452ab9da7cb29e258dcc5fecf0c634ead99f05..0000000000000000000000000000000000000000 Binary files a/Player020Random.ozf and /dev/null differ diff --git a/PlayerManager.ozf b/PlayerManager.ozf deleted file mode 100644 index 31656590d68a7e4604f247a44860ed78052f9ffb..0000000000000000000000000000000000000000 Binary files a/PlayerManager.ozf and /dev/null differ