#2401 Le 01/02/2012, à 12:33
- tshirtman
Re : /* Topic des codeurs [6] */
Oui oui, c'est ce qui m'a piégé, j'essaye de coder "à la ruby" en virant tout "l'inutile" mais je n'avais pas pensé que ça pourrait causer ce genre de soucis. Les syntaxes ambiguës c'est le mal…
Hors ligne
#2402 Le 01/02/2012, à 12:40
- The Uploader
Re : /* Topic des codeurs [6] */
Oui du coup je met toujours les parenthèses désormais..
*regarde son code*
... ou en tout cas plus souvent.
Dernière modification par The Uploader (Le 01/02/2012, à 12:43)
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne
#2403 Le 02/02/2012, à 01:40
- The Uploader
Re : /* Topic des codeurs [6] */
classe Point :
(oui il y a Rubygame::FTor qui aurait presque pu convenir, mais c'est pas ce que je veux. Et Rubygame::Rect est bien pour savoir la position d'un sprite et détecter les collisions, mais c'est tout)
Comportement à atteindre (enfin surtout pour la normalisation, mais le reste va avec) :
normalize (Point.normalize method)
public normalize(length: Number) : Void
Scales the line segment between (0,0) and the current point to a set length.
Availability: ActionScript 1.0; Flash Player 8
Parameters
length: Number - The scaling value. For example, if the current point is (0,5), and you normalize it to 1, the point returned is at (0,1).
Example
The following example extends the length of the normalizedPoint object from 5 to 10.
import flash.geom.Point; var normalizedPoint:Point = new Point(3, 4); trace(normalizedPoint.length); // 5 trace(normalizedPoint.toString()); // (x=3, y=4) normalizedPoint.normalize(10); trace(normalizedPoint.length); // 10 trace(normalizedPoint.toString()); // (x=6, y=8)
http://help.adobe.com/en_US/AS2LCR/Flas … 01443.html
La normale sera utilisé par les bots pour leur direction vers un point (en fait c'est toujours la normale sur 1 pour éviter qu'ils se téléportent.. En tout cas c'est comme ça dans le code ActionScript. J'pense que je risque d'avoir le même problème d'où l'implémentation de cette classe).
Implémentation Ruby :
module SMA_FIGHT
module Lib
class Point
attr_reader :x
attr_reader :y
def initialize(x = 0, y = 0)
@x = x
@y = y
end
def Point.distance(point, other_point)
a = (point.x - other_point.x).abs
b = (point.y - other_point.y).abs
if a == 0 and b > 0
return b
end
if b == 0 and a > 0
return a
end
return a+b / 2
end
def length
return Point.distance(self, Point.new(0, 0))
end
def normalize!(length_scale = 1)
@x = length_scale if @x > length_scale
@y = length_scale if @y > length_scale
while length < length_scale
@x = @x + 1
@y = @y + 1
end
end
end
end
end
Résultat :
irb(main):002:0> require 'point'
=> true
irb(main):003:0> include SMA_FIGHT::Lib
=> Object
irb(main):004:0> a = Point.new(3, 4)
=> #<SMA_FIGHT::Lib::Point:0x000000015da808 @x=3, @y=4>
irb(main):005:0> a.length
=> 5
irb(main):006:0> a.normalize!(10)
=> nil
irb(main):007:0> a
=> #<SMA_FIGHT::Lib::Point:0x000000015da808 @x=7, @y=8>
irb(main):008:0> a.length
=> 11
Close enough... (je vois pas trop pourquoi ça bug à moitié, je verrai ça demain)
Dernière modification par The Uploader (Le 02/02/2012, à 09:20)
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne
#2404 Le 02/02/2012, à 02:21
- Pylades
Re : /* Topic des codeurs [6] */
J’n’ai pas encore rattrappé mon retard de lecture, mais je vous fais tout de même profiter de ça :
wakeup ()
{
MUSIC_DIR="$HOME/Musique/Bibliothèque/The Offspring/Conspiracy of One/";
FILES=('09 - One Fine Day.flac' '10 - All Along.flac');
command="mplayer '$MUSIC_DIR${FILES[$(($RANDOM%${#FILES[@]}))]}'";
eval "$command";
at "$1" <<< "$command";
unset command FILES MUSIC_DIR
}
:]
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#2405 Le 02/02/2012, à 11:15
- Rolinh
Re : /* Topic des codeurs [6] */
@Pylade: intéressant mais ça demande à être amélioré. Je vais voir si je peux en faire un basé sur mpd qui lancerait une playlist "wake-up" et augmenterait le son de façon progressive.
EDIT: on dirait que j'étais partit pour réinventer la roue, une fois de plus: mpdalarm.
Dernière modification par Rolinh (Le 02/02/2012, à 11:19)
Hors ligne
#2406 Le 02/02/2012, à 11:50
- grim7reaper
Re : /* Topic des codeurs [6] */
Hello World!
Close enough... (je vois pas trop pourquoi ça bug à moitié, je verrai ça demain)
Peut-être parce que ton calcul de la distance est foireux.
Je serais toi je ferais
return Math.sqrt(a*a + b*b).floor
au lieu de
return a+b / 2
Hors ligne
#2407 Le 02/02/2012, à 11:59
- Rolinh
Re : /* Topic des codeurs [6] */
Et voilà: paquet AUR pour mpdalarm.
Bon, reste à le tester maintenant.
Hors ligne
#2408 Le 02/02/2012, à 12:18
- The Uploader
Re : /* Topic des codeurs [6] */
@grim :
J'me doutais bien que c'était foireux même si ça semblait fonctionner, mais ça change rien pour 'normalize!' :
irb(main):002:0> $LOAD_PATH <<'./'
=> ["/usr/lib/ruby/site_ruby/1.9.1", "/usr/lib/ruby/site_ruby/1.9.1/x86_64-linux", "/usr/lib/ruby/site_ruby", "/usr/lib/ruby/vendor_ruby/1.9.1", "/usr/lib/ruby/vendor_ruby/1.9.1/x86_64-linux", "/usr/lib/ruby/vendor_ruby", "/usr/lib/ruby/1.9.1", "/usr/lib/ruby/1.9.1/x86_64-linux", "./"]
irb(main):003:0> require 'point'
=> true
irb(main):004:0> include SMA_FIGHT::Lib
=> Object
irb(main):005:0> a = Point.new(3,4)
=> #<SMA_FIGHT::Lib::Point:0x00000000f9f830 @x=3, @y=4>
irb(main):006:0> a.length
=> 5
irb(main):007:0> a.normalize!(10)
=> nil
irb(main):008:0> a
=> #<SMA_FIGHT::Lib::Point:0x00000000f9f830 @x=7, @y=8>
irb(main):009:0> a.length
=> 10
j'suis en train de voir ça..
Dernière modification par The Uploader (Le 02/02/2012, à 12:46)
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne
#2409 Le 02/02/2012, à 12:20
- Rolinh
Re : /* Topic des codeurs [6] */
Bon, je ne sais pas ce que c'est pour un truc pour générer les manpages mais ça foire carrément!
Hors ligne
#2410 Le 02/02/2012, à 12:29
- grim7reaper
Re : /* Topic des codeurs [6] */
ça change rien pour 'normalize!'
O_o.
T’es sûr ?
chezmoiçamarche :
irb(main):001:0> load 'point.rb'
=> true
irb(main):002:0> a = Point.new(3,4)
=> #<Point:0x00000001eed850 @x=3, @y=4>
irb(main):003:0> a.length
=> 5
irb(main):004:0> a.normalize!(10)
=> nil
irb(main):005:0> a
=> #<Point:0x00000001eed850 @x=7, @y=8>
irb(main):006:0> a.length
=> 10
Édit : Ha, j’ai rien dit ^^'
J’avais pas vu le 7 à la place du 6…
Dernière modification par grim7reaper (Le 02/02/2012, à 12:36)
Hors ligne
#2411 Le 02/02/2012, à 12:55
- The Uploader
Re : /* Topic des codeurs [6] */
Bon j'pense que si length reste tout de même à 10 c'est bon. J'ai essayé d'autres length_scale et ce dernier n'est plus dépassé.
module Lib
class Point
attr_reader :x
attr_reader :y
def initialize(x = 0, y = 0)
@x = x
@y = y
end
def Point.distance(point, other_point)
a = (point.x - other_point.x).abs
b = (point.y - other_point.y).abs
Math.sqrt(a * a + b * b).floor
end
def length
Point.distance(self, Point.new(0, 0))
end
def normalize!(length_scale = 1)
@x = length_scale if @x > length_scale
@y = length_scale if @y > length_scale
while length < length_scale
@x = @x + 1
@y = @y + 1
end
end
end
end
Il est temps de passer à MASWithTwoNests::Agent ! \o/
Dernière modification par The Uploader (Le 02/02/2012, à 13:09)
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne
#2412 Le 02/02/2012, à 18:08
- grim7reaper
Re : /* Topic des codeurs [6] */
Youhou, Archlinux vient de péter xelatex…
(bon en fait depuis hier soir, mais j’ai la mise à jour cet après-midi).
Dernière modification par grim7reaper (Le 02/02/2012, à 18:12)
Hors ligne
#2413 Le 02/02/2012, à 18:36
- Dr Le Rouge
Re : /* Topic des codeurs [6] */
@ grim : si t'utilisais une vraie distro, t'aurais pas ce genre de problème.
C'est deux suites de Cauchy qui veulent aller à la soirée 'no limit'. Hélas, à l'entrée le videur leur dit : "désolé, c'est complet !".
mon site perso (π²/6.fr) et mon blog
Hors ligne
#2414 Le 02/02/2012, à 19:10
- Rolinh
Re : /* Topic des codeurs [6] */
Trollololo...
Hors ligne
#2415 Le 02/02/2012, à 19:48
- tshirtman
Re : /* Topic des codeurs [6] */
c'est ça qu'est bien avec les rolling, des surprises tous les jours
Hors ligne
#2416 Le 02/02/2012, à 19:53
- grim7reaper
Re : /* Topic des codeurs [6] */
Tous les jours, non faut pas déconner.
Première fois en 2 ans que j’ai vraiment un truc qui pête (et puis c’est juste XeTeX qui merde (à cause de zlib), LaTeX, LuaTeX, … fonctionnent toujours parfaitement).
Dernière modification par grim7reaper (Le 02/02/2012, à 19:54)
Hors ligne
#2417 Le 02/02/2012, à 20:06
- HP
Re : /* Topic des codeurs [6] */
Oui oui, c'est ce qui m'a piégé, j'essaye de coder "à la ruby" […]
Ouais… te reste à lire la page 183 de « The Ruby Programming Language » par David Flanagan & Yukihiro Matsumoto aux éditions O'Reilly ; mais c'est pas obligé .
cat /dev/urandom >/dev/null 2>&1 #github
Hors ligne
#2418 Le 02/02/2012, à 20:11
- The Uploader
Re : /* Topic des codeurs [6] */
Tiens, faudrait que je regarde !
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne
#2419 Le 02/02/2012, à 20:14
- HP
Re : /* Topic des codeurs [6] */
Lire de bons bouquins avant de coder… ça peut aider…
cat /dev/urandom >/dev/null 2>&1 #github
Hors ligne
#2420 Le 02/02/2012, à 20:20
- Etoma
Re : /* Topic des codeurs [6] */
Bonjour à toutes et à tous.
J'aimerais faire un p'tit programme pour m'amuser.
Je vois à peu près ce que je veux faire (un truc qui me serait parfois utile --> un comparateur de résultats de loto/toto, genre je tape la liste de nombres que je joue et puis je compare avec la liste de résultats).
Je n'ai jamais programmé.
Comme je le dis ce serait plus pour m'amuser.
Pour ce "projet", j'aimerais l'écrire déjà sur papier, mais je n'y connais rien en algorithmique. Quelqu'un aurait une adresse/bouquin pour apprendre l'algorithmique. Je cherche par moi-même, mais si par hasard quelqu'un à une idée...
Et par contre, j'arrive plus à me concentrer sur un livre que lire sur l'écran.
Pour le langage, on verra..... bien plus tard.
Merci!
Edit : fautes
Dernière modification par Etoma (Le 02/02/2012, à 20:23)
"un gars qui agit pour le bien des gens sans leur demander leur avis"
PirateBox
Hors ligne
#2421 Le 02/02/2012, à 20:21
- The Uploader
Re : /* Topic des codeurs [6] */
Lire de bons bouquins avant de coder… ça peut aider…
Ben j'en ai lu pas mal sur Ruby, sauf celui là (ou en tout cas pas en entier)
@ Etoma : GUI ou CLI ?
Dernière modification par The Uploader (Le 02/02/2012, à 20:25)
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne
#2422 Le 02/02/2012, à 20:27
- Etoma
Re : /* Topic des codeurs [6] */
Ça change quelque chose pour l'algorithmique? Sinon GUI .
"un gars qui agit pour le bien des gens sans leur demander leur avis"
PirateBox
Hors ligne
#2423 Le 02/02/2012, à 20:29
- The Uploader
Re : /* Topic des codeurs [6] */
Bah ça change une partie important du programme, et ce n'est pas la même logique pour faire l'interface.
Dernière modification par The Uploader (Le 02/02/2012, à 20:29)
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne
#2424 Le 02/02/2012, à 20:32
- Etoma
Re : /* Topic des codeurs [6] */
Ok. Mais à la base, l'apprentissage de l'algorithmique sert pour les deux?
Apprendre à trouver une solution logique à un problème, où il peut y avoir plusieurs "chemins"?
"un gars qui agit pour le bien des gens sans leur demander leur avis"
PirateBox
Hors ligne
#2425 Le 02/02/2012, à 20:37
- Pylades
Re : /* Topic des codeurs [6] */
Hey, tshirtman, t’as fait comment pour dire à ton Vim d’aller chercher le vimrc sur ~/.vim/vimrc ?
oui, oui, j'avais installé les langues pour voir en même temps, ça n'a pas vraiment de rapport, tu as raison. Et oui, j'avais testé avec ibus, mais ça marchait pas vraiment bien, je ne sais plus trop pourquoi, donc mon frère avait conclus que ça n'avait pas franchement progressé depuis la dernière fois qu'il avait eu un portable ubuntu, y'a genre 5ans, et il est retourné à son mac…
donc bon, là j'ai pas vraiment trouvé comment désinstaller cette langue, mais je l'ai relégué bien en dessous de l'anglais, donc je ne devrais plus la voir…
Troll à l’attention du Rouge : bah c’est ça de ne pas utiliser une vraie distro… :]
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne