Exercice en Pawn - Expert
#1

[CENTER][SIZE="4"]Niveau des exercices : [COLOR="Red"]Expert[/COLOR][/SIZE]

Bonjour,
ici vous trouverez des exercices qui seront а faire et а poster а la suite de ce sujet.

Si vous pensez que les exercices indiquйs sont trop faciles pour vous, regardez les autres sujets d'exercices.
Pensez а expliquer votre code, ne le postez pas bкtement, prouvez que vous avez compris ce que vous avez fait.

Vous pouvez poster un exercice, dиs que celui en cours est terminй.
Pensez а indiquer les ressources (callbacks, fonctions, tableaux, boucles etc...) pour chaque exercice afin d'aider un minimum pour rйaliser le code.

[ttable]

[tr]
[td][SIZE="3"][COLOR="DarkRed"][CENTER]Exercice[/CENTER][/COLOR][/SIZE][/td]
[td][SIZE="3"][COLOR="DarkRed"][CENTER]Rйsolution[/CENTER][/COLOR][/SIZE][/td]
[td][SIZE="3"][COLOR="DarkRed"][CENTER]Points[/CENTER][/COLOR][/SIZE][/td]
[/tr]

[tr]
[td][URL="https://sampforum.blast.hk/showthread.php?pid=3434708#pid3434708"]Exercice : 1[/URL] [S4t3K][/td]
[td][URL="https://sampforum.blast.hk/showthread.php?pid=3434714#pid3434714"]Rйsolution [/URL] [Dutheil][/td]
[td][Image: star.png][/td]
[/tr]

[tr]
[td][URL="https://sampforum.blast.hk/showthread.php?pid=3435208#pid3435208"]Exercice : 2[/URL] [S4t3K][/td]
[td][URL="https://sampforum.blast.hk/showthread.php?pid=3446576#pid3446576"]Rйsolution [/URL] [Chris53340][/td]
[td]TRICHEUR :mad:[/td]
[/tr]


[/ttable][/CENTER]
Reply
#2

Entre nous, si les gens trouvent les exercices expert trop faciles c'est qu'ils n'ont rien а faire sur les autres topics ;)

On va commencer doucement !

Crйez votre propre fonction pour rйcupйrer la position devant un joueur.
Vous aurez besoin d'un bon niveau en trigonomйtrie et en projection mentale aussi (vous n'avez pas besoin de GetPlayerCameraFrontVector).
Reply
#3

Facile :D

