Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Atelier] Fond animé Space Invaders

Venez vous entraîner avec le langage de votre choix :)

    2 mai 2013 à 15:01:33

    Salut salut ^^

    Voici mon code en C avec la SDL ;)

    #include <stdio.h>
    #include <stdlib.h>
    #include <SDL/SDL.h>
    #include <time.h>
    
    #define BLOC_LARG 7
    #define BLOC_LONG 6
    #define TAILLE 32
    #define FEN_LARG 540
    #define FEN_HAUT 384
    unsigned int table[BLOC_LONG][BLOC_LARG] = {{0, 0, 1, 0, 1, 0, 0},
                                		{0, 1, 1, 1, 1, 1, 0},
                                				{0, 1, 0, 1, 0, 1, 0},
    								            {0, 1, 0, 1, 0, 1, 0},
    								            {1, 1, 1, 1, 1, 1, 1},
    								            {1, 0, 1, 0, 1, 0, 1}};	
    Uint32 colorRendom(SDL_Surface *rect)
    {	int r, g, b;
    	r=(rand() % (255 - 0 + 1)) + 0;
    	g=(rand() % (255 - 0 + 1)) + 0;
    	b=(rand() % (255 - 0 + 1)) + 0;
    	Uint32 couleur = SDL_MapRGB(rect->format, r, g, b);
    }
    
    void drawRect(SDL_Surface *ecran, SDL_Surface *rect, int x, int y)
    {
    	SDL_Rect pos;
    	pos.x = x;
    	pos.y = y;
    	pos.w = TAILLE;
    	pos.h = TAILLE;
    	SDL_BlitSurface(rect, NULL, ecran, &pos);
    }
    
    void draw(SDL_Surface *ecran, SDL_Surface *rect)
    {
    	int i=0,j=0, pos1=0, pos2=0;
    	SDL_Rect pos;
    	
    	SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));
    	SDL_FillRect(rect, NULL, colorRendom(rect));
    	
    	pos.x = (rand() % ((FEN_LARG - TAILLE * BLOC_LARG)- 0 + 1)) + 0;
    	pos.y = (rand() % ((FEN_HAUT - TAILLE * BLOC_LONG)- 0 + 1)) + 0;
    	
    	for(i=0;i<BLOC_LARG;i++)
    	{
    		for(j=0;j<BLOC_LONG;j++)
    		{
    			if(table[j][i])
    				drawRect(ecran, rect, i * (TAILLE+1) + pos.x, j*(TAILLE+1)+ pos.y);
    		}
    	}
    	
    	SDL_FillRect(rect, NULL, SDL_MapRGB(rect->format, 0, 0, 0));
    	pos1 = (rand() % (1 - 0 + 1)) + 0;
    	pos2 = (rand() % (1 - 0 + 1)) + 0;
    		drawRect(ecran, rect, pos.x+(2*(TAILLE+1)), pos.y+((2+pos1)*(TAILLE+1)));
    		drawRect(ecran, rect, pos.x+(4*(TAILLE+1)), pos.y+((2+pos2)*(TAILLE+1)));
    		
    	SDL_Flip(ecran);
    }
    
    int main(int argc, char *argv[])
    {
    	SDL_Surface *ecran = NULL, *rect = NULL;
    	SDL_Event event;
    	int tempsActuel=0, tempsPrecedent=0; 
    	srand(time(NULL));
    
    	SDL_Init(SDL_INIT_VIDEO);
    	ecran = SDL_SetVideoMode(FEN_LARG, FEN_HAUT, 32 , SDL_HWSURFACE | SDL_DOUBLEBUF);
    	rect = SDL_CreateRGBSurface(SDL_HWSURFACE, TAILLE, TAILLE, 32, 0, 0, 0, 0);
    	
    	while(event.type != SDL_QUIT)
    	{
    		SDL_PollEvent(&event);
    		tempsActuel = SDL_GetTicks();
    		if (tempsActuel - tempsPrecedent > 1000)
    		{
    			draw(ecran,rect);
    			tempsPrecedent = tempsActuel;
    		}
    	}
    	SDL_FreeSurface(rect);
    	SDL_Quit();
    }

    Et un petit bonus pour faire vos "créatures" plus facilement. Rentrer des 0 et des 1 sa va un moment mais après :P

    #include <stdio.h>
    #include <stdlib.h>
    #include <SDL/SDL.h>
    
    #define TAILLE 32
    #define LARG 15
    #define HAUT 15
    #define LARGEUR_FEN TAILLE * LARG
    #define HAUTEUR_FEN TAILLE * HAUT
    
    int tableau[LARG][HAUT] = {0};
    
    void draw(SDL_Surface *ecran, SDL_Surface *rect, int x, int y)
    {
    	SDL_Rect dest;
    	dest.x = x;
    	dest.y = y;
    	dest.w = TAILLE;
    	dest.h = TAILLE;
    	
    	SDL_BlitSurface(rect, NULL, ecran, &dest);
    }
    
    void save()
    {
    	FILE *fichier = fopen("sortis.txt", "w");
    	int i=0,j=0;
    	for(j=0;j<HAUT;j++)
    	{
    		for(i=0;i<LARG;i++)
    		{
    			fprintf(fichier, "%d ", tableau[i][j]);
    		}
    		fprintf(fichier, "\n");
    	}
    	fclose(fichier);
    }
    
    void drawMap(SDL_Surface *ecran, SDL_Surface *rect)
    {
    	int i=0,j=0;
    	SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255,255,255));
    	for(i=0;i<LARG;i++)
    	{
    		for(j=0;j<HAUT;j++)
    		{
    			if(tableau[i][j])
    				draw(ecran, rect, i * (TAILLE+1), j * (TAILLE+1));
    		}
    	}
    	SDL_Flip(ecran);
    }
    
    void reload()
    {
    int i=0,j=0;
    	for(i=0;i<LARG;i++)
    	{
    		for(j=0;j<HAUT;j++)
    		{
    			tableau[i][j]=0;
    		}
    	}
    }
    
    int main(int argc, char *argv[])
    {
    	SDL_Surface *ecran = NULL, *rect = NULL;
    	SDL_Event event;
    	SDL_Init(SDL_INIT_VIDEO);
    	ecran = SDL_SetVideoMode(LARGEUR_FEN, HAUTEUR_FEN, 32, SDL_HWSURFACE);
    	rect = SDL_CreateRGBSurface(SDL_HWSURFACE, TAILLE, TAILLE, 32, 0, 0, 0, 0);
    	
    	while(event.type != SDL_QUIT)
    	{
    		SDL_WaitEvent(&event);
    		switch(event.type)
    		{
        		case SDL_MOUSEBUTTONUP:
            	if (event.button.button == SDL_BUTTON_LEFT)
                	tableau[event.button.x/TAILLE][event.button.y/TAILLE] = 1;
                if (event.button.button == SDL_BUTTON_RIGHT)
                	tableau[event.button.x/TAILLE][event.button.y/TAILLE] = 0;
                if (event.button.button == SDL_BUTTON_MIDDLE)
                	reload();
            break;
    		}
    		drawMap(ecran,rect);
    	}
    	SDL_FreeSurface(rect);
    	SDL_Quit();
    	save();
    	return 0;
    }




    -
    Edité par valerd 2 mai 2013 à 16:14:37

    • Partager sur Facebook
    • Partager sur Twitter
      2 mai 2013 à 18:22:29

      Super drôle ce défi ! Je n'ose pas le relever car je suis trop débutante en programmation et j'ai plein d'autres projets en cours.

      Quelqu'un a parlé de gif animé, est-ce qu'on a le droit d'en faire un quasiment sans utiliser de code si on est plus graphiste que programmeur ?

      Du genre, juste un petit coup de html pour lancer l'image animée et c'est à peu près tout ?

      Ca fera une image plutôt lourde, par contre mais on pourrait ajouter le genre "Code le moins inutilement compliqué" pour cette version !

      • Partager sur Facebook
      • Partager sur Twitter
        2 mai 2013 à 18:45:44

        Bah ça reste quand même un atelier de programmation, donc perso je ne vois pas trop l'intérêt de faire un gif sans code (sinon y'a pas spécialement de raisons que le gif soit lourd vu la nature des images générées. Ça représente en moyenne moins d'un Ko par frame pourvu que le gif ne soit pas formé à la bourrin avec de l'espace vide partout ...)

        -
        Edité par nohar 2 mai 2013 à 18:46:50

        • Partager sur Facebook
        • Partager sur Twitter
        Zeste de Savoir, le site qui en a dans le citron !
          2 mai 2013 à 18:51:26

          Oui, ça n'a pas grand interet comme atelier pour les graphistes... Par contre quelque chose me dit qu'un tel Atelier va peut être arrivé d'ici peu...

          • Partager sur Facebook
          • Partager sur Twitter
            2 mai 2013 à 19:08:28

            Ah, merci de penser aux graphistes ! Tout le monde n'est pas un roi du code et en attendant de l'être, on peut préférer les petits dessins...
            • Partager sur Facebook
            • Partager sur Twitter
              2 mai 2013 à 19:11:42

              Bah dans l'absolus c'est aussi aux graphistes de proposer des ateliers ! Tout ne peut pas venir a chaque fois de SimpleIT. Mais là n'est pas le sujet ! Là c'est un atelier de code...

              • Partager sur Facebook
              • Partager sur Twitter
                2 mai 2013 à 19:45:37

                J'ai mis à jour mon code, j'avais fait une étourderie au niveau de la plage d'affichage des monstres ( l'ecran seulement ) 

                Il suffirait que je trouve comment modifier un tableau a 2 dimensions plus rapidement et mon code serai bien optimisé je trouve :).

                http://www.siteduzero.com/forum/sujet/atelier-fond-anime-space-invaders?page=7#message-84295514

                • Partager sur Facebook
                • Partager sur Twitter
                  2 mai 2013 à 20:59:15

                  Et hop, les trolls des JSdZ l'attendaient avec impatience, voici la version Delphi !!! :p

                  Pour tout le bazar:

                  Ça se lance en plein écran. Pour quitter: Echap ou clic droit > Quit.

                  Chiptune par dubmood de la division demo de Razor 1911. Enjoy !

                  unit Main;
                  
                  interface
                  
                  uses
                    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
                    System.Classes, Vcl.Graphics,
                    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.Menus;
                  
                  type
                    TMainForm = class(TForm)
                      Timer1: TTimer;
                      PopupMenu1: TPopupMenu;
                      Quit1: TMenuItem;
                      CodeFumbleSfxdubmoodRazor19111: TMenuItem;
                      SpaceInvadersv101: TMenuItem;
                      procedure FormKeyPress(Sender: TObject; var Key: Char);
                      procedure Timer1Timer(Sender: TObject);
                      procedure FormCreate(Sender: TObject);
                      procedure Quit1Click(Sender: TObject);
                      procedure FormShow(Sender: TObject);
                      procedure FormClose(Sender: TObject; var Action: TCloseAction);
                    private
                      { Déclarations privées }
                    public
                      { Déclarations publiques }
                    end;
                  
                  var
                    MainForm: TMainForm;
                  
                  implementation
                  
                  {$R *.dfm}
                  
                  uses xmfile, uFMOD;
                  
                  const
                    W: Integer = 7;
                    H: Integer = 6;
                    BLANK: Integer = 4;
                    SHAPE: Integer = 50;
                    MAX_X: Integer = 378;
                    MAX_Y: Integer = 324;
                  
                  var
                    invader: array [0 .. 5, 0 .. 6] of Integer = // w * h
                      ((0, 0, 1, 0, 1, 0, 0), (0, 1, 1, 1, 1, 1, 0), (0, 1, 2, 1, 2, 1, 0),
                      (0, 1, 0, 1, 0, 1, 0), (1, 1, 1, 1, 1, 1, 1), (1, 0, 1, 0, 1, 0, 1));
                  
                  procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
                  begin
                    uFMOD_StopSong;
                  end;
                  
                  procedure TMainForm.FormCreate(Sender: TObject);
                  begin
                    color := clWhite;
                  end;
                  
                  procedure TMainForm.FormShow(Sender: TObject);
                  begin
                    uFMOD_PlaySong(@xm, Length(xm), XM_MEMORY)
                  end;
                  
                  procedure TMainForm.Quit1Click(Sender: TObject);
                  begin
                    Close;
                  end;
                  
                  procedure TMainForm.FormKeyPress(Sender: TObject; var Key: Char);
                  begin
                    if Key = #27 then
                      Close;
                  end;
                  
                  procedure TMainForm.Timer1Timer(Sender: TObject);
                  var
                    i, j, x, y: Integer;
                    rndX, rndEye: Integer;
                    col: TColor;
                  begin
                    Canvas.Brush.color := RGB(255, 255, 255);
                    Canvas.FillRect(Canvas.ClipRect);
                    rndX := Random(Width - MAX_X);
                    rndEye := Random(4);
                    case rndEye of
                      0:
                        begin
                          invader[2, 2] := 2;
                          invader[2, 4] := 2;
                          invader[3, 2] := 0;
                          invader[3, 4] := 0;
                        end;
                      1:
                        begin
                          invader[2, 2] := 2;
                          invader[2, 4] := 0;
                          invader[3, 2] := 0;
                          invader[3, 4] := 2;
                        end;
                      2:
                        begin
                          invader[2, 2] := 0;
                          invader[2, 4] := 0;
                          invader[3, 2] := 2;
                          invader[3, 4] := 2;
                        end;
                      3:
                        begin
                          invader[2, 2] := 0;
                          invader[2, 4] := 2;
                          invader[3, 2] := 2;
                          invader[3, 4] := 0;
                        end;
                    end;
                  
                    x := rndX;
                    y := Random(Height - MAX_Y);
                    col := RGB(Random(256), Random(256), Random(256));
                    Canvas.Brush.color := col;
                  
                    for i := 0 to W do
                    begin
                      for j := 0 to H do
                      begin
                        if invader[i, j] = 1 then
                          Canvas.Rectangle(x, y, x + SHAPE, y + SHAPE)
                        else if invader[i, j] = 2 then
                        begin
                          Canvas.Brush.color := RGB(0, 0, 0);
                          Canvas.Rectangle(x, y, x + SHAPE, y + SHAPE);
                          Canvas.Brush.color := col;
                        end;
                        x := x + SHAPE + BLANK;
                      end;
                      y := y + SHAPE + BLANK;
                      x := rndX;
                    end;
                  end;
                  
                  end.



                  -
                  Edité par Fumble 2 mai 2013 à 22:12:23

                  • Partager sur Facebook
                  • Partager sur Twitter
                    2 mai 2013 à 22:03:51

                    La grande question est maintenant : qui a encore un compilo Delphi pour vérifier que son truc affreux compile ?

                    • Partager sur Facebook
                    • Partager sur Twitter
                      2 mai 2013 à 23:13:13

                      C'est méchant ce que tu viens de dire kristofjé x)
                      • Partager sur Facebook
                      • Partager sur Twitter
                      http://pixelcodeteam.fr/ (@PixelCodeTeam) - L'intelligence c'est comme la programmation, quand t'en as pas tu segfault.
                        2 mai 2013 à 23:14:08

                        C'est ... Réaliste ...

                        • Partager sur Facebook
                        • Partager sur Twitter

                        🍊 - Étudiant - Codeur en C | Zeste de Savoir apprenez avec une communauté | Articles  - ♡ Copying is an act of love.

                          2 mai 2013 à 23:33:02

                          En meme temps il a tendu le baton pour se faire battre.

                          Il nous manque juste la version Cobol pour faire pire...

                          • Partager sur Facebook
                          • Partager sur Twitter
                            2 mai 2013 à 23:48:45

                            Je pourrais faire une version Ada... :D
                            • Partager sur Facebook
                            • Partager sur Twitter
                              3 mai 2013 à 0:43:39

                              Bon J'ai repris le code de Thunderseb, histoire de montrer ce que l'on peut faire facilement avec SignalR.

                              En gros SignalR c'est du temps réel. Une personne se connecte voir son space invader, une autre se connecte elle vois le sien et la premiére personne vois les deux, etc...

                              C'est trés simple de faire un chat avec SignalR et toastr.

                               Donc voila en ASP.NET MVC C#

                              <!DOCTYPE html>
                              <html>
                              <head>
                                  <title>Space</title>
                                  <style type="text/css">
                                      body
                                      {
                                          margin: 0;
                                          padding: 0;
                                      }
                              
                                      canvas
                                      {
                                          position: absolute;
                                      }
                              
                                      body, canvas
                                      {
                                          background: #fff;
                                      }
                                  </style>
                                  <link rel="stylesheet" href="/Scripts/toastr-1.0.2/toastr.css"/>
                                  <link rel="stylesheet" href="/Scripts/toastr-1.0.2/toastr-responsive.css"/>
                              </head>
                              <body>
                                  <input type="hidden" id="displayname" />
                                  <script src="/Scripts/jquery-1.8.2.min.js"></script>
                                  <script src="/Scripts/jquery.signalR-1.0.0.js"></script>
                                    <script src="/signalr/hubs"></script>
                                  <script src="/Scripts/toastr-1.0.2/toastr.js"></script>
                              
                                  <script type="text/javascript">
                                      $(function () {
                                          var space = $.connection.space;
                              
                                          space.client.broadcastMessage = function (name) {
                              
                                              toastr.info(name, "Bonjour");
                                              toastr.options = {
                                                  debug: false,
                                                  positionClass: 'toast-top-right',
                                                  onclick: null,
                                                  fadeIn: 300,
                                                  fadeOut: 1000,
                                                  timeOut: 5000,
                                                  extendedTimeOut: 1000
                                              };
                              
                                              try {
                                                  var oCanvas = document.createElement('canvas');
                                                  oCanvas.width = 187;
                                                  oCanvas.height = 160;
                              
                                                  var oContext = oCanvas.getContext("2d");
                              
                                                  buildCanvas(oContext, oCanvas);
                              
                                               
                                              } catch (e) {
                                                  alert("Votre navigateur ne supporte pas canvas");
                                              }
                                          };
                              
                                          // Get the user name and store it to prepend to messages.
                                          $('#displayname').val(prompt('Pseudo:', ''));
                                          $.connection.hub.start().done(function () {
                                              space.server.send($('#displayname').val());
                              
                                          });
                              
                                          function getRandom(nFrom, nTo) {
                                              return Math.floor(Math.random() * (nTo - nFrom + 1) + nFrom);
                                          }
                              
                                          function buildCanvas(oContext, oCanvas) {
                                              var nClientHeight = window.innerHeight,
                                                  nClientWidth = window.innerWidth,
                                                  nX = 0, nY = 0,
                                                  sColor = "#" + (0x1000000 + (Math.random()) * 0xffffff).toString(16).substr(1, 6),
                                                  aInvader = [
                                                      [0, 0, 1, 0, 1, 0, 0],
                                                      [0, 1, 1, 1, 1, 1, 0],
                                                      [0, 1, 2, 1, 2, 1, 0],
                                                      [0, 1, 0, 1, 0, 1, 0],
                                                      [1, 1, 1, 1, 1, 1, 1],
                                                      [1, 0, 1, 0, 1, 0, 1]
                                                  ], i, j;
                              
                                              // Position des yeux, aléatoire
                                              if (getRandom(0, 1) === 0) { // Oeil gauche
                                                  aInvader[2][2] = 0;
                                                  aInvader[3][2] = 2;
                                              }
                              
                                              if (getRandom(0, 1) === 0) { // Oeil droit
                                                  aInvader[2][4] = 0;
                                                  aInvader[3][4] = 2;
                                              }
                              
                                              // On efface le dessin précédent
                                              oContext.clearRect(0, 0, oCanvas.width, oCanvas.height);
                              
                                              // Dessin de l'Invader
                                              for (i = 0; i < 6; i++) {
                                                  for (j = 0; j < 7; j++) {
                                                      if (aInvader[i][j] === 1) {
                                                          oContext.fillStyle = sColor;
                                                          oContext.fillRect(nX, nY, 25, 25);
                                                      } else if (aInvader[i][j] === 2) {
                                                          oContext.fillStyle = "black";
                                                          oContext.fillRect(nX, nY, 25, 25);
                                                      }
                              
                                                      nX += (4 + 25);
                                                  }
                              
                                                  nX = 0;
                                                  nY += (4 + 25);
                                              }
                                              
                                              // Positionnement du canvas
                                              oCanvas.style.top = getRandom(25, nClientHeight - oCanvas.height - 25) + "px";
                                              oCanvas.style.left = getRandom(25, nClientWidth - oCanvas.width - 25) + "px";
                              
                                              document.body.appendChild(oCanvas);
                              
                                              window.setTimeout(function () {
                                                  buildCanvas(oContext, oCanvas)
                                                  document.body.appendChild(oCanvas);
                              
                                              }, 3000);
                                          }
                                      });
                                  </script>
                              </body>
                              </html>
                              



                                  public class Space : Hub
                                  {
                                      public void Send(string name)
                                      {
                                          Clients.All.broadcastMessage(name);
                                      }
                                  }

                              Et puis c'est tout :) Bien sur on pourrais amélioré avec gestion des collisions et d'autres trucs comme.

                              Y a pas eux de excel encore :p

                              -
                              Edité par zyhou 3 mai 2013 à 23:37:33

                              • Partager sur Facebook
                              • Partager sur Twitter
                                3 mai 2013 à 3:27:41

                                Et ben ça m'a bien occupé pendant ma captivité nocturne :D J'ai rien fais de bien spécial, un petit script en PHP tout bête :D

                                <?php
                                    function randomText($char,$nb){
                                        $text = '';		
                                	for($i=0;$i<$nb;$i++)
                                	$text .= $char[rand(0,sizeof($char)-1)];
                                			
                                	return $text;
                                    }
                                	
                                    $sizeBlock = 50;
                                    $posBlockX = array(2,4,1,2,3,4,5,1,3,5,1,3,5,0,1,2,3,4,5,6,0,2,4,6);
                                    $posBlockY = array(0,0,1,1,1,1,1,2,2,2,3,3,3,4,4,4,4,4,4,4,5,5,5,5);
                                    $eye = array(
                                	'l' => array(2,rand(2,3)),
                                	'r' => array(4,rand(2,3)),
                                    );
                                    $hexaChar = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
                                    $colorInvader = randomText($hexaChar,6);
                                ?>
                                <!DOCTYPE html>
                                <html>
                                    <head>
                                	<meta charset="utf-8"/>
                                	<style type="text/css">
                                		#c {width:380px;height:420px;position:relative;margin:<?php echo rand(0,200);?>px 0px 0px <?php echo rand(0,1024);?>px;}
                                	</style>
                                	<title>Space invaders</title>
                                    </head>
                                	
                                    <body>	
                                	<div id="c">
                                	    <?php
                                		for($i=0;$i<sizeof($posBlockX);$i++){
                                		    echo '
                                		        <div class="b" style="position:absolute;top:'.($posBlockY[$i]*$sizeBlock).'px;left:'.($posBlockX[$i]*$sizeBlock).'px;width:'.($sizeBlock/100*92).'px;height:'.($sizeBlock/100*92).'px;background-color:#'.$colorInvader.';"></div>';
                                                }
                                				
                                		foreach($eye as $k => $v){
                                		    echo '<div class="eye" style="position:absolute;top:'.($v[1]*$sizeBlock).'px;left:'.($v[0]*$sizeBlock).'px;width:'.($sizeBlock/100*92).'px;height:'.($sizeBlock/100*92).'px;background-color:black;"></div>';
                                		}
                                            ?>
                                        </div>
                                		
                                        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
                                	<script type="text/javascript">
                                		window.onload = function (){
                                			setInterval(function(){document.location.reload(true);},3000);
                                			var aieGmal = false;
                                				
                                			$(".eye").click(function(){
                                				$(this).animate({
                                					height : $(this).height() / 2,
                                					marginTop : $(this).height() / 2 + "px",
                                				});
                                					
                                				if(!aieGmal){
                                					$("#c").append('<div id="bulle" style="position:absolute;top:0;right:0;width:150px;height:100px;background-image:url(bulles.png);text-align:center;line-height:80px;">Aie mon oeil</div>');
                                					aieGmal = true;
                                				}
                                			});
                                		}
                                	</script>
                                    </body>
                                </html>
                                	
                                	

                                Faites attention à ses petits yeux fragiles ;) (http://waitaminute.vacau.com/invaders/)

                                -
                                Edité par matini 3 mai 2013 à 3:28:18

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  3 mai 2013 à 6:27:49

                                  kristofjé a écrit:

                                  Il nous manque juste la version Cobol pour faire pire...

                                  Il faut demander à Coyote. Il travaille avec Cobol, ce fou ^^

                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  Ma vraie biographie - Ex-Manager de la Validation sur le Site du Zéro - sdlm.be - Horus.aero

                                    3 mai 2013 à 8:40:16

                                    @quryceteaupheugeai: j'te ferai une version en FreePascal comme ça tu pourras la compiler tranquillement avec Lazarus si tu veux. ;)
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      3 mai 2013 à 10:32:34

                                      Thunderseb a écrit:

                                      kristofjé a écrit:

                                      Il nous manque juste la version Cobol pour faire pire... Il faut demander à Coyote. Il travaille avec Cobol, ce fou ^^

                                      Allez, qui est chaud pour une version COBOL ? :D Il ne nous manque (presque) que ça !

                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      If you'd like to join us, read "How do we work at OpenClassrooms"! :)

                                        3 mai 2013 à 10:50:38

                                        Nan, il manque aussi certains grands classiques : une version haskell, une OCaml, une scheme (quoique y a du lisp, mais bon), une prolog...

                                        J'ai failli essayer de le faire en prolog, mais j'ai pas vu l'intêret.

                                        -
                                        Edité par yoch 3 mai 2013 à 10:51:26

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          3 mai 2013 à 10:53:31

                                          Manque aussi XNA, WPF, Excel (VBA), Flash, Windows phone, Windows 8, iphone...
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            3 mai 2013 à 11:04:31

                                            @yoch: J'en ai fait une en haskell ^^

                                            • Partager sur Facebook
                                            • Partager sur Twitter

                                            🍊 - Étudiant - Codeur en C | Zeste de Savoir apprenez avec une communauté | Articles  - ♡ Copying is an act of love.

                                            Anonyme
                                              3 mai 2013 à 11:44:05

                                              Et la version Brainfuck :D ?

                                              Quoique, pour les nombres aléatoires et les 3 secondes de délai ça risque d'être un peu chaud :-° .

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                3 mai 2013 à 11:49:11

                                                naim42 a écrit:

                                                Et la version Brainfuck :D ?

                                                Déjà faite (mais sans l'aléatoire).

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  3 mai 2013 à 11:49:15

                                                  Ça à été fait aussi ... Mais sans nombre aléatoire ...

                                                  Grilled de <30s car j'ai cherché le lien -_-"

                                                  -
                                                  Edité par @che 3 mai 2013 à 11:49:55

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter

                                                  🍊 - Étudiant - Codeur en C | Zeste de Savoir apprenez avec une communauté | Articles  - ♡ Copying is an act of love.

                                                    3 mai 2013 à 11:51:10

                                                    zyhou a écrit:

                                                    Manque aussi XNA, WPF, Excel (VBA), Flash, Windows phone, Windows 8, iphone...

                                                    Mais on parle de vrais langages, là (troll inside)... 

                                                    @che a écrit:

                                                    @yoch: J'en ai fait une en haskell ^^

                                                    Mode graphique ou texte ? Je considère le mode texte comme une forme de triche (c'est vraiment trop simple).

                                                    -
                                                    Edité par yoch 3 mai 2013 à 11:52:45

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      3 mai 2013 à 11:53:06

                                                      @naim42 : déjà fait ici : http://www.siteduzero.com/forum/sujet/atelier-fond-anime-space-invaders?page=3#message-84280077

                                                      oops ... grillé de trois min pour la meme raison que @che ...

                                                      -
                                                      Edité par _mrtn 3 mai 2013 à 11:54:52

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter

                                                      Je ne visite plus ce site, si ça vous intéresse (ce qui serait très curieux), lisez ma bio.

                                                        3 mai 2013 à 11:54:50

                                                        yoch a écrit:

                                                        @che a écrit:

                                                        @yoch: J'en ai fait une en haskell ^^

                                                        Mode graphique ou texte ? Je considère le mode texte comme une forme de triche (c'est vraiment trop simple).

                                                        Si y'a que ça je veux bien recoder ma génération de GIF animé en Haskell, mais c'est pas beaucoup plus difficile...

                                                        -
                                                        Edité par nohar 3 mai 2013 à 11:55:20

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                        Zeste de Savoir, le site qui en a dans le citron !
                                                        Anonyme
                                                          3 mai 2013 à 12:06:25

                                                          Ah, je n'avais pas vu ^^ .

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            3 mai 2013 à 13:05:31

                                                            @nohar:

                                                            Venant de toi, je préférerais avoir une version perl ;)

                                                            edit: Au fait, faudrait songer à actualiser le tableau sur le premier post, ça rendra le suivi de l'avancement plus simple.

                                                            -
                                                            Edité par yoch 3 mai 2013 à 13:11:10

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              3 mai 2013 à 13:16:02

                                                              yoch a écrit:

                                                              @nohar:

                                                              Venant de toi, je préférerais avoir une version perl ;)

                                                              Pourquoi pas si j'ai un peu de temps ce week end.

                                                              • Partager sur Facebook
                                                              • Partager sur Twitter
                                                              Zeste de Savoir, le site qui en a dans le citron !

                                                              [Atelier] Fond animé Space Invaders

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown