Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1801 Le 17/08/2012, à 16:50

tshirtman

Re : /* Topic des codeurs [7] */

Oui, j'ai entendu beaucoup de bien sur la profondeur de jeu de DF, c'est vraiment du jamais vu… j'y ai pas joué, et je veux pas, j'ai déjà pas du tout assez de temps (et j'ai eu le malheur de tester lugaru qui est pas mal dans son genre, et quand je commence un truc, j'aime bien le finir, donc j'ai déjà un jeu de trop). Donc non, enfin, sans doute pas dans cette décennie.

Hors ligne

#1802 Le 17/08/2012, à 17:07

grim7reaper

Re : /* Topic des codeurs [7] */

tshirtman a écrit :

et quand je commence un truc, j'aime bien le finir

Bah celui-là tu risques pas, il n’y a pas de fin autre que ta defaite ^^. D’où la devise du jeu : « Losing is fun! »
Autre exemple sur la profondeur.

Dernière modification par grim7reaper (Le 17/08/2012, à 17:07)

Hors ligne

#1803 Le 17/08/2012, à 17:16

Elzen

Re : /* Topic des codeurs [7] */

Ça m'avait l'air super intéressant les premières fois que j'en ai entendu parler ; plus j'en lis sur le niveau de détails atteint, moins ça me fait envie.


Sinon, juste comme ça :

Le code :

\clearpage
\subsection{TITRE}
		
	CONTENU
	
	\begin{figure}
		\centering
		\includegraphics{IMAGE}
		\caption{DESCRIPTION}
	\end{figure}

\clearpage

Le résultat :

[Début page]
IMAGE
DESCRIPTION

TITRE
CONTENU
[Fin page]

Quelqu'un aurait l'adresse des devs de LaTeX et le numéro d'un tueur à gages ? neutral

Hors ligne

#1804 Le 17/08/2012, à 17:29

grim7reaper

Re : /* Topic des codeurs [7] */

ArkSeth a écrit :

Ça m'avait l'air super intéressant les premières fois que j'en ai entendu parler ; plus j'en lis sur le niveau de détails atteint, moins ça me fait envie.

Moi c’est justement ça que je trouve intéressant.


Sinon, pour ton LaTeX il y a des options pour forcer (dans une certaine mesure je crois) le placement d’une image.
Genre

\begin{figure}[!h]

Hors ligne

#1805 Le 17/08/2012, à 17:32

Mindiell

Re : /* Topic des codeurs [7] */

Je ne connais pas, je joue à Dungeon Crawl moi, plutôt donc du jeu, et pas une sorte de minecraft.
Je suis même en train de réaliser un bot qui gagnerait pour voir wink

Je verrai si j'ai le temps d'essayer DF.

Hors ligne

#1806 Le 17/08/2012, à 17:40

Elzen

Re : /* Topic des codeurs [7] */

grim7reaper a écrit :

Moi c’est justement ça que je trouve intéressant.

Bah je trouve qu'au delà d'un certain niveau de détail, ça devient rébarbatif. Il ne faut bien sûr pas tomber dans l'excès inverse non plus, mais quand même. Surtout le fait que chaque personnage ait des caractéristiques personnelles propres super détaillées, donc d'autant plus de raisons de s'attacher à lui, quand tu es certain de le paumer à plus ou moins long terme, ç'n'est pas exactement le genre de trucs que je trouve fun.

grim7reaper a écrit :

Sinon, pour ton LaTeX il y a des options pour forcer (dans une certaine mesure je crois) le placement d’une image.
Genre

\begin{figure}[!h]

Je regarde ça, merci wink

Mais tout de même, que le truc prenne des initiatives du genre décaler l'image vers le bas quand il s'agit de gérer un manque de place, j'peux comprendre, à la limite ; mais quand les deux éléments tiennent largement sur la même page, et qu'il en inverse l'ordre sans raison apparente, c'est juste super mal conçu, quoi ><

Hors ligne

#1807 Le 17/08/2012, à 17:44

grim7reaper

Re : /* Topic des codeurs [7] */

Ha mais DF c’est un jeu, rien à voir avec Minecraft pour le gameplay. Ce post résume bien la différence.

Sinon on est pas le 1er avril donc ceci n’est pas une blague, on dirait qu’il suivent la voie de clang (GCC avait déjà commencé à rendre son architecture plus plug-in friendly depuis la version 4.je-sais-plus il me semble).

Hors ligne

#1808 Le 17/08/2012, à 17:53

Dr Le Rouge

Re : /* Topic des codeurs [7] */

tshirtman a écrit :

Pour les mathématiciens qui passent dans le coins (oui le rouge on parle de toi smile), vu qui md5 est un hash, on a des collisions à chaque passage non ? donc si on fait md5 récursivement 10 000 fois, un diminue sensiblement d'espace de résultat non ? enfin, c'est peut être pas du tout assez pour rendre une approche de bruteforce réaliste… sinon je pense que kaspersky aurait trouvé… et déterminer l'espace final de md5 possibles n'est peut être pas possible sans se taper les 9999 itérations sur tous les md5 possibles de base… hmm

Je connais pas bien md5 mais c'est pas aussi simple que ça. Certes ce n'est très probablement pas une bijection de l'espace des message de 128 bits dans lui même mais je ne pense pas que la réduction de l'espace d'arrivée soit si grande. Surtout, je ne pense pas que cette réduction soit facile à estimer donc oui, je pense qu'il faut se taper les 9999 itérations (mais bon, ça c'est vraiment pas la mer à boire).

Il me semble que le bouzin est apparentée à Flame, non ? Auquel cas il serait beaucoup plus simple de trouver les cryptographes (sans doute connus) qui ont inventé le truc et de leur demander ^^


D'ailleurs, un frère de grim est spécialisé dans le cassage de hash divers tongue


@ ArkSeth : mais on s'en fout d'où sont les images, tu dois juste faire les renvois qui vont bien dans le corps de texte yikes

Dernière modification par Dr Le Rouge (Le 17/08/2012, à 17:54)


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

#1809 Le 17/08/2012, à 18:02

Elzen

Re : /* Topic des codeurs [7] */

Le Rouge a écrit :

@ ArkSeth : mais on s'en fout d'où sont les images, tu dois juste faire les renvois qui vont bien dans le corps de texte yikes

J'aime bien jouer aux « livres dont vous êtes le héros », mais dans la biblio d'un rapport de stage, je trouve que ça le fait moyen…

Hors ligne

#1810 Le 17/08/2012, à 19:33

grim7reaper

Re : /* Topic des codeurs [7] */

Tu as des images dans ta biblio ?

Hors ligne

#1811 Le 17/08/2012, à 19:38

Elzen

Re : /* Topic des codeurs [7] */

Ç'vrai que le terme désigne les deux : j'parle de la section « État de l'Art », pas juste de la liste des références bibliographiques utilisées. Donc ouais, j'ai des images dedans, pour illustrer le fonctionnement des différentes propositions par rapport auxquelles on se compare.

Hors ligne

#1812 Le 17/08/2012, à 19:47

tshirtman

Re : /* Topic des codeurs [7] */

grim7reaper a écrit :
tshirtman a écrit :

et quand je commence un truc, j'aime bien le finir

Bah celui-là tu risques pas, il n’y a pas de fin autre que ta defaite ^^. D’où la devise du jeu : « Losing is fun! »
Autre exemple sur la profondeur.

Yep, une bonne raison pour moi de ne pas jouer ^^

Hors ligne

#1813 Le 17/08/2012, à 19:49

grim7reaper

Re : /* Topic des codeurs [7] */

@ArkSeth : Ha oui, je vois ce que tu veux dire. C’est vrai que là c’était ambigu.

Dernière modification par grim7reaper (Le 17/08/2012, à 19:51)

Hors ligne

#1814 Le 17/08/2012, à 22:47

tshirtman

Re : /* Topic des codeurs [7] */

Le Rouge a écrit :

Je connais pas bien md5 mais c'est pas aussi simple que ça. Certes ce n'est très probablement pas une bijection de l'espace des message de 128 bits dans lui même mais je ne pense pas que la réduction de l'espace d'arrivée soit si grande. Surtout, je ne pense pas que cette réduction soit facile à estimer donc oui, je pense qu'il faut se taper les 9999 itérations (mais bon, ça c'est vraiment pas la mer à boire).

Ok, donc si on sort tous les nombres de 0 à 2^128-1 et qu'on applique 999 fois en md5 en récursif, à chacun, c'est pas la mer à boire? après faut trouver le n-1 sur les positifs, mais j'ai l'impression qu'on coup le problème en deux parties plus gérables non?

Il me semble que le bouzin est apparentée à Flame, non ? Auquel cas il serait beaucoup plus simple de trouver les cryptographes (sans doute connus) qui ont inventé le truc et de leur demander ^^

Oui, c'est sur, si on triche tongue

Hors ligne

#1815 Le 17/08/2012, à 22:54

The Uploader

Re : /* Topic des codeurs [7] */

Pour ma part en jeux j'attends le remake ultra-fidèle de UFO : Enemy Unknown nommé XCOM : Enemy Unknown.

M'enfin il y a plein de clones (UFO : Extraterrestrials, la série des UFO : After <quelque chose>, Xeonauts...), dont pas mal de libres (Xenowar, OpenXCom, ...). Le plus avancé étant UFO : Alien Invasion.

UFO2000 est sympa aussi pour jouer en multi (et tourne sous GNU/Linux, et est libre même s'il a besoin des assets du jeu de 1994 pour fonctionner. Heureusement ce dernier est sur Abandonware France).

A part ça :

commit fc12c9e8f0b8b490b71d4f021fa5816423105b81 (HEAD, refs/remotes/origin/master, refs/heads/master)
Author: Maximilien Noal <mnoal@epsi.fr>
Date:   Fri Aug 17 20:01:06 2012 +0200

    Faster Bot#draw_sprite, called on each update
    
    Because a change of color happens when the Bot has a Resource
    
    Signed-off-by: Maximilien Noal <mnoal@epsi.fr>
---
 MASWithTwoNests/bot.rb | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/MASWithTwoNests/bot.rb b/MASWithTwoNests/bot.rb
index 40cc022..ea8770f 100644
--- a/MASWithTwoNests/bot.rb
+++ b/MASWithTwoNests/bot.rb
@@ -45,6 +45,7 @@ module MASWithTwoNests
 				resource_color_ary[i] += 0x55 #0X228822
 			end
 			@resource_color = Rubygame::Color::ColorRGB.new([resource_color_ary[0], resource_color_ary[1], resource_color_ary[2]])
+			@current_color = nil
 
       init_expert_system
 			init_sprite
@@ -53,16 +54,22 @@ module MASWithTwoNests
 		end
 
 		def init_sprite
-			@image = Rubygame::Surface.new([ @radius, @radius ])
+			@image = Rubygame::Surface.new([@radius, @radius])
       @image.set_colorkey([0, 0, 0])
 			@rect = @image.make_rect
 		end
 
 		def draw_sprite
-			if (@has_resource)
-			  @image.draw_circle_s(@rect.center, @radius, @resource_color)
+			if @has_resource
+				if @current_color != @resource_color
+			    @image.draw_circle_s(@rect.center, @radius, @resource_color)
+					@current_color = @resource_color
+				end
 			else
-			  @image.draw_circle_s(@rect.center, @radius, @color)
+				if @current_color != @color
+			    @image.draw_circle_s(@rect.center, @radius, @color)
+					@curent_color = @color
+				end
 			end
 		end
 
@@ -70,6 +77,7 @@ module MASWithTwoNests
 			update_facts(tick)
 			infer
 			act
+			draw_sprite
 			move
 
 			@reached_resource = nil
@@ -77,7 +85,7 @@ module MASWithTwoNests
 		end
 
 		def init_expert_system
-			@expert_system = ExpertSystem::ExpertSystem.new()
+			@expert_system = ExpertSystem::ExpertSystem.new
 
       @expert_system.add_rule(Rule.new(AgentFacts::GO_TO_RESOURCE,[ AgentFacts::NO_RESOURCE,
 			                                                             	AgentFacts::SEE_RESOURCE,

commit 7551928db8e82b3af00a2b369fbef632eee9d4e1
Author: Maximilien Noal <mnoal@epsi.fr>
Date:   Fri Aug 17 19:59:19 2012 +0200

    Facts can have an action (symbol for a Bot method, called by Bot#act)
    
    Signed-off-by: Maximilien Noal <mnoal@epsi.fr>
---
 ExpertSystem/fact.rb           |  4 +++-
 MASWithTwoNests/agent_facts.rb |  9 +++++----
 MASWithTwoNests/bot.rb         | 10 ++++++----
 3 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/ExpertSystem/fact.rb b/ExpertSystem/fact.rb
index 510a933..3a30abc 100644
--- a/ExpertSystem/fact.rb
+++ b/ExpertSystem/fact.rb
@@ -1,8 +1,10 @@
 module ExpertSystem
   class Fact
     attr_reader :label
-    def initialize(label)
+		attr_reader :action
+    def initialize(label, action = nil)
       @label = label
+			@action = action
     end
 
     def ==(fact)
diff --git a/MASWithTwoNests/agent_facts.rb b/MASWithTwoNests/agent_facts.rb
index 84f53b0..8ed26fd 100644
--- a/MASWithTwoNests/agent_facts.rb
+++ b/MASWithTwoNests/agent_facts.rb
@@ -16,9 +16,10 @@ module MASWithTwoNests
     NOT_SEEING_HOME       = Fact.new("Not seeing home")
     GO_HOME               = Fact.new("Go home")
     AT_HOME               = Fact.new("At home")
-    CHANGE_DIRECTION      = Fact.new("Changing direction")
-    GO_TO_RESOURCE        = Fact.new("Going to resource")
-    TAKE_RESOURCE         = Fact.new("Taking Resource.")
-    PUT_DOWN_RESOURCE     = Fact.new("Putting down Resource.")
+
+    CHANGE_DIRECTION      = Fact.new("Changing direction", :change_direction)
+    GO_TO_RESOURCE        = Fact.new("Going to resource", :go_to_resource)
+    TAKE_RESOURCE         = Fact.new("Taking Resource.", :take_resource)
+    PUT_DOWN_RESOURCE     = Fact.new("Putting down Resource.", :put_down_resource)
   end
 end
diff --git a/MASWithTwoNests/bot.rb b/MASWithTwoNests/bot.rb
index 8bd926d..40cc022 100644
--- a/MASWithTwoNests/bot.rb
+++ b/MASWithTwoNests/bot.rb
@@ -106,14 +106,16 @@ module MASWithTwoNests
 		end
 
 		def go_to_resource
-			@direction = @seen_resource.current_point - @target_point
-			@direction.normalize!
-			@seen_resource = nil
+			if @seen_resource
+				@direction = @seen_resource.current_point - @target_point
+				@direction.normalize!
+				@seen_resource = nil
+			end
 		end
 
 		def act
 			@expert_system.inferred_facts.each do |fact|
-				puts fact.to_sym.to_s
+				self.send(fact.action) if fact.action
 			end
 		end
 

commit 7d6c712be745e2920276d1fd59045e384dd0d689
Author: Maximilien Noal <mnoal@epsi.fr>
Date:   Fri Aug 17 19:58:27 2012 +0200

    More SOLID ExpertSystem and FactBase, fixed is_rule_valid in the process
    
    Signed-off-by: Maximilien Noal <mnoal@epsi.fr>
---
 ExpertSystem/expert_system.rb | 55 +++++++++++++++++--------------------------
 ExpertSystem/fact_base.rb     | 17 ++++++++++++-
 2 files changed, 38 insertions(+), 34 deletions(-)

diff --git a/ExpertSystem/expert_system.rb b/ExpertSystem/expert_system.rb
index 62129fb..e0fbb77 100644
--- a/ExpertSystem/expert_system.rb
+++ b/ExpertSystem/expert_system.rb
@@ -7,7 +7,6 @@ require 'fact'
 module ExpertSystem
   class ExpertSystem
     attr_reader :fact_base
-    attr_reader :rule_base
     attr_reader :inferred_facts
     def initialize
       @fact_base = FactBase.new
@@ -15,38 +14,40 @@ module ExpertSystem
       @inferred_facts = []
     end
 
-    def add_fact(fact)
-      @fact_base.facts_values.store(fact.to_sym, false)
-    end
+    def add_rule(rule)
+      @fact_base.add_fact(rule) if not @fact_base.has_fact(rule)
 
-    def set_fact_value(fact, value)
-      @fact_base.facts_values[fact.to_sym] = value if @fact_base.has_fact(fact)
-    end
+      rule.premises.each do |p|
+        @fact_base.add_fact(p) if not @fact_base.has_fact(p)
+      end
 
-    def get_fact_value(fact)
-      return @fact_base.facts_values[fact.to_sym] if @fact_base.has_fact(fact)
+      @rule_base.add_rule(rule)
     end
 
-    def reset_facts
-      @fact_base.facts_values.clear
+    def infer
+      clear_inferred_facts
+
+      begin
+        valid_rule = get_valid_rule
+				if valid_rule
+					@fact_base.set_fact_value(valid_rule.goal, true)
+					@inferred_facts << valid_rule.goal
+				end
+      end while valid_rule != nil
     end
 
-    def add_rule(rule)
-      add_fact(rule) if not @fact_base.has_fact(rule)
+		def set_fact_value(fact, value)
+			@fact_base.set_fact_value(fact, value)
+		end
 
-      rule.premises.each do |p|
-        add_fact(p) if not @fact_base.has_fact(p)
-      end
-      @rule_base.add_rule(rule)
-    end
+		private
 
     def is_rule_valid(rule)
-      return false if get_fact_value(rule.goal)
+      return false if @fact_base.get_fact_value(rule.goal)
 
       rule.premises.each do |p|
-        return false if not get_fact_value(p)
+        return @fact_base.get_fact_value(p)
       end
-      return true
     end
 
     def get_valid_rule
@@ -59,17 +60,5 @@ module ExpertSystem
     def clear_inferred_facts
       @inferred_facts = []
     end
-
-    def infer
-      clear_inferred_facts
-
-      begin
-        valid_rule = get_valid_rule
-				if valid_rule
-					set_fact_value(valid_rule.goal, true)
-					@inferred_facts << valid_rule.goal
-				end
-      end while valid_rule != nil
-    end
   end
 end
diff --git a/ExpertSystem/fact_base.rb b/ExpertSystem/fact_base.rb
index b2b1794..7e25e33 100644
--- a/ExpertSystem/fact_base.rb
+++ b/ExpertSystem/fact_base.rb
@@ -1,12 +1,27 @@
 module ExpertSystem
   class FactBase
-    attr_accessor :facts_values
     def initialize
       @facts_values = {}
     end
 
     def has_fact(fact)
+      @facts_values.keys.include?(fact.to_sym)
+    end
+
+    def add_fact(fact)
+      @facts_values.store(fact.to_sym, false)
+    end
+
+    def set_fact_value(fact, value)
+      @facts_values[fact.to_sym] = value
+    end
+
+    def get_fact_value(fact)
       @facts_values[fact.to_sym]
     end
+
+    def reset_facts
+      @facts_values.clear
+    end
   end
 end

commit 449477ca3a5b2a0ee7080c368efa33cdac57366e
Author: Maximilien Noal <mnoal@epsi.fr>
Date:   Fri Aug 17 19:55:45 2012 +0200

    Faster cleaning of dead agents
    
    Only resources can die.
    
    Signed-off-by: Maximilien Noal <mnoal@epsi.fr>
---
 MASWithTwoNests/world.rb | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/MASWithTwoNests/world.rb b/MASWithTwoNests/world.rb
index bb05337..4f6c9c1 100644
--- a/MASWithTwoNests/world.rb
+++ b/MASWithTwoNests/world.rb
@@ -48,10 +48,12 @@ module MASWithTwoNests
       @background = Rubygame::Surface.new([WIDTH, HEIGHT])
       @agents = Rubygame::Sprites::Group.new
 			@bot_teams = []
+			@resources = []
 			Rubygame::Sprites::UpdateGroup.extend_object @agents
 			RESOURCE_COUNT.times do
 				resource = Resource.new(self, RESOURCE_START_LIFE, RESOURCE_MOVE_DELAY * rand, RESOURCE_MOVE_SPEED * rand)
 				resource.target_point = Point.new(rand * WIDTH, rand * HEIGHT)
+				@resources << resource
 				@agents << resource
 			end
 			bot_team = BotTeam.new(self, "DefaultTeam", Rubygame::Color::ColorRGB.new([0.4, 0.4, 0.4]), [AgentType::AGENT_BOT], BOT_COUNT/2)
@@ -63,13 +65,22 @@ module MASWithTwoNests
 			@agents.undraw @screen, @background
       @agents.update(tick, self)
 			@agents.draw @screen
-			clean_dead_agents
+			clean_dead_resources
 			check_collisions
     end
 
-		def clean_dead_agents
-			@agents.each do |a|
-				@agents.delete(a) if a.dead
+    def is_out?(target_point)
+			return true if (( target_point.x <= 0 || target_point.x >= WIDTH) || target_point.y <= 0 || target_point.y >= HEIGHT)
+    end
+
+		private
+
+		def clean_dead_resources
+			@resources.each do |r|
+				if r.dead
+					@agents.delete(r)
+					@resources.delete(r)
+				end
 			end
 		end
 
@@ -89,12 +100,6 @@ module MASWithTwoNests
 			end	
 		end
 
-    def is_out?(target_point)
-			return true if (( target_point.x <= 0 || target_point.x >= WIDTH) || target_point.y <= 0 || target_point.y >= HEIGHT)
-    end
-
-		private
-
 		def notify_bot(bot, agent, notified_bots, bot_check = true)
 			notified = nil
 			if bot.is_collided?(agent)

Une méthode Bot#act qui utilise la réflection, c'est quand même mieux qu'une longue suite de switch/case/break. tongue

Bon bah maintenant j'ai une variable qui devient nil je sais pas quand et ça fout go_to_resource en l'air... hmm

Dernière modification par The Uploader (Le 17/08/2012, à 23:01)


- 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

#1816 Le 17/08/2012, à 22:59

Dr Le Rouge

Re : /* Topic des codeurs [7] */

tshirtman a écrit :

Ok, donc si on sort tous les nombres de 0 à 2^128-1 et qu'on applique 999 fois en md5 en récursif, à chacun, c'est pas la mer à boire?

1 fois ou 10 000 fois, ça ne change pas grand chose (c'est ce que j'entendais par « pas la mer à boire »). C'est sûr que la brute force par contre… ^^

après faut trouver le n-1 sur les positifs, mais j'ai l'impression qu'on coup le problème en deux parties plus gérables non?

Je suis pas sûr de comprendre ce que tu proposes mais ça a l'air de ressembler aux tables en arc-en-ciel.

Oui, c'est sur, si on triche tongue

Quand il n'y a pas de règles, il n'y a pas de triche tongue

Dernière modification par Dr Le Rouge (Le 17/08/2012, à 23:00)


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

#1817 Le 17/08/2012, à 23:11

tshirtman

Re : /* Topic des codeurs [7] */

Oui, c'est un peu l'idée des rainbow tables, t'as raison smile

mais oui 2^128 c'est vrai que ça va être beaucoup, rien qu'a stoquer…

Hors ligne

#1818 Le 18/08/2012, à 09:10

Mindiell

Re : /* Topic des codeurs [7] */

The Uploader a écrit :

Pour ma part en jeux j'attends le remake ultra-fidèle de UFO : Enemy Unknown nommé XCOM : Enemy Unknown.

AfterMath, la série est absolument géniale. J'ai même récupérer un jeu de plateau si ça t'intéresse (XCOM Tactical, ça doit se trouver encore sur le net).

Ton bot sert à quoi d'ailleurs ? Il joue à un jeu spécifique ou tu as un jeu avec un bot inclus ?

Hors ligne

#1819 Le 18/08/2012, à 10:09

Rolinh

Re : /* Topic des codeurs [7] */

Question sûrement assez bête à propos de git/github:
je pensais créer un miroir de certains dépôts git sur github (je pense à celui de dfc surtout) afin de donner un peu plus de visibilité aux projets. Apparemment, cela se met très facilement en place mais, sachant que sur github il ne s'agirait que d'une copie, comment faudrait faire pour les pull-request ou autre? Si j'ai bien compris, en faisant un miroir, cela fait un peu comme un --force. S'il y a eu des changements sur le dépôt github et que je push quelque chose depuis mon dépôt, ils seront écrasés, juste?

Hors ligne

#1820 Le 18/08/2012, à 11:07

tshirtman

Re : /* Topic des codeurs [7] */

Quand tu merge une pull request, tu merge des commits, c'est toujours un pull (d'ou le nom), si tu accept une pull request sur github, tu fais ensuite un pull du dépot github sur ton dépot principal, et tu as les nouveaux commits.

Par contre oui, si tu ne fais pas ce merge, et que ton dépot fait un push force dessus, ils seront perdus (enfin, ils seront toujours là, mais pas dans des branches, justes tout seuls et inatteignables, il faudra faire git reflog pour les voir et les cherry-pick-er, mais ce sera galère, autant re-merger la pullrequest.

Hors ligne

#1821 Le 18/08/2012, à 11:25

Rolinh

Re : /* Topic des codeurs [7] */

Ok merci pour la réponse. Bon, c'est pas encore entièrement clair dans ma tête.
Je verrais quand j'aurais un peu plus de temps.

Hors ligne

#1822 Le 18/08/2012, à 15:49

tshirtman

Re : /* Topic des codeurs [7] */

ton dépot                  github                fork
   |                        |                      |   
   |                        |                      <-------- modifs
   |                        |                      |   
   |                        <-----pull request-----+ 
   |                        |                      |   
   |                        |                      |   
   |                        <----pull--------------+ 
   |                        |                      |   
   |                        |                      |   
   <---------pull-----------+                      |   
   |                        |                      |   
   |                        |                      |   
   +--------push------------>                      |   
   |                        |                      |   
   |                        |                      |   
   |                        |                      |   
                                                     

ça ok


mais ça

ton dépot                  github                fork
   |                        |                      |   
   |                        |                      <-------- modifs
   |                        |                      |   
   |                        <-----pull request-----+ 
   |                        |                      |   
   |                        |                      |   
   |                        <----pull--------------+ 
   |                        |                      |   
   |                        |                      |   
   +--------push --force --->                      |   
   |                        |                      |   

= la branche perds les commits de fork, ils sont toujours dans le dépot, mais non référencés par la branches, ils sont orphelins… on peut les trouver avec git reflog, qui liste tous les commits, et les réintégrer a la branche avec git cherry-pick, mais le plus simple reste de juste refaire

   |                        |                      | 
   |                        <----pull--------------+ 
   |                        |                      | 
   |                        |                      | 
   <---------pull-----------+                      | 
   |                        |                      | 
   |                        |                      | 

pour remettre la branche à jours.

Dernière modification par tshirtman (Le 18/08/2012, à 15:54)

Hors ligne

#1823 Le 18/08/2012, à 16:22

Rolinh

Re : /* Topic des codeurs [7] */

Woua, la réponse avec des jolis petits graphes smile
Mais en fait, pour cette partie là j'avais compris la théorie tongue
Mea Culpa: quand j'écrivais "c'est pas encore entièrement clair dans ma tête", je voulais faire référence à la façon dont entretenir son miroir en général.
Par exemple, comment pusher dans le dépôt github en même temps que je push dans mon dépôt, comme puller les modifs de github, etc.

Hors ligne

#1824 Le 18/08/2012, à 19:37

petifrancais

Re : /* Topic des codeurs [7] */

Quelqu'un a déjà utilisé OpenGL avec freeglut + glew ici ? je commence à désespérer depuis quelques heures...
Je me suis mis à suivre ce tuto sur OpenGL 4.0,  le souci c'est qu'arrivé au Chapitre 2 le code donné me renvoie une erreur (mauvaise inclusion d'une biblio visiblement) :

Chapter2.1.cpp:(.text+0x384): undefined reference to `gluErrorString'
Chapter2.1.o: In function `DestroyVBO()':
Chapter2.1.cpp:(.text+0x424): undefined reference to `gluErrorString'
Chapter2.1.o: In function `CreateShaders()':
Chapter2.1.cpp:(.text+0x510): undefined reference to `gluErrorString'
Chapter2.1.o: In function `DestroyShaders()':
Chapter2.1.cpp:(.text+0x63a): undefined reference to `gluErrorString'
collect2: ld returned 1 exit status
make: *** [SecondPasOGL] Error 1
16:46:08: Le processus "/usr/bin/make" s'est terminé avec le code 2.
Erreur à la compilation du projet SecondPasOGL (cible : Desktop)
Lors de l'exécution de l'étape "Make"

Plus d'info sur le sujet que j'ai posté sur DVP.com.
Si quelqu'un a une idée...


Kubuntu 12.10 - KDE 4.9.5
Venez nous rejoindre sur le serveur minecraft zcraft.fr : http://forum.zcraft.fr/index.php

Hors ligne