Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Kämpfe bei Browsergames mit verschiedenen Einheiten (https://www.delphipraxis.net/57643-%5Bphp%5D-kaempfe-bei-browsergames-mit-verschiedenen-einheiten.html)

Binärbaum 27. Nov 2005 17:13

Re: [PHP] Kämpfe bei Browsergames mit verschiedenen Einheite
 
Zitat:

Zitat von Master_RC
So...
die Unique-ID per auto_increment ist mir auch klar, nur wie kann ich dann bereits beim Eintragen wissen, wie die lautet? Kann man die irgendwie sogar gleich ebstimmen?

Das Autoincrement zählt ja einfach nur eins weiter, vom letzten/ höchsten Index an gerechnet. Wenn man also zum letzten Wert eins dazuaddiert, hat man die Autoincrement-ID schon.
Es gibt, glaube ich, sogar eine Funktion, die sowas (oder zumindest etwas ähnliches) macht: mysql_insert_id.

Zitat:

mysql_insert_id() liefert die ID, die bei der letzten INSERT-Operation für ein Feld vom Typ AUTO_INCREMENT vergeben wurde.
MfG
Binärbaum

Taladan 27. Nov 2005 17:48

Re: [PHP] Kämpfe bei Browsergames mit verschiedenen Einheite
 
Zitat:

Zitat von Master_RC
So...
die Unique-ID per auto_increment ist mir auch klar, nur wie kann ich dann bereits beim Eintragen wissen, wie die lautet? Kann man die irgendwie sogar gleich ebstimmen?

In dem du zwei Tabellen machst.
- Schlacht
- Members

Schlacht
ID (autoInc)
Agressor
Verteidiger
Timestamp (wichtig)

Hier selectest du nach Timestamp, Agressor udn Verteidiger (die du in eienr Variable zum suchen abspeichern solltest). und ließt dann die ID aus.

Memnbers
ID (autoInc)
Schacht_ID
Einheit
Zugehörtigkeit

Zitat:

Zitat von Master_RC
Ja, schon klar, wie das aussehen soll, das Kampfscript, nur wie soll das in PHP aussehen? Also dass zwei Einheiten mit drei kloppen, etc? (Variante 1)

Zwei Möglichkeiten sehe ich. Beide mit viel Aufwand verbunden, da du ein wenig die Objekte nachsimulieren mußt. Probiere das ganze erst einmal als 1vs1 und arbeite dich dann vor. Ich kann in kurzer Zeit unmöglich ein komplettes Script bieten, doch hier ein paar Ansätze.

1. Mehrdimensionale Arrays:
So kann man leicht quasiObjecte erschaffen.
XML-Code:
$array = array ("Angreifer" => array ("AT" => 5, "PA" =>3, "LeP" => 12 usw.)
$array = array ("Verteidiger" => array ("AT" => 5, "PA" =>3, "LeP" => 12 usw.)

Code:
while ($array[Angreifer,3] or $array[Verteidiger,3]) >= 0 {
  dein kampfscript
}
So kannst du Die arrays fast als werte wie objecte verwenden.
Statt arrays kann man auch Classen verwendne und dann OOP programmieren.
Weitere infos über Arrays, Classen und php findest du hier http://www.selfphp.de/funktionrefere...onen/index.php

2. Per DB:
Schwachsinn, aber auch möglich. Eine eigene Tabelle erstellen, wo du die werte Schritt für schritt änderst.

Master_RC 30. Nov 2005 17:55

Re: [PHP] Kämpfe bei Browsergames mit verschiedenen Einheite
 
warum bin ich eigentlich nicht selbst drauf gekommen? :?

Sehr vielen Dank!
Ich werds mal genau so probieren, nur noch 1 Problem dazu :-D
Wenn ich so alle Einheiten in nem Array hab, wie ändere ich dann dazu die Einträge in der Datenbank? ^^
Also bei mir sollte dann der Array wie folgt aussehen:
$angreifende_Einheiten = array("Einheit1" => array(....),
"Einheit2"=> array(.....), etc.)

Dabei sollte man auch beachten, dass Einheiten sterben können, also dann aus der DB gelöscht werden sollen...


Mit dieser Frage sollte dann eigentlich das Thema geklärt sein...

Taladan 30. Nov 2005 21:34

Re: [PHP] Kämpfe bei Browsergames mit verschiedenen Einheite
 
Kurze Antwort da schon viel zu spät umd zu denken ;-).

Wenn der Kampf beendet, also die eine Seite keine Lebenden mehr hat, dann löscht du die einfach per SQL-Delete Befehl, da ja die meisten DB´s SQL fähig sind.
SQL-Code:
Delete * from 'Einheiten' where ID = XYZ
Die ID muß dann auch wieder aus den Array gelesen werden (also ein weiterer Punkt im Array wobei du auch bei PHP >5.0 ein Array of TObject machen kannst). Es gibt ein feines Programm, PhpMyAdmin. Dieses kann dir einen entsprechenden Befehl quasi vordefinieren, den du dann nur noch in dein Programm implementieren und mit den Variablen editieren. Dieses Programm funktioniert nur auf PHP basierende Server mit MySQL als DB. (Was ja die Standartkombie ist)
Zu finden hier
http://www.phpmyadmin.net/home_page/index.php

Master_RC 4. Dez 2005 12:29

Re: [PHP] Kämpfe bei Browsergames mit verschiedenen Einheite
 
also gut, ich hab mich mal über den letzten tagen mal wieder dran gesetzt und hab jetzt eigentlich alles bis auf eins:

Wie lege ich nun fest, welche Einheit mit welcher kloppt?
Bzw. wenn 5 gegen 4 kämpfen, dass eine Einheit gegen 2 antritt...

Hab mir da schon viel ausgedacht, was aber immer schief ging... :(

Taladan 4. Dez 2005 15:12

Re: [PHP] Kämpfe bei Browsergames mit verschiedenen Einheite
 
Ich würde ungefähr so vorgehen.

Als erstes bestimmen, welche Seite die Größere ist. dann die größere Seite nach und nach einen Gegner geben. Wenn die Kleienere am schluss ist, dann wieder von vorne. Damit werden immer die ersten mehrfach angegriffen. Mal einen beispel mit 3:8

3 < 8

Seite 2 vs Seite 1
1 1
2 2
3 3
4 1
5 2
6 3
7 1
8 2

Oder alternativ mit einen zufallsgenerator verteilen. Das bringt auch mehr ähm Kampfrealität.


Gruß

Master_RC 7. Dez 2005 11:48

Re: [PHP] Kämpfe bei Browsergames mit verschiedenen Einheite
 
Gut, natürlich wäre ein Zufallsgenerator am Einfachsten :)
Aber mein Spiel sollte diesmal mit Qualität glänzen ;)

Also...
Das mit dem "der Reihe nach" mach ich wahrscheinlich mit ner WHILE-Schleifer, oder? :gruebel:

Jetzt ist es natürlich so, dass ich ja ein kleines Ekel bin und natürlich das mit dem Zuffi haben will :mrgreen:

So...
Eigentlich einfach:
Einheit[greiftEnheitenIDan] = random(maxGegneranzahl)

So...
Jetzt überkommt mir, dass es aber ein "unberechenbarer Zufall" ist, also manche Einheit wird nicht angegriffen!
Wie sollte ich das verhindern?


(So... jetzt wäre mir eine Idee gekommen, was jedoch mit der Spielidee zu tun hat: Durch irgendein bestimmtes Ereignis - Geld, "Ausruhen-Option", etc. - könnte man ja bestimmen, ob es Zufall- oder Reihenkampf ist ;) tut jetzt aber nichts zur Sache ^^)

Airblader 7. Dez 2005 12:18

Re: [PHP] Kämpfe bei Browsergames mit verschiedenen Einheite
 
Du könntest neben MaxAnzahl auch MinAnzahl machen.
Also statt

bla = Random(MaxZahl);

->

bla = Random(MaxZahl + MinZahl) - MinZahl;

air

Master_RC 9. Dez 2005 17:01

Re: [PHP] Kämpfe bei Browsergames mit verschiedenen Einheite
 
Zitat:

Zitat von Airblader
Du könntest neben MaxAnzahl auch MinAnzahl machen.
Also statt

bla = Random(MaxZahl);

->

bla = Random(MaxZahl + MinZahl) - MinZahl;

air

Da gibts leider immernoch unnütze Einheiten :(

Beispiel: 5 gegen 5

Die Würfel der angreifenden fünf wie folgt bei Random:

2
3
4
4
2

==> 5 und 1 werden nicht angegriffen :(

Taladan 10. Dez 2005 15:10

Re: [PHP] Kämpfe bei Browsergames mit verschiedenen Einheite
 
Dann setze als erstes 1 vs 1. und erst bei den überzähligen deine Randomschleife


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:45 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz