[alg] Hoe beschrijven van aanvallen van pokemon kaarten?

Pagina: 1
Acties:

  • Skaah
  • Registratie: Juni 2001
  • Niet online
Bij de Pokemon Trading Card Game heb je net als bij Magic - The Gathering, kaarten die een aanval kunnen doen op een andere kaart.
Deze kaarten zitten allemaal al in een database, m.u.v. de aanvallen.

Want hoe omschrijf je zo'n aanval voor een computer? Zodat die kan controleren of je niet valsspeelt en uiteindelijk kan meespelen?

Voorbeeldkaart

Beste poging tot nu toe: XML en die laten interpreteren door een php script.
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" ?>
<attack> 
 <damage target="opponent" amount="20" /> 
 <flipcoin /> 
 <if> 
  <coin:heads> 
   <preventdamage target="self" /> 
  </coin:heads> 
 </if> 
</attack> 
<attack> 
 <flipcoin /> 
 <if> 
  <coin:tails> 
  <damage target="self" amount="30" /> 
  </coin:tails> 
  <coin:heads> 
   <damage target="opponent" amount="60" /> 
  </coint:heads> 
 </if> 
</attack> 

Het hoeft natuurlijk niet in XML, het mag ook op een andere manier, in een database bijvoorbeeld. Per aanval een rij, met tig kolommen? Wat is een handige of praktische manier?

[edit]
Het probleem is dat de aanvallen ontzettend eenvoudig, maar ook heelcomplex (met kansen bijv.) kunnen zijn, en dat ik ze toch op een effectieve manier wil beschrijven.

[ Voor 70% gewijzigd door Skaah op 03-02-2004 11:18 ]


Verwijderd

