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

IA a la starcraft...

Le_Nain_Posteur
Le_Nain_Posteur
Niveau 10
11 juin 2002 à 00:24:20

Lightness> le raycasting et le A* sont deux algos de pathfinding.

le terme pathfinding est compose de deux mots anglais:
path-> chemin
finding-> decouverte

le pathfinding est en quelque sorte le domaine, ou le but est de trouver le chemin(le plus rapide, le plus court...) menant d´un point A vers un point B

et a partir de la, il existe plusieurs techniques pour arriver a ses fins telles que le raycasting.

raycasting:
ray: rayon
casting: jet

je ne vais pas te faire le cour, vus qu´il en existe deja un a l´adresse cite precedement(et si tu y avais regarde un peu(ne serait-ce que le paragraphe de nain troduction), j´aurais pas eu besoin de te preciser tout cela ;).

mais comme son nom le nain dique, le principe est de lancer un rayon et de voir si il se cogne quelque part(et si oui, d´agir de facon appropriee).
son nom est donc completement justifie.

apres evidement, un mot peut etre utilise dans plusieurs domaines, mais la, etant donne que l´on parlait d´IA et non de 3D, je ne pensais pas que sa definition aurait eu besoin d´etre enoncee.

Ninja-Trouille> si c´est a moi que tu parles, je gueulais pas! au contraire je me marrais! trop fort ce coup la! et puis tu te debrouilles bien comme modero, continues comme ca!

Lightness1024
Lightness1024
Niveau 10
11 juin 2002 à 14:16:36

merci je suis suffisament culturé en anglais pour savoir ca. seulement je n´avais jamais entendu parler de raycast pour l´IA mais plutot dans les algorithme d´eclairage par la methode des raytrace/raycast.
et le pathfinding je n´avais pas besoin de définition vu ke c moi ki l´ai posté.

bon ben sinon pour le gars ki a posé la question je vais faire un exemple simple d´IA en langage basic:
(attention je ne le test pas donc ca peu ne pas marcher mais c pour ton donner une idee)

dans la boucle principale tu pourrai faire un appel a une fonction (ou une methode) qui contiendrait qq chose comme ca:

(joueur1 serait l´ordi et joueur2 l´humain)

If Joueur(1).Unites.nombre < Joueur(2).Unites.nombre then
for i = 0 to Joueur(2).Unites.nombre - Joueur(1).Unites.nombre + 1
if Joueur(1).ressources.nourriture < 50 then
call TrouveNouriture (Joueur(1).Unites.villageois(VillageoisLibre\%(JOUEUR1))
end if
forum.creeunite
next
end if

public sub TrouveNourriture (integer Villageois)
... un algo ki prend le villageois et ki lui fait prendre de la nourriture
end sub

public function VillageoisLibre (integer player) as integer
for i = 0 to joueur(player).Unites.nombre
if joueur.Unites.data(i).libre = true then
VillageoisLibre = i
exit function
end if
end function

voila un pti bout de l´IA peut ressembler a ca ici les joueurs sont un tableau de classe contenant toutes les infos sur eux ce qui peut etre pratique.
bon si ta rien compris mieu vo ne pas t´attaquer dans une IA parce ke ca c la base de la base.

Ninja-TrouiLLe
Ninja-TrouiLLe
Niveau 10
11 juin 2002 à 16:38:30

ah ben si t´es culturé alors... ^_^

Lightness1024
Lightness1024
Niveau 10
12 juin 2002 à 13:45:25

pfouahahaha en effet il faudrait ke je me culture en francais avant de parler lol.
bon en tout cas au niveau de l´anglais ce n´est pas un probleme pour moi c´est ce ke je voulait dire bien sur :))))).

hem c rhare kan je fès des photes deux se nivo mais la jheu devè aitre phatiger :)))

Uncursed
Uncursed
Niveau 4
13 juin 2002 à 17:47:22

Lightness1024, c´est pas de l´ia ce que tu nous a fait là, c´est juste de la prog toute bête ;p

Si vous voulez apprendre à programmer, http://rndghost.com/forum/

Sinon concernant l´ia : réseaux de neurones, algorithme génétiques, etc. Ca c´est de l´ia ;p

Lightness1024
Lightness1024
Niveau 10
13 juin 2002 à 21:51:15

de la prog toute bete ?
ca existe pas la prog ki sert a rien.
evidemment ke c de la prog mais c de la prog dans le but de faire une IA !
toi tu ne donnes rien de concret avec tes histoires de neurones moi au moins je sert a qqch !

en plus c ridicule on parle d´IA de jeu pas de recherches scientifiques.

Lightness1024
Lightness1024
Niveau 10
13 juin 2002 à 21:52:26

tu crois ke c koi l´IA un cerveau branché a un PC sur port fire wire ?
et ben non c´est de la prog eh oui..

Trapamoosch
Trapamoosch
Niveau 5
13 juin 2002 à 22:16:30

Bah les réseaux neuroniques, les algo génétiques tout ça, c´est très concret hein. C´est juste à un (gros gros) niveau au dessus que ce que l´on est capable de faire nous, c´est tout :)

Uncursed
Uncursed
Niveau 4
14 juin 2002 à 17:35:49

Vous voulez du concret ? lol
Alors voici le code de ma dll de réseau de neurones (en vb, pour que ça soit + facile ;p)

clsRN.cls:
Private Couches() As clsCouche

Public Property Get nCouches() As Variant
nCouches = UBound(Couches) + 1
End Property
Public Property Let nCouches(ByVal vNewValue As Variant)
ReDim Couches(vNewValue - 1)
Dim i As Integer
For i = 0 To UBound(Couches)
Set Couches(i) = New clsCouche
Next i
End Property
Public Property Get Couche(i As Integer) As clsCouche
Set Couche = Couches(i)
End Property

Public Sub Init()
Dim i As Integer, j As Integer
Couches(0).Init
For i = 1 To UBound(Couches)
For j = 0 To Couches(i).nNeurons - 1
Couche(i).Perceptron(j).nW = Couche(i - 1).nNeurons
Next j
Couches(i).Init
Next i
End Sub

Public Function Out(x() As Double) As Double()
Dim i As Integer, tX() As Double
tX = x
For i = 0 To UBound(Couches)
tX = Couches(i).Out(tX)
Next i
Out = tX
End Function
Public Sub Learn(x() As Double, c() As Double)
Dim o() As Double, tX() As Double
Dim i As Integer, j As Integer, k As Integer
´=== calcul des di pour la couche de sortie
o = Out(x)
For i = 0 To Couches(UBound(Couches)).nNeurons - 1
Couches(UBound(Couches)).Perceptron(i).d = (c(i) - o(i)) * o(i) * (1 - o(i))
Next i
tX = x
´=== calcul des di des couches q-1 à 0
On Error Resume Next
For i = UBound(Couches) - 1 To 0 Step -1
For j = 0 To Couches(i).nNeurons - 1
Couches(i).Perceptron(j).d = 0
For k = 0 To Couches(i + 1).nNeurons - 1
Couches(i).Perceptron(j).d = Couches(i).Perceptron(j).d + Couche(i + 1).Perceptron(k).d * Couche(i + 1).Perceptron(k).W(j)
Next k
Couches(i).Perceptron(j).d = Couche(i).Perceptron(j).d * Couche(i).CurrentOut(j) * (1 - Couche(i).CurrentOut(j))
Next j
Next i
´=== mise à jour des poids
For j = 0 To Couches(0).nNeurons - 1
For k = 0 To Couches(0).Perceptron(j).nW - 1
Couches(0).Perceptron(j).W(k) = Couches(0).Perceptron(j).W(k) + Couches(0).Perceptron(j).d * x(k)
Next k
Next j
For i = 1 To UBound(Couches)
For j = 0 To Couches(i).nNeurons - 1
For k = 0 To Couches(i).Perceptron(j).nW - 1
Couches(i).Perceptron(j).W(k) = Couches(i).Perceptron(j).W(k) + Couche(i).Perceptron(j).d * Couches(i - 1).CurrentOut(k)
Next k
Next j
Next i
End Sub
===============================================
cl
sPerceptron.cls:
Private Weight() As Double
Public d As Double
Public Sigmoid As Boolean

Public Property Get nW() As Variant
nW = UBound(Weight) + 1
End Property
Public Property Let nW(ByVal vNewValue As Variant)
ReDim Weight(vNewValue - 1)
End Property
Public Property Get W(i As Integer) As Variant
W = Weight(i)
End Property
Public Property Let W(i As Integer, ByVal vNewValue As Variant)
Weight(i) = vNewValue
End Property

Public Function o(x() As Double) As Double
Dim i As Integer
Dim Out As Double
Out = 0
For i = 0 To UBound(Weight)
Out = Out + x(i) * W(i)
Next i
o = 1 / (1 + Exp(-Out))
End Function
=============================================
clsCouche:

Private Neurons() As clsPerceptron
Private COut() As Double

Public Property Get CurrentOut(i As Integer) As Double
CurrentOut = COut(i)
End Property
Public Property Get nNeurons() As Integer
nNeurons = UBound(Neurons) + 1
End Property
Public Property Let nNeurons(ByVal vNewValue As Integer)
ReDim Neurons(vNewValue - 1)
Dim i As Integer
For i = 0 To UBound(Neurons)
Set Neurons(i) = New clsPerceptron
Next i
End Property
Public Property Get Perceptron(i As Integer) As clsPerceptron
Set Perceptron = Neurons(i)
End Property

Public Sub Init()
Randomize
Dim i As Integer, j As Integer
For i = 0 To UBound(Neurons)
For j = 0 To Neurons(i).nW - 1
Neurons(i).W(j) = Rnd - 0.5
Next j
Next i
End Sub

Public Function Out(x() As Double) As Double()
Dim i As Integer
Dim o() As Double
ReDim o(UBound(Neurons))
For i = 0 To UBound(Neurons)
o(i) = Neurons(i).o(x)
Next i
COut = o
Out = o
End Function
==============================================

Pour info, on trouve ce code sur rndghost.com

Quant à ce que je voulais dire par prog toute bête, une instruction if...then...else, c´est vraiment le b.a.ba de la programmation. Rien à voir avec l´ia.

On dit d´un algo que c´est une intelligence artificielle s´il est entre autres capable de s´adapter aux situations totalement différentes. Un simple if n´a jamais eu cette propriété.

Lightness1024
Lightness1024
Niveau 10
15 juin 2002 à 12:31:29

hmmm je commence a voir ce que tu voulais dire..

cederavic
cederavic
Niveau 7
15 juin 2002 à 13:24:46

desoler de vous interompre mais... relisez le titre et le premier message du sujet! =)
je croit qu´on s´éloigne un peu du sujet la! lol

Lightness1024
Lightness1024
Niveau 10
15 juin 2002 à 19:37:07

pas tant que ca.
il a parlé d´IA tout court mais d´IA evolutive moi g parlé d´IA specifique a un age of empires like c bien le sujet du post non ?

cederavic
cederavic
Niveau 7
15 juin 2002 à 21:58:50

ué mé en DARK BASIC! =)

Lightness1024
Lightness1024
Niveau 10
16 juin 2002 à 18:13:31

c pas du DARK c du VB.

Uncursed
Uncursed
Niveau 4
16 juin 2002 à 19:54:26

Oui, je parlais d´ia évolutive, et tu parlais des scripts de jeu qu´on appelle aussi ia. :p
oki lol, méga quiproquo :ppp

Par contre, rien n´empêche de faire un mix des deux : une ia évolutive scriptée spécialement pour les jeux.

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