CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

mon nouveau programme!!

caeIacanthe
caeIacanthe
Niveau 10
18 avril 2008 à 09:41:10

vous connaissez le jeu du carré rouge?

http://www.chezmaya.com/jeux/carre_rouge.html

c'est un jeu très drôle et très difficile :hap:

j'ai fait un programme qui permet de devenir le champion du monde au jeu du carré rouge :content:

http://rafb.net/p/0DCfGc76.html

n'oubliez pas de le compiler avec la libgdi32 et libuser32 dans l'éditeur de lien, et n'oubliez pas de maximiser la fenêtre du navigateur contenant le jeu; un manuel de l'utilisateur apparait a l'éxecution! enjoy :gni:

caeIacanthe
caeIacanthe
Niveau 10
18 avril 2008 à 09:48:06

je dédie ce programme à dnob700 et a godrick sans qui rien n'aurait été possible :coeur:

guyver2
guyver2
Niveau 10
18 avril 2008 à 13:00:02

dommage que ce soit que pour windows.
je vais etre obligé de compter sur mes faibles capacités d'humain standard...

caeIacanthe
caeIacanthe
Niveau 10
18 avril 2008 à 13:40:26

ah oui, c'est vrai :peur:

j'ai oublié de dire que mon programme est entièrement basé sur la librairie windows.h qu'on ne trouve que sous windows :rouge:

Chaos_Clad
Chaos_Clad
Niveau 10
18 avril 2008 à 17:40:34

J'ai compilé, tout va très bien.
Mais j'ai absolument rien compris à ce qu'il fallait faire de particulier pour que ça lance le jeu xD

________________________________________
Ma vidéo du moment :
http://youtube.com/watch?v=96Fm5SPsjD0 (Les Kiss Kool, à voir absolument :coeur: )

"Suicide par défénestration : encore une victime de Qt :( "

Chaos_Clad
Chaos_Clad
Niveau 10
18 avril 2008 à 17:42:46

Ok j'ai compris, j'avais perché sur ce coup là -_-
Eh bien félicitations, je suis plutôt impressionné ^^
Je vais bien lire le code pour essayer de comprendre comment ça marche :)

________________________________________
Ma vidéo du moment :
http://youtube.com/watch?v=96Fm5SPsjD0 (Les Kiss Kool, à voir absolument :coeur: )

"Suicide par défénestration : encore une victime de Qt :( "

dnob700
dnob700
Niveau 10
18 avril 2008 à 20:21:45

"je dédie ce programme à dnob700 et a godrick sans qui rien n'aurait été possible"

Merci, mais la partie vraiment importante c'est la logique pour éviter les carré, et ça, c'est entièrement de toi. Il faudra que je regarde comment tu fait (tu devrait mettre des return true; partout et enlever tout tes "if").

Je n'ai pas tester car je suis sous linux, mais ça a vraiment l'air très bien.

Neoknight
Neoknight
Niveau 10
18 avril 2008 à 20:49:51

ça fait un peu code de porc tous ces if nan ? :(

Chaos_Clad
Chaos_Clad
Niveau 10
18 avril 2008 à 20:55:46

C'est vrai que le code devrait pouvoir être allégé, mais ça marche très bien. Ceci dit il trouve vite ses limites :o))

________________________________________
Ma vidéo du moment :
http://youtube.com/watch?v=96Fm5SPsjD0 (Les Kiss Kool, à voir absolument :coeur: )

"Suicide par défénestration : encore une victime de Qt :( "

dnob700
dnob700
Niveau 10
19 avril 2008 à 14:18:42

ton code n'est plus accessible. tu devrais le stocker sur un espace d'où il ne partira pas (je peut fournir ça si tu en as besoin).

caeIacanthe
caeIacanthe
Niveau 10
21 avril 2008 à 08:54:20

mon programme regarde autour du carré rouge s'il y a du bleu qui apparait, et le cas écheant cherche une zone d'atterissage pour amener le carré rouge en sécurité :oui:

tous les if sont là pour éviter que les fonctions regardent tous les capteurs quand il y en a déja qui ont détecté la présence du bord ou d'un carré rouge... car a vrai dire, plus l'ordi est lent, plus le programme met de temps à trouver une zone sécurisée, et on se fait toucher :rouge:

il y a aussi des cas, rarissimes, ou la landingzone pose ses capteurs juste autour d'un carré bleu et le carré rouge se pop dessus (mais là encore, je ne peux mettre trop de capteurs a cause du temps d'exécution :( )

j'ai mis mon fichier sur megôpload, j'espère que le lien fonctionnera!

http://www.megaupload.com/?d=VJRDOBN3
http://www.megaupload.com/?d=VJRDOBN3

dnob700
dnob700
Niveau 10
21 avril 2008 à 21:57:31

ce que je voulais dire c'est que tu peut remplacer tout tes "= true" par "return true;" et enlever les if.

dnob700
dnob700
Niveau 10
21 avril 2008 à 21:58:42
  • "retour=true"
caeIacanthe
caeIacanthe
Niveau 10
22 avril 2008 à 09:02:51

et quand le programme rencontre un return dans la fonction, il la quitte instantanément?

je crois me souvenir que mes profs de programmation disaient qu'il ne fallait jamais mettre plusieurs return dans une fonction :peur:

m'enfin je vais essayer, si ca marche ma fonction sera encore plus optimisée :coeur:

caeIacanthe
caeIacanthe
Niveau 10
22 avril 2008 à 11:16:23

ca ne marche pas :peur:

dnob700
dnob700
Niveau 10
22 avril 2008 à 20:03:36

qu'est ce que tu as écris ? c'est censé fonctionner car d'une part, oui, quand un programme rencontre un return dans une fonction, il quitte instantanément et d'autre part, tu peut avoir autant de return par fonction que tu veux (du moment que ça reste lisible, et là ça sera mieux).

Par exemple, tu peut écrire :

bool alerte(POINT pt, HDC hdc, int rayon){

int r,g,b;

pt.x=pt.x+5;

pt.y=pt.y+5;

COLORREF pix;
pix=GetPixel(hdc,pt.x+rayon,pt.y);

g = GetGValue(pix);

b = GetBValue(pix);

if(g+b!=510)return true;

pix=GetPixel(hdc,pt.x,pt.y+rayon);

// r = GetRValue(pix);

g = GetGValue(pix);

b = GetBValue(pix);

if(g+b!=510)return true;

...
return false;
}

C'est valable pour l'autre fonction aussi.

Mais une méthode supérieur serait de faire une fonction du type :

bool okPixel(HDC hdc, int x, int y)
{

int g,b;

COLORREF pix;

pix=GetPixel(hdc,x,y);

g = GetGValue(pix);

b = GetBValue(pix);

return (g+b!=510);
}

Puis tu ré-écris tes fonctions dans le genre :
bool alerte(POINT pt, HDC hdc, int rayon){
pt.x=pt.x+5;
pt.y=pt.y+5;
if(okPixel(hdc,pt.x+rayon,pt.y))
return true;
else if (okPixel(hdc,pt.x,pt.y+rayon))
return true;
...
return false;
}

ou même pire :
bool alerte(POINT pt, HDC hdc, int rayon)
{
pt.x=pt.x+5;
pt.y=pt.y+5;
return (okPixel(hdc,pt.x+rayon,pt.y)
&& okPixel(hdc,pt.x,pt.y+rayon)
&& ...
...
)

Une fois que tu a vue le truc, tu peut essayer de tout réécrire avec une boucle, ça sera un peu moins efficace mais ça fera un code beaucoup plus court, avec moins d'erreur, etc.

Et enfin, les fonction alerte et landingzone sont si semblable, qu'il faudrait les ré-écrire en une seule fonction.

Voila mes conseils pour transformer ça en un programme propre (je pense que ces fonctions qui font à elle deux 285 lignes peuvent être ré-écrite en une seule fonction de 10 lignes sans aucune perte d'efficacité).

caeIacanthe
caeIacanthe
Niveau 10
23 avril 2008 à 08:52:18

ah ok, je vois mon erreur, j'ai oublié le return false a la fin des fonctions :(

mais mon programme se doit d'être le plus rapide possible, vu qu'il n'arrète pas le jeu pendant la recherche de la landingzone! a vrai dire, j'ai essayé sur un pc a peine plus ancien (et moins bien entretenu) que ce qui se fait maintenant, le programme tient une quinzaine de secondes... je ne sais donc pas si l'utilisation d'une boucle est une bonne idée :peur:

(ah ok, j'avais jamais vu return machin && truc && bidule :ouch: )

Neoknight
Neoknight
Niveau 10
23 avril 2008 à 09:49:11

Bien ta grotte :noel:

dnob700
dnob700
Niveau 10
23 avril 2008 à 23:05:01

faire une boucle ne sera pas pire que ce que tu fait pour l'instant (pourvu qu'il y ai un return dedans quand il faut arrêter de boucler).

La seule chose qui sera plus rapide (et encore ça dépend du compilo) c'est d'enlever tout les if.

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment