GPN13:Rocket Scissor Spacegoo: Unterschied zwischen den Versionen
aus dem Wiki des Entropia e.V., CCC Karlsruhe
(Vortragsseite initialisiert) |
Keine Bearbeitungszusammenfassung |
||
(18 dazwischenliegende Versionen von 8 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
Ein Programmierspiel von [[User:dividuum|dividuum]] und [[User:cupe|cupe]] auf der [[GPN13]]. | |||
[[File:gpn13-rocket-scissor-spacegoo.mp4|600px|right]] | |||
[[Datei:spacegoo_01_prinzip.png|thumb|300px]] | |||
[[Datei:spacegoo_02_kampfsystem.png|thumb|300px]] | |||
==Server== | |||
* dividuums server im Internet: http://spacegoo.rent-a-geek.de | |||
===im Clubnetz=== | |||
* all time scores: http://spacegoo:8080, Spielport: spacegoo:6000 | |||
* 24h scores: http://spacegoo:8023, Spielport: spacegoo:6023 | |||
===historisch=== | |||
* 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 ([[Media:Rocket-scissor-spacegoo.tar.xz|Mirror]]) | |||
* 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 [https://bitbucket.org/nomeata/haskell-spacegoo/src/master/nomeatas_bot.hs nomeataintercept2]. | |||
** Lorenz' stümperische [https://bitbucket.org/nuk/haskell-spacegoo/src/master/nomeatas_bot.hs Ummodelung] | |||
** komisch schlechter Code von [http://pastebin.com/ZYDcHqvt unterstrich] | |||
** Banaler, aber anscheinend effektiver [https://gist.github.com/Kha/5693348#file-khaderp-py-L1 khaderp] | |||
** zusammengehackt und komplizierter als nötig: [https://gist.github.com/MatzeB/5693583 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 | |||
== Material == | |||
* Videoaufzeichnung: [http://ftp.ccc.de/events/gpn/gpn13/gpn13-rocket-scissor-spacegoo.mp4 gpn13-rocket-scissor-spacegoo.mp4] ([[Media:gpn13-rocket-scissor-spacegoo.mp4|Mirror]]) | |||
{{Navigationsleiste GPN13}} | {{Navigationsleiste GPN13}} | ||
[[Kategorie:GPN13:Events]] | [[Kategorie:GPN13:Events]] | ||
[[Kategorie:GPN13:Vorträge|Rocket Scissor Spacegoo]] |
Aktuelle Version vom 11. August 2023, 12:05 Uhr
Ein Programmierspiel von dividuum und cupe auf der GPN13.
Server
- dividuums server im Internet: http://spacegoo.rent-a-geek.de
im Clubnetz
- all time scores: http://spacegoo:8080, Spielport: spacegoo:6000
- 24h scores: http://spacegoo:8023, Spielport: spacegoo:6023
historisch
- 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 (Mirror)
- 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
Material
- Videoaufzeichnung: gpn13-rocket-scissor-spacegoo.mp4 (Mirror)