PHP Code:
GetPosInFrontOfPlayer(playerid, &Float:x, &Float:yFloat:distance)
{
    new 
        
Float:angle;

    
GetPlayerPos(playeridxyangle);
    
GetPlayerFacingAngle(playeridangle);

    
+= (distance floatsin(-angledegrees));
    
+= (distance floatcos(-angledegrees));


Besoin d'explication ? Logiquement, suffit d'lire le wiki pour floatsin et floatcos et d'connaоtre la trigo'
Reply
#4

Dutheil;3434714 Wrote:Facile :D

PHP Code:
GetPosInFrontOfPlayer(playerid, &Float:x, &Float:yFloat:distance)
{
    new 
        
Float:angle;

    
GetPlayerPos(playeridxyangle);
    
GetPlayerFacingAngle(playeridangle);

    
+= (distance floatsin(-angledegrees));
    
+= (distance floatcos(-angledegrees));


Besoin d'explication ? Logiquement, suffit d'lire le wiki pour floatsin et floatcos et d'connaоtre la trigo'

Petite question.Tu ne doit pas return quelque chose ?
Reply
#5

S4t3K;3434708 Wrote:Entre nous, si les gens trouvent les exercices expert trop faciles c'est qu'ils n'ont rien а faire sur les autres topics ;)

On va commencer doucement !

Crйez votre propre fonction pour rйcupйrer la position devant un joueur.
Vous aurez besoin d'un bon niveau en trigonomйtrie et en projection mentale aussi (vous n'avez pas besoin de GetPlayerCameraFrontVector).

Je trouve que c'est plutфt un niveau avancй mais pas expert :)
Reply
#6

StreetRP;3434756 Wrote:Petite question.Tu ne doit pas return quelque chose ?

Non car les variables sont passй en rйfйrence (si tu comprends pas, GIYF).



Vukilore;3434768 Wrote:Je trouve que c'est plutфt un niveau avancй mais pas expert :)

De plus, il faut avoir des compйtances en trigonomйtrie, et le tour est jouй.
Reply
#7

StreetRP;3434756 Wrote:Petite question.Tu ne doit pas return quelque chose ?

Va lire mon tutoriel sur les fonctions et va faire des exercices pour dйbutants :')
Reply
#8

Dutheil;3434786 Wrote:Va lire mon tutoriel sur les fonctions et va faire des exercices pour dйbutants :')

chehh
Reply
#9

@Vuki : "On commence doucement"

@Dutheil : Toi et Vuki vous кtes interdits de les faire les exercices normalement, mais je vais vite fait expliquer pourquoi cosinus et sinus (premiиre bissectrice du cercle trigo en gros).

Pour ceux n'ayant pas (encore) fait de trigo en seconde (gйnйrale hein mdr), sah, lisez mкme pas j'ai pas envie d'expliquer зa c'est chiant.
Si on prend le premier quart du cercle (0 - π/2) et qu'on trace la premiиre bissectrice du cercle, donc la droite qui part du centre du cercle et qui passe par le point а π/4, on obtient un quart de cercle partagй en deux.
Vous savez йgalement que les cosinus expriment une abscisse et les sinus une ordonnйe.

La ligne oщ regarde le joueur sert en quelque sorte de premiиre bissectrice (le facing angle en fait), et la ligne du nord de GTA sert de π/2 en gros. La propriйtй dit que l'angle associй avec la premiиre bissectrice (excusez moi mais la jui sur les suites, la trigo зa fait un petit moment mdr) prend comme cosinus (x) le sinus (y) et comme sinus (y) le cosinus (x). On a donc un point A d'abscisse X et d'ordonnйe Y. cos(A) = X, sin(A) = Y. Si on trace B, le symйtrique de A par rapport а la premiиre bissectrice, on aura donc cos(B) = Y, sin(B) = X.

On a plus qu'а ajouter aux positions la distance * les coordonnйes du point а cette distance devant le joueur.
Si зa vous semble abstrait, c'est que vous avez rйellement pas fait de trigo, et je rйpondrai vraiment а aucune question la dessus (moi pas aimer trigo а la base).

Bon allez, un autre un peu plus dur.
Modifiez moi la fonction printf pour pouvoir y ajouter le spйcificateur %p, tel que "printf("%p", playerid);" affiche le nom du joueur s'il est connectй. Par dйfaut, il prend en charge les spйcificateurs sur cette page : https://sampwiki.blast.hk/wiki/printf . Eh bah la, en plus de ceux la, зa sera possible de prendre en charge le %p.

Je n'impose qu'un seul spйcificateur car une fois qu'on a su le faire pour un, c'est vraiment facile de continuer par soi-mкme et de crйer les siens.

Vous aurez besoin d'une de ces deux choses AU CHOIX :

- #emit (bawi vous vous attendiez а quoi ? mdr)
- getarg (mais honnкtement faоtes le avec #emit, on se casse moins la tкte)

EDIT : Je veux le code entier, comme si vous vouliez lancer la fonction dans un FS sйparй. Donc si je vous reprends en disant qu'il manque un truc, me sortez pas une excuse de merde :)

EDITІ : Les trolls qui voudraient essayer de le faire avec y_va (comme on vient de me proposer), sachez que зa marchera pas pour la simple et bonne raison que si je fais зa par exemple : "printf("%s %p %d %s", "str", 0, 4, "str");", y_va comprendra pas comment interprйter le %p ;)
Reply
#10

S4t3K;3435208 Wrote:@Dutheil : Toi et Vuki vous кtes interdits de les faire les exercices normalement

mais :'(
Reply
#11

Bah ouai, c'est comme si moi la j'suis en 1re S et on me renvoyait en 3иme. Quel intйrкt ?
T'as pas besoin d'exercices, Vuki non plus, moi encore moins ;)
Reply
#12

Ah quand on passe au niveau supйrieur y'a plus personne la
Reply
#13

Nn c'est juste que personne n'a le niveau "Expert" sur le forum FR а part toi, Vuki et Dutheil donc ntm
Reply
#14

Chipardeur;3437395 Wrote:Nn c'est juste que personne n'a le niveau "Expert" sur le forum FR а part toi, Vuki et Dutheil donc ntm

Tu dis sa en te basant sur quoi ?
Reply
#15

Chipardeur;3437395 Wrote:Nn c'est juste que personne n'a le niveau "Expert" sur le forum FR а part toi, Vuki et Dutheil donc ntm