Gewoon in een database zetten. Alle mogelijke aanvallen en dan controlleren. Maar wat is nou precies je vraag, want ik kwam daar toch niet echt uit |:(

  • Skaah
  • Registratie: Juni 2001
  • Niet online
Verwijderd schreef op 03 februari 2004 @ 11:09:
Gewoon in een database zetten. Alle mogelijke aanvallen en dan controlleren. Maar wat is nou precies je vraag, want ik kwam daar toch niet echt uit |:(
Alle mogelijke aanvallen in de database zetten is zoiets als alle mogelijke php scripts in een database zetten.

Zo'n aanval kan iets simpels zijn als "Doe 30 schade bij de tegenstander", maar ook iets ingewikkelders als "Gooi een munt, als het kop is: doe dan 30 schade bij de tegenstander, maar als het munt is, doe dan voor elke water-kaart in je deck 10 schade met een maximum van 40".

Ik wil toch dat de computer de uitkomst van een aanval kan bepalen.

Verwijderd

Skaah schreef op 03 februari 2004 @ 11:16:
Ik wil toch dat de computer de uitkomst van een aanval kan bepalen.
Dit is alleen mogelijk door allem mogelijkheden toch ergens te hebben. Hoe moet de computer anders weten wat goed of wat niet goed is?

Maar wat wil je precies berijken, je wilt een pokemon kaart spel maken? Altans in game vorm ofzo?

Verwijderd

misschien heb je wat meer info over Pokemon en aanvallen, want ik heb totaal geen idee waar je het over hebt

  • Skaah
  • Registratie: Juni 2001
  • Niet online
Verwijderd schreef op 03 februari 2004 @ 11:17:
Dit is alleen mogelijk door allem mogelijkheden toch ergens te hebben. Hoe moet de computer anders weten wat goed of wat niet goed is?
Je kiest een kaart, kiest daar een aanval uit, en de computer moet dan die aanval uit voeren.
Maar wat wil je precies berijken, je wilt een pokemon kaart spel maken? Altans in game vorm ofzo?
Yup, webbased.
Verwijderd schreef op 03 februari 2004 @ 11:19:
misschien heb je wat meer info over Pokemon en aanvallen, want ik heb totaal geen idee waar je het over hebt
Je hebt kaarten, die hebben Hitpoints. Elke kaart stelt een pokemon voor (je weet wel, "Pikachuuuuuu, ik kies jouw!")Een kaart kan een andere kaart aanvallen, waarbij een bepaalde 'damage' wordt gedaan. Die damage wordt afgetrokken van de Hitpoints van de kaart. Wanneer die 0 zijn, is de kaart / pokemon dood. Het doel is om alle kaarten van je tegenstander dood te maken (kort samengevat).
Het is dus de bedoeling dat het internetspel het kaartspel volgt, en dat je een aanval kan kiezen en dat die vervolgens door de computer uitgevoerd wordt. (Dus: dat de computer bepaalt hoeveel damage er gedaan wordt en op wie).

[ Voor 48% gewijzigd door Skaah op 03-02-2004 11:25 ]


Verwijderd

Dit is toch echt niet mogelijk zonder dat je alle aanvallen enzo in een database hebt geworpen.

  • Skaah
  • Registratie: Juni 2001
  • Niet online
Verwijderd schreef op 03 februari 2004 @ 11:27:
Dit is toch echt niet mogelijk zonder dat je alle aanvallen enzo in een database hebt geworpen.
Is het niet mogelijk makkelijker, praktischer om een soort scripttaal voor de aanvallen te maken en die te laten interpreteren door PHP?

[ Voor 5% gewijzigd door Skaah op 03-02-2004 11:37 ]


  • Macros
  • Registratie: Februari 2000
  • Laatst online: 30-04 09:28

Macros

I'm watching...

Skaah schreef op 03 februari 2004 @ 11:36:
[...]

Is het niet mogelijk makkelijker, praktischer om een soort scripttaal voor de aanvallen te maken en die te laten interpreteren door PHP?
Dat wilde ik net zeggen. Maar zo'n taal moet je of zelf bedenken, óf je gebruikt php als taal en sla je dat bij je kaart op in de database en execute je dat met exec().

"Beauty is the ultimate defence against complexity." David Gelernter


Verwijderd

Ja, maar dat neemt niet weg dat als nog alle aanvallen ergens moeten staan. Hoe wou je in PHP anders controleren of de aanval wel bestaat of niet. En hoe wil de gebruiken een aanval kiezen. Jij geeft hem toch maar bepaalde mogelijkheden bij een kaart... en bij die mogelijkheden zitten de aanvallen. Dus de gebruiker is niet in staat om een 'illigale' aanval te kiezen lijkt mij.

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Het is natuurlijk bijna ondoenlijk, maar je kunt elke aanval opslaan met alle waardes als variabelen. Zo kun je dus een aanval hebben "Breng x schade toe aan tegenstander" of een aanval "Doe A, bij uitkomst B: breng C schade toe aan tegenstander, anders D schade aan eigen karakter, met een max van E".

Zo kun je het aantal aanvallen dat je moet opslaan in ieder geval beperken, doordat sommige dubbel gebruikt worden, soms met andere waardes (denk ik :?) Het is echter een hels karwei, maar moet gebeuren wil je dit in een spel kunnen gieten...

My personal website


Verwijderd

Het is ook niet moeilijk om dit soort games in elkaar te zetten, maar echt ongelofelijk veel werk. Je komt er gewoon echt niet omheen...

  • Skaah
  • Registratie: Juni 2001
  • Niet online
Verwijderd schreef op 03 februari 2004 @ 12:04:
Het is ook niet moeilijk om dit soort games in elkaar te zetten, maar echt ongelofelijk veel werk. Je komt er gewoon echt niet omheen...
Er zijn 1800 kaarten met tusen de 1 en 6 aanvallen per stuk. Ik heb gelukkig een heel leger slaafjes medewerkers die zich met dat soort details bezig mogen houden })
Verwijderd schreef op 03 februari 2004 @ 11:40:
Ja, maar dat neemt niet weg dat als nog alle aanvallen ergens moeten staan. Hoe wou je in PHP anders controleren of de aanval wel bestaat of niet. En hoe wil de gebruiken een aanval kiezen. Jij geeft hem toch maar bepaalde mogelijkheden bij een kaart... en bij die mogelijkheden zitten de aanvallen. Dus de gebruiker is niet in staat om een 'illigale' aanval te kiezen lijkt mij.
Volgens mij hadden wij even een communicatiefoutje, dat bedoelde ik inderdaad. Maar het handigst is dus om voor elke aanval een script te schrijven en dat in de database op te slaan?

[ Voor 42% gewijzigd door Skaah op 03-02-2004 12:34 ]


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Pokémon:TGC (WotC game geloof ik) is helemaal nog niet zo complex als MtG, daar heb je veel meer geneuzel wbt timing rules.

Maargoed, het is gewoon een kwestie van kwantificeren welke soort dingen er mogelijk zijn, bijvoorbeeld
• damage (of type: rock enz.)
• life gaining
• card drawing
• effect (sleep/para/..)
• Met een bepaalde kans een van bovenstaande
• Voor elk in een verzameling Z een van bovenstaande

Dan krijg je dus een tree als
Damage, Effect, CardDraw en LifeGain extenden attack direct
Change, ForAll extenden attack en bevatten ook een Attack (aggegratie)
Dit is inderdaad te vangen in een XML achtige structuur om te verzenden naar de server, zoals je ongeveer aangaf in je openingspost, je moet dan een XML naar Attack mapping op gaan zetten dmv een parsing van de XML

[edit] Maar dit is wel redelijk complex met die XML, als je je bedenkt dat jij toch die attacks in de db moet hebben (immers, moet de client ze anders zelf verzinnen?) en dat je dan ook gewoon met een id'tje van de attack en id van de card klaar bent met de codering :o

[ Voor 15% gewijzigd door Glimi op 03-02-2004 15:14 ]

Pagina: 1