GPN13:Rocket Scissor Spacegoo: Unterschied zwischen den Versionen
aus dem Wiki des Entropia e.V., CCC Karlsruhe
Matze (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Matze (Diskussion | Beiträge) (→Server) |
||
Zeile 12: | Zeile 12: | ||
** komisch schlechter Code von [http://pastebin.com/ZYDcHqvt unterstrich] | ** komisch schlechter Code von [http://pastebin.com/ZYDcHqvt unterstrich] | ||
** Banaler, aber anscheinend effektiver [https://gist.github.com/Kha/5693348#file-khaderp-py-L1 khaderp] | ** Banaler, aber anscheinend effektiver [https://gist.github.com/Kha/5693348#file-khaderp-py-L1 khaderp] | ||
** zusammengehackt und komplizierter als nötig: | ** zusammengehackt und komplizierter als nötig: [https://gist.github.com/MatzeB/5693552 snak3] | ||
==Code fürs Kampfsystem== | ==Code fürs Kampfsystem== |
Version vom 2. Juni 2013, 13:53 Uhr
Server
- Hiscore und Spielaufzeichnungen: http://spacegoo.gpn.entropia.de
- Hierhin connecten zum spielen: spacegoo.gpn.entropia.de:6000
- Code und mehr Doku: https://bitbucket.org/dividuum/rocket-scissor-spacegoo
- Haskell-Umgebung zum Client schreiben: https://bitbucket.org/nomeata/haskell-spacegoo und `cabal install haskell-spacegoo`. Bitte nomeata Bescheid geben wenn das jemand benutzt! Als Beispielcode siehe den des bots nomeataintercept2.
- Lorenz' stümperische Ummodelung
- komisch schlechter Code von unterstrich
- Banaler, aber anscheinend effektiver khaderp
- zusammengehackt und komplizierter als nötig: snak3
Code fürs Kampfsystem
def battle_round(attacker,defender): #nur eine asymmetrische runde. das hier muss mal also zweimal aufrufen. numships = len(attacker) defender = defender[::] for def_type in range(0,numships): for att_type in range(0,numships): multiplier = 0.1 absolute = 1 if (def_type-att_type)%numships == 1: multiplier = 0.25 absolute = 2 if (def_type-att_type)%numships == numships-1: multiplier = 0.01 defender[def_type] -= (attacker[att_type]*multiplier) + (attacker[att_type] > 0) * absolute defender[def_type] = max(0,defender[def_type]) return defender
def battle(s1,s2): ships1 = s1[::] ships2 = s2[::] while sum(ships1) > 0 and sum(ships2) >0: new1 = battle_round(ships2,ships1) ships2 = battle_round(ships1,ships2) ships1 = new1 #print ships1,ships2 ships1 = map(int,ships1) ships2 = map(int,ships2) #print ships1,ships2 return ships1, ships2