Nn c'est juste que personne n'a le niveau "Expert" sur le forum FR а part toi, Vuki et Dutheil donc [COLOR="Red"]ntm[/COLOR]

Haha, je suis encore loin de se niveau lа ^^
Reply
#16

ANDR3X;3437423 Wrote:Tu dis sa en te basant quoi ?

En me basant sur les niveaux des gens actifs du forum.
@Smocky: Tu y arriveras avec persйvйrance ;)
J'pourrais avoir le niveau de S4t3k mais j'ai pas le temps en fait, j'essaye ton exo demain
Reply
#17

Ils sont ou les exercices pour dйbutant?
Reply
#18

[Image: 069.jpg]
Reply
#19

Alors les guezouzes ? On se plaint que mon premier exo est trop facile et on essaye pas le deuxieme car il est trop dur ? Bande de nazes
J'vais faire comme Nendo j'vais aller jouer a la Nintendo DS en vous attendant
Reply
#20

S4t3K;3435208 Wrote:@Vuki : "On commence doucement"

@Dutheil : Toi et Vuki vous кtes interdits de les faire les exercices normalement, mais je vais vite fait expliquer pourquoi cosinus et sinus (premiиre bissectrice du cercle trigo en gros).

Pour ceux n'ayant pas (encore) fait de trigo en seconde (gйnйrale hein mdr), sah, lisez mкme pas j'ai pas envie d'expliquer зa c'est chiant.
Si on prend le premier quart du cercle (0 - π/2) et qu'on trace la premiиre bissectrice du cercle, donc la droite qui part du centre du cercle et qui passe par le point а π/4, on obtient un quart de cercle partagй en deux.
Vous savez йgalement que les cosinus expriment une abscisse et les sinus une ordonnйe.

La ligne oщ regarde le joueur sert en quelque sorte de premiиre bissectrice (le facing angle en fait), et la ligne du nord de GTA sert de π/2 en gros. La propriйtй dit que l'angle associй avec la premiиre bissectrice (excusez moi mais la jui sur les suites, la trigo зa fait un petit moment mdr) prend comme cosinus (x) le sinus (y) et comme sinus (y) le cosinus (x). On a donc un point A d'abscisse X et d'ordonnйe Y. cos(A) = X, sin(A) = Y. Si on trace B, le symйtrique de A par rapport а la premiиre bissectrice, on aura donc cos(B) = Y, sin(B) = X.

On a plus qu'а ajouter aux positions la distance * les coordonnйes du point а cette distance devant le joueur.
Si зa vous semble abstrait, c'est que vous avez rйellement pas fait de trigo, et je rйpondrai vraiment а aucune question la dessus (moi pas aimer trigo а la base).

Bon allez, un autre un peu plus dur.
Modifiez moi la fonction printf pour pouvoir y ajouter le spйcificateur %p, tel que "printf("%p", playerid);" affiche le nom du joueur s'il est connectй. Par dйfaut, il prend en charge les spйcificateurs sur cette page : https://sampwiki.blast.hk/wiki/printf . Eh bah la, en plus de ceux la, зa sera possible de prendre en charge le %p.

Je n'impose qu'un seul spйcificateur car une fois qu'on a su le faire pour un, c'est vraiment facile de continuer par soi-mкme et de crйer les siens.

Vous aurez besoin d'une de ces deux choses AU CHOIX :

- #emit (bawi vous vous attendiez а quoi ? mdr)
- getarg (mais honnкtement faоtes le avec #emit, on se casse moins la tкte)

EDIT : Je veux le code entier, comme si vous vouliez lancer la fonction dans un FS sйparй. Donc si je vous reprends en disant qu'il manque un truc, me sortez pas une excuse de merde :)

EDITІ : Les trolls qui voudraient essayer de le faire avec y_va (comme on vient de me proposer), sachez que зa marchera pas pour la simple et bonne raison que si je fais зa par exemple : "printf("%s %p %d %s", "str", 0, 4, "str");", y_va comprendra pas comment interprйter le %p ;)

[COLOR="Blue"]J'ai pas compris. Tu parle de contournй le code suivant?

PHP Code:
new pName[MAX_PLAYER_NAME];

GetPlayerName(playeridpNamesizeof(pName));
printf("Votre pseudo est %s" pName); 

Si oui. [URL="http://pastebin.com/xMAMtB6M"]Pastebin[/URL] et un grand [URL="https://sampforum.blast.hk/showthread.php?tid=313488"]merci[/URL]. :D[/COLOR]
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)