Goedendag ik ben bezig met een fantasy game waar je monster moet attacken om zo snel mogelijk lvl up te komen.

Nu loop ik tegen het volgende aan.
Ik moet een bereking uitvoeren aan de hand van deze gegevens
player attack = 50
player defence = 45
player health = 100

monster attack = 30
monster defence = 1
monster health = 171

het moet niet zo zijn zoals criminals dat als player attack groter is
dan monster attack dat je altijd wint.
hier wil ik het dus zo doen dat als player 50 attack heeft en de monster 171 health heeft en 1 defence dat de player dus met 49 attackt en dus dan
al 4 keer moet slaan voordat ie de monser dood heeft
vice versa ook. wie kan mij hiermee helpen zou het zeer op prijs stellen.
Ik zal als ik jou was eerst OOP leren:
tut van blanche
classes zijn groepen van functies bij elkaar die samen een doel vervullen.
Ke heb de tut doorgenomen.
is het echt alleen maar om je code hebruikbaar te maken
en als er wat verandert moet worden makkelijker wordt?

zit er wel leuk uit om mee te beginnen met klein project.
als ik dat er nu bij moet gaan doen dan loopt mijn hoofd vast xD
Dan moet ik weer anders denken. terwijl ik het nu goed in mijn hoofd
heb zitten.

en heb geen classes ik ben een beginner dat zul je denk ik nu wel merken
maar ik leer snel xD

@roy
Ik heb de code aangepast maar hoe zet ik er een echo in van
je hebt gewonnen of verloren heb nu dit


<?php
if($p == "attack" AND $id == $_GET['id'])
{
	//Attack berekening
	while(true)
	{
		//p = player m = monster
		if($char_attack - $monsters['defence'] > 0){ //als de speler meer attack heeft dan defence van het mosnter
			$monsters['health'] -= $char_attack - $monsters['defence'];
			if($monsters['health'] <= 0) 
			echo "You won";
			break; //Als het monster dood is dan script stoppen
		}
		if($monsters['attack'] - $char_def > 0){ //Als het monster meer attack heeft dan defecen van char
			$char_health -= $monsters['attack'] - $char_def;
			if($char_health <= 0)
			echo "You lose";
			break; //Als de char dood is dan script stoppe
		}
	}
}
?>
check regel 11 en 17,, heb je dat al niet gedaan?
En kan je niet beter wiskundig gaan berekenen wie er wint?
if($monsters even elseif van maken
Wanneer de code die moet uitgevoerd worden slecht uit één lijn bestaat, mogen de accolades weggelaten worden, anders moet je ze gebruiken.
Gebruik gewoon accolades,, dan weet je zeker dat je altijd goed zit,,
Om ze altijd neer te zetten kost 1 seconden,,
Om ze naderhand neer te zetten,, kost 10 seconden.
En het is gewoon netter, vind ik.
Ook omdat je de witregels tussen de statements krijgt.
@thomas het antwoord is al gegeven door Yearupie. Ik weet niet hoe goed je php kennis, maar ik denk dat je beter kan beginnen met een ander project om php wat beter te leren. Het namelijk niet makkelijk om een goed spel te maken in php. En zeker niet een spel dat goed en efficiënt werkt. Want het script wat ik gaf is inderdaad niet de beste oplossing. voor een paar gebruikers is het leuk, maar als je veel gebruikers hebt, dan gaat je server niet heel leuk vinden.
En om zo'n spel te maken kost heel veel tijd, zeker als je alleen bent en nog niet goed php kent (denk ik tenminste dat je niet goed in php bent).
Het script is ook nog niet af, want als beide 'personen' niet kunnen aanvallen (lagere attack dan defence) dan kom je in een oneindige lus. dat zal je dus ook nog op moeten letten. Maar dat mag je zelf proberen.

@nico
klopt het is ook niet de tijd, maar ik vind het overzichtelijker (bij korte regels).

Reageren