Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1241 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Langage C, Projet, Puissance 4 en langage C

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Langage C, Projet, Puissance 4 en langage C

n°1892052
flo38c
Posté le 06-06-2009 à 21:05:22  profilanswer
 

Voila j'ai à faire dans le cadre de mon DUT  Reseaux et Telecommunications un puissance 4 en langage C
 
Je suis pas loin de la fin mais j'ai un problème : le puissance 4 n'est pas détecté. Pouvez vous me donner un coup de main?
 
Attention pas de C++ ! ^^
 
Voila le programme ( un peu long je l'avoue )
 
 
 
 
 
 

Code :
  1. /*****************************************************************************
  2. * projet.c
  3. *****************************************************************************
  4. */
  5. #include <allegro.h>
  6. #include <math.h>
  7. #include <tpinfo.h>
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10.  
  11.  
  12.    int puissance4(int);
  13.    void presentation(void);
  14.    void grille (void);
  15.    //void ordinateur(void);
  16.    int bleu,blanc,noir,jaune,rouge,gris, bleuclair;
  17.    const int X = 2*500;//1100;
  18.    const int Y = 2*400;//900;
  19.    int x,k;
  20.    int q;
  21.    int ordi;
  22.    int ligne1,ligne2,ligne3,ligne4,ligne5,ligne6,ligne7;
  23.    int colonne1,colonne2,colonne3,colonne4,colonne5,colonne6,colonne7;
  24.    int n1, n2,n3,n4,n5,n6,n7;
  25.    int i,j,copiei, copiej;
  26.    int couleur, choix;
  27.    int modulo, compteur;
  28.    int tab[6][7]={{0,0,0,0,0,0,0},
  29.                   {0,0,0,0,0,0,0},
  30.                   {0,0,0,0,0,0,0},
  31.                   {0,0,0,0,0,0,0},
  32.                   {0,0,0,0,0,0,0},
  33.                   {0,0,0,0,0,0,0}};
  34.  
  35.  
  36.    int A[4]={0,-1,-1,-1};
  37.    int B[4]={1,0,1,-1};
  38.    int k;
  39.  
  40.  
  41. int main(void)
  42. {
  43.    int puissance=1;
  44.    int touche;
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.    allegro_init();
  53.  
  54.    install_keyboard();
  55.  
  56.    set_color_depth(32);
  57.    set_gfx_mode(GFX_AUTODETECT_WINDOWED, X, Y, 0, 0);
  58.  
  59.    ligne1=ligne2=ligne3=ligne4=ligne5=ligne6=ligne7=5;
  60.    colonne1=colonne2=colonne3=colonne4=colonne5=colonne6=colonne7=0;
  61.    n1=n2=n3=n4=n5=n6=n7=700;
  62.    bleu = makecol(0, 0, 255);
  63.    blanc = makecol(255, 255, 255);
  64.    noir = makecol(0, 0, 0);
  65.    jaune = makecol(255, 255, 0);
  66.    rouge = makecol(255, 0, 0);
  67.    gris=makecol(40,35,40);
  68.    bleuclair=makecol(125,125,255);
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.    clear_to_color(screen, noir);
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.    presentation();
  91.    grille();
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.    while(1 || (compteur>42) || (puissance == 4))
  99.    {
  100.        for(compteur=0;compteur<=42;compteur++)
  101.        {
  102.            modulo = compteur % 2;
  103.            touche = readkey();
  104.            if(modulo==0)
  105.            {
  106.                couleur=jaune;
  107.                if(((touche & 0xff) =='a')&&(ligne1>=0)&&(ligne1<=5))
  108.            {
  109.            circlefill(screen, 200, n1, 40, couleur);
  110.            circle(screen, 200, n1, 35, noir);
  111.            n1 = n1 - 100;
  112.            tab[ligne1][colonne1]=1;
  113.            i=ligne1;
  114.            j=colonne1;
  115.            ligne1--;
  116.            rest(100);
  117.  
  118.        }
  119.  
  120.        if(((touche & 0xff) =='z')&&(ligne2>=0)&&(ligne2<=5))
  121.        {
  122.            circlefill(screen, 300, n2, 40, couleur);
  123.            circle(screen, 300, n2, 35, noir);
  124.            n2 = n2 - 100;
  125.            tab[ligne2][colonne2]=1;
  126.             i=ligne2;
  127.            j=colonne2;
  128.            ligne2--;
  129.            rest(100);
  130.       }
  131.  
  132.        if(((touche & 0xff) =='e')&&(ligne3>=0)&&(ligne3<=5))
  133.        {
  134.            circlefill(screen, 400, n3, 40, couleur);
  135.            circle(screen, 400, n3, 35, noir);
  136.            n3 = n3 - 100;
  137.            tab[ligne3][colonne3]=1;
  138.            i=ligne3;
  139.            j=colonne3;
  140.            ligne3--;
  141.            rest(100);
  142.        }
  143.  
  144.    if(((touche & 0xff) =='r')&&(ligne4>=0)&&(ligne4<=5))
  145.    {
  146.    circlefill(screen, 500, n4, 40, couleur);
  147.    circle(screen, 500, n4, 35, noir);
  148.    n4 = n4 - 100;
  149.    tab[ligne4][colonne4]=1;
  150.    i=ligne4;
  151.    j=colonne4;
  152.    ligne4--;
  153.    rest(100);
  154.    }
  155.  
  156.    if(((touche & 0xff) =='t')&&(ligne5>=0)&&(ligne5<=5))
  157.    {
  158.    circlefill(screen, 600, n5, 40, couleur);
  159.    circle(screen, 600, n5, 35, noir);
  160.    n5 = n5 - 100;
  161.    tab[ligne5][colonne5]=1;
  162.    i=ligne5;
  163.    j=colonne5;
  164.    ligne5--;
  165.    rest(100);
  166.    }
  167.  
  168.    if(((touche & 0xff) =='y')&&(ligne6>=0)&&(ligne6<=5))
  169.    {
  170.  
  171.    circlefill(screen, 700, n6, 40, couleur);
  172.    circle(screen, 700, n6, 35, noir);
  173.    n6 = n6 - 100;
  174.     tab[ligne6][colonne6]=1;
  175.    i=ligne6;
  176.    j=colonne6;
  177.    ligne6--;
  178.    rest(100);
  179.    }
  180.  
  181.    if(((touche & 0xff) =='u')&&(ligne7>=0)&&(ligne7<=5))
  182.    {
  183.    circlefill(screen, 800, n7, 40, couleur);
  184.    circle(screen, 800, n7, 35, noir);
  185.    n7 = n7 - 100;
  186.    tab[ligne7][colonne7]=1;
  187.    i=ligne7;
  188.    j=colonne7;
  189.    ligne7--;
  190.    rest(100);
  191.    }
  192.  
  193.    if(((touche & 0xff) !='a')&&((touche & 0xff) !='z')&&((touche & 0xff) !='e')&&((touche & 0xff) !='r')&&((touche & 0xff) !='t')&&((touche & 0xff) !='y')&&((touche & 0xff) !='u'))
  194.    {
  195.        compteur--;
  196.    }
  197.    }
  198.  
  199.  
  200.  
  201.  
  202.  
  203.    else
  204.    {
  205.    couleur=rouge;
  206.    if(((touche & 0xff) =='a')&&(ligne1>=0)&&(ligne1<=5))
  207.    {
  208.    circlefill(screen, 200, n1, 40, couleur);
  209.    circle(screen, 200, n1, 35, noir);
  210.    n1 = n1 - 100;
  211.    tab[ligne1][colonne1]=2;
  212.     i=ligne1;
  213.    j=colonne1;
  214.    ligne1--;
  215.    rest(100);
  216.    }
  217.  
  218.    if(((touche & 0xff) =='z')&&(ligne2>=0)&&(ligne2<=5))
  219.    {
  220.    circlefill(screen, 300, n2, 40, couleur);
  221.    circle(screen, 300, n2, 35, noir);
  222.    n2 = n2 - 100;
  223.    tab[ligne2][colonne2]=2;
  224.     i=ligne2;
  225.    j=colonne2;
  226.    ligne2--;
  227.    rest(100);
  228.    }
  229.  
  230.    if(((touche & 0xff) =='e')&&(ligne3>=0)&&(ligne3<=5))
  231.    {
  232.    circlefill(screen, 400, n3, 40, couleur);
  233.    circle(screen, 400, n3, 35, noir);
  234.    n3 = n3 - 100;
  235.    tab[ligne3][colonne3]=2;
  236.     i=ligne3;
  237.    j=colonne3;
  238.    ligne3--;
  239.    rest(100);
  240.    }
  241.  
  242.    if(((touche & 0xff) =='r')&&(ligne4>=0)&&(ligne4<=5))
  243.    {
  244.    circlefill(screen, 500, n4, 40, couleur);
  245.    circle(screen, 500, n4, 35, noir);
  246.    n4 = n4 - 100;
  247.    tab[ligne4][colonne4]=2;
  248.     i=ligne4;
  249.    j=colonne4;
  250.    ligne4--;
  251.    rest(100);
  252.    }
  253.  
  254.    if(((touche & 0xff) =='t')&&(ligne5>=0)&&(ligne5<=5))
  255.    {
  256.    circlefill(screen, 600, n5, 40, couleur);
  257.    circle(screen, 600, n5, 35, noir);
  258.    n5 = n5 - 100;
  259.    tab[ligne5][colonne5]=2;
  260.     i=ligne5;
  261.    j=colonne5;
  262.    ligne5--;
  263.    rest(100);
  264.    }
  265.  
  266.    if(((touche & 0xff) =='y')&&(ligne6>=0)&&(ligne6<=5))
  267.    {
  268.  
  269.    circlefill(screen, 700, n6, 40, couleur);
  270.    circle(screen, 700, n6, 35, noir);
  271.    n6 = n6 - 100;
  272.    tab[ligne6][colonne6]=2;
  273.    i=ligne6;
  274.    j=colonne6;
  275.    ligne6--;
  276.    rest(100);
  277.    }
  278.  
  279.    if(((touche & 0xff) =='u')&&(ligne7>=0)&&(ligne7<=5))
  280.    {
  281.    circlefill(screen, 800, n7, 40, couleur);
  282.    circle(screen, 800, n7, 35, noir);
  283.    n7 = n7 - 100;
  284.    tab[ligne7][colonne7]=2;
  285.     i=ligne7;
  286.    j=colonne7;
  287.    ligne7--;
  288.    rest(100);
  289.    }
  290.    puissance = puissance4(puissance);
  291.    }
  292.  
  293.  
  294.     if(((touche & 0xff) !='a')&&((touche & 0xff) !='z')&&((touche & 0xff) !='e')&&((touche & 0xff) !='r')&&((touche & 0xff) !='t')&&((touche & 0xff) !='y')&&((touche & 0xff) !='u'))
  295.    {
  296.        compteur--;
  297.    }
  298.  
  299.    if(puissance==4)  // si puissance = 4 alors le joueur 1 a gagné
  300.        {
  301.            textout_ex(screen,font,"Le joueur 1 a gagne",500,400,rouge,10);
  302.            rest(1000);
  303.            return 0;
  304.        }
  305.  
  306.        if(puissance==0)   // si puissance = 0 alors le joueur 1 a gagné
  307.        {
  308.            textout_ex(screen,font,"Le joueur 2 a gagne",x-1,15,rouge,10);
  309.            rest(1000);
  310.            return 0;
  311.        }
  312.  
  313.  
  314.        if(key[KEY_ESC])   // a tout moment on peut appuyer sur Echap pour quitter
  315.        {
  316.            return(0);
  317.        }
  318.  
  319.  
  320.        }
  321.  
  322.    }
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.    return 0;
  332. }
  333.  
  334.  
  335. END_OF_MAIN()
  336.  
  337. void presentation(void)
  338. {
  339.    int q,degrade;
  340.  
  341.  
  342.        rectfill(screen, 150, 150, X-150, Y-50, gris);
  343.    q=0;
  344.  
  345.  
  346. for(x=0;x<430;x++)
  347. {
  348.  
  349.  
  350.  
  351.  
  352.    degrade=makecol(q,q,q);
  353.    textout_ex(screen,font,"Flo Production",x-1,15,noir,10);
  354.    textout_ex(screen,font,"Flo Production",x,15,rouge,10);
  355.    textout_ex(screen,font,"presente :",-x+881,35,noir,10);
  356.    textout_ex(screen,font,"presente :",-x+880,35,rouge,10);
  357.    textout_ex(screen,font,"Le Puissance 4",450,75,degrade,10);
  358.    rest(4);
  359.  
  360. }
  361.  
  362.  
  363.    textout_ex(screen,font,"L",420,70,blanc,10);
  364.    rest(185);
  365.    textout_ex(screen,font,"e",430,70,blanc,10);
  366.     rest(185);
  367.    textout_ex(screen,font," ",440,70,blanc,10);
  368.     rest(185);
  369.    textout_ex(screen,font,"P",450,70,blanc,10);
  370.    rest(185);
  371.    textout_ex(screen,font,"u",460,70,blanc,10);
  372. rest(185);
  373.    textout_ex(screen,font,"i",470,70,blanc,10);
  374.    rest(185);
  375.    textout_ex(screen,font,"s",480,70,blanc,10);
  376.   rest(185);
  377.    textout_ex(screen,font,"s",490,70,blanc,10);
  378.     rest(185);
  379.    textout_ex(screen,font,"a",500,70,blanc,10);
  380.   rest(185);
  381.    textout_ex(screen,font,"n",510,70,blanc,10);
  382.    rest(185);
  383.    textout_ex(screen,font,"c",520,70,blanc,10);
  384.     rest(185);
  385.    textout_ex(screen,font,"e",530,70,blanc,10);
  386.   rest(185);
  387.    textout_ex(screen,font," ",540,70,blanc,10);
  388.  rest(185);
  389.    textout_ex(screen,font,"4",550,70,blanc,10);
  390.    rest(185);
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.    textout_ex(screen,font," Pour jouer seul taper S, pour jouer a deux taper D :",146,170,bleuclair,-1);
  401.  
  402.    choix=readkey();
  403.  
  404.    if((choix & 0xff) =='d')
  405.    {
  406.    textout_ex(screen,font,"Vous avez choisit de jouer a deux joueurs",155,210,blanc,-1);
  407.  
  408.    rest(700);
  409.  
  410.    textout_ex(screen,font,"La partie commence dans quelques secondes",155,250,bleuclair,-1);
  411.  
  412.  
  413.    }
  414.  
  415.  
  416.    if((choix & 0xff) =='s')
  417.    {
  418.    textout_ex(screen,font,"Vous avez choisit de jouer contre l'ordinateur",155,210,blanc,-1);
  419.    rest(700);
  420.    textout_ex(screen,font,"Tapez F pour jouer en facile, I pour intermediaire ou D pour difficile",155,250,bleuclair,-1);
  421.    choix=readkey();
  422.  
  423.    if((choix & 0xff) =='f')
  424.    {
  425.    textout_ex(screen,font,"Vous avez choisit de jouer en mode facile",155,290,blanc,-1);
  426.    }
  427.  
  428.    if((choix & 0xff) =='i')
  429.    {
  430.    textout_ex(screen,font,"Vous avez choisit de jouer en mode intermediaire",155,290,blanc,-1);
  431.    }
  432.  
  433.    if((choix & 0xff) =='d')
  434.    {
  435.    textout_ex(screen,font,"Vous avez choisit de jouer en mode difficile",155,290,blanc,-1);
  436.    }
  437.  
  438.    rest(700);
  439.  
  440.    textout_ex(screen,font,"La partie commence dans quelques secondes",155,330,bleuclair,-1);
  441.  
  442.  
  443.  
  444.  
  445.    }
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.    rest(2000);
  453.  
  454.  
  455.  
  456. }
  457.  
  458.  
  459. void grille(void)
  460. {
  461.    rectfill(screen, 150, 150, X-150, Y-50, bleu);
  462.  
  463.  
  464.    for(x = 200; x < X-100; x = x + 100)
  465.    {
  466.        for(q = 200; q < Y-50; q = q + 100)
  467.        {
  468.        circlefill(screen, x, q, 40, noir);
  469.        }
  470.    }
  471. }
  472.  
  473.  
  474.  
  475. int puissance4( int puissance)
  476. {
  477.    int k;
  478.    int a,b;
  479.    int i,j;
  480.  
  481.    if(puissance!=4)
  482.    {
  483.        puissance=1;
  484.        i=5;
  485.        j=0;
  486.  
  487.  
  488.       // for(i=0;i<=5;i++)
  489.        //{
  490.           // for(j=0;j<=6;j++)
  491.           // {
  492.                if(tab[i][j]==1)
  493.                {
  494.  
  495.  
  496.                    for(k=0;k<=3;k++)
  497.                    {
  498.                        a=A[k];
  499.                        b=B[k];
  500.  
  501.                        while((tab[i+a][j+b]==1)&&(puissance<4))
  502.                        {
  503.                            i+=a;
  504.                            j+=b;
  505.                        }
  506.  
  507.                        while((tab[i-a][j-b]==1)&&(puissance<4))
  508.                        {
  509.                            puissance++;
  510.                            i-=a;
  511.                            j-=b;
  512.                        }
  513.  
  514.  
  515.                    }
  516.                }
  517.           // }
  518.        //}
  519.    }
  520.  
  521.  
  522.    if((puissance!=4))
  523.    {
  524.        puissance=3;
  525.        i=5;
  526.        j=1;
  527.  
  528.        //for(i=0;i<=5;i++)
  529.        //{
  530.           // for(j=0;j<=6;j++)
  531.           // {
  532.                if(tab[i][j]==2)
  533.                {
  534.  
  535.  
  536.                    for(k=0;k<=3;k++)
  537.                    {
  538.                        a=A[k];
  539.                        b=B[k];
  540.                        while((tab[i+a][j+b]==2)&&(puissance<4))
  541.                        {
  542.                            i+=a;
  543.                            j+=b;
  544.                        }
  545.  
  546.                        while((tab[i-a][j-b]==2)&&(puissance<4))
  547.                        {
  548.                            puissance--;
  549.                            i-=a;
  550.                            j-=b;
  551.                        }
  552.  
  553.  
  554.                    }
  555.                }
  556.            //}
  557.       // }
  558.    }
  559.  
  560.    return(puissance);
  561.  
  562.  
  563. }
  564.  
  565. /*
  566. void ordinateur(void)
  567. {
  568.    ordi=aleatoire(1,7);
  569.  
  570.  
  571.  
  572.  
  573.    if(ordi==1)
  574.    {
  575.        circlefill(screen, 200, n1, 40, couleur);
  576.        circle(screen, 200, n1, 35, noir);
  577.        n1 = n1 - 100;
  578.        tab[ligne1][colonne1]=1;
  579.        i=ligne1;
  580.        j=colonne1;
  581.        ligne1--;
  582.        rest(100);
  583.  
  584.    }
  585.  
  586.    if(ordi==2)
  587.    {
  588.        circlefill(screen, 300, n2, 40, couleur);
  589.        circle(screen, 300, n2, 35, noir);
  590.        n2 = n2 - 100;
  591.        tab[ligne2][colonne2]=1;
  592.        i=ligne2;
  593.        j=colonne2;
  594.        ligne2--;
  595.        rest(100);
  596.    }
  597.  
  598.    if(ordi==3)
  599.    {
  600.        circlefill(screen, 400, n3, 40, couleur);
  601.        circle(screen, 400, n3, 35, noir);
  602.        n3 = n3 - 100;
  603.        tab[ligne3][colonne3]=1;
  604.        i=ligne3;
  605.        j=colonne3;
  606.        ligne3--;
  607.        rest(100);
  608.    }
  609.  
  610.    if(ordi==4)
  611.    {
  612.        circlefill(screen, 500, n4, 40, couleur);
  613.        circle(screen, 500, n4, 35, noir);
  614.        n4 = n4 - 100;
  615.        tab[ligne4][colonne4]=1;
  616.        i=ligne4;
  617.        j=colonne4;
  618.        ligne4--;
  619.        rest(100);
  620.    }
  621.  
  622.    if(ordi==5)
  623.    {
  624.        circlefill(screen, 600, n5, 40, couleur);
  625.        circle(screen, 600, n5, 35, noir);
  626.        n5 = n5 - 100;
  627.        tab[ligne5][colonne5]=1;
  628.        i=ligne5;
  629.        j=colonne5;
  630.        ligne5--;
  631.        rest(100);
  632.    }
  633.  
  634.    if(ordi==6)
  635.    {
  636.        circlefill(screen, 700, n6, 40, couleur);
  637.        circle(screen, 700, n6, 35, noir);
  638.        n6 = n6 - 100;
  639.        tab[ligne6][colonne6]=1;
  640.        i=ligne6;
  641.        j=colonne6;
  642.        ligne6--;
  643.        rest(100);
  644.    }
  645.  
  646.    if(ordi==7)
  647.    {
  648.        circlefill(screen, 800, n7, 40, couleur);
  649.        circle(screen, 800, n7, 35, noir);
  650.        n7 = n7 - 100;
  651.        tab[ligne7][colonne7]=1;
  652.        i=ligne7;
  653.        j=colonne7;
  654.        ligne7--;
  655.        rest(100);
  656.    }
  657.  
  658.  
  659.    }
  660.  
  661.  
  662.  
  663. */


Message édité par flo38c le 07-06-2009 à 08:11:15
mood
Publicité
Posté le 06-06-2009 à 21:05:22  profilanswer
 

n°1892068
Emmanuel D​elahaye
C is a sharp tool
Posté le 06-06-2009 à 22:00:22  profilanswer
 

Merci d'utiliser les balises de code. Tu peux modifier ton message ...

 

Ton code est incomplet. (Tout le monde n'a pas 'allegro'...)

 

-------------- Build: Debug in hello ---------------

 

Compiling: main.c
Linking console executable: bin\Debug\hello.exe
C:\dev\hello\main.c:7:21: allegro.h: No such file or directory
C:\dev\hello\main.c:9:20: tpinfo.h: No such file or directory
C:\dev\hello\main.c: In function `main':
C:\dev\hello\main.c:53: warning: implicit declaration of function `allegro_init'
C:\dev\hello\main.c:55: warning: implicit declaration of function `install_keyboard'
C:\dev\hello\main.c:57: warning: implicit declaration of function `set_color_depth'
C:\dev\hello\main.c:58: warning: implicit declaration of function `set_gfx_mode'
C:\dev\hello\main.c:58: error: `GFX_AUTODETECT_WINDOWED' undeclared (first use in this function)
C:\dev\hello\main.c:58: error: (Each undeclared identifier is reported only once
C:\dev\hello\main.c:58: error: for each function it appears in.)
C:\dev\hello\main.c:63: warning: implicit declaration of function `makecol'
C:\dev\hello\main.c:87: warning: implicit declaration of function `clear_to_color'
C:\dev\hello\main.c:87: error: `screen' undeclared (first use in this function)
C:\dev\hello\main.c:112: warning: implicit declaration of function `readkey'
C:\dev\hello\main.c:123: warning: implicit declaration of function `circlefill'
C:\dev\hello\main.c:124: warning: implicit declaration of function `circle'
C:\dev\hello\main.c:130: warning: implicit declaration of function `rest'
C:\dev\hello\main.c:321: warning: implicit declaration of function `textout_ex'
C:\dev\hello\main.c:321: error: `font' undeclared (first use in this function)
C:\dev\hello\main.c:334: error: `key' undeclared (first use in this function)
C:\dev\hello\main.c:334: error: `KEY_ESC' undeclared (first use in this function)
C:\dev\hello\main.c: At top level:
C:\dev\hello\main.c:357: warning: return type defaults to `int'
C:\dev\hello\main.c:357: warning: function declaration isn't a prototype
C:\dev\hello\main.c: In function `END_OF_MAIN':
C:\dev\hello\main.c:358: error: syntax error before '{' token
C:\dev\hello\main.c:477: error: syntax error before "for"
Process terminated with status 1 (0 minutes, 1 seconds)
11 errors, 13 warnings


Message édité par Emmanuel Delahaye le 06-06-2009 à 22:02:08

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1892069
flo38c
Posté le 06-06-2009 à 22:05:38  profilanswer
 

Les balises du code?
 
C'est a dire?

n°1892070
Elmoricq
Modérateur
Posté le 06-06-2009 à 22:06:57  profilanswer
 

Je viens de te les ajouter. Ce sont des balises du forum qui permettent de rendre le code lisible.

 

Par ailleurs, merci de détailler le problème et si possible de l'isoler. Là comme ça, j'ai pas trop envie de le lire et encore moins de le comprendre.


Message édité par Elmoricq le 06-06-2009 à 22:08:23
n°1892074
flo38c
Posté le 06-06-2009 à 22:13:28  profilanswer
 

Merci ^^
 
En gros le problème vient de ma fonction puissance4
 
Je la définit comme celà : int puissance4(int)
Je fais l'appelle de la fonction comme ceci : puissance=puissance4(puissance);
 
Jusque là tout est bon
 
Mais je pense que c'est ce qui est dedant qui ne va pas mais je ne sais pas encore quoi.  
 
Merci d'avance  
 
 
 

Code :
  1. int puissance4( int puissance)
  2. {
  3.     int k;
  4.     int a,b;
  5.     int i,j;
  6.     if(puissance!=4)
  7.     {
  8.         puissance=1;
  9.         i=5;
  10.         j=0;
  11.        // for(i=0;i<=5;i++)
  12.         //{
  13.            // for(j=0;j<=6;j++)
  14.            // {
  15.                 if(tab[i][j]==1)
  16.                 {
  17.                     for(k=0;k<=3;k++)
  18.                     {
  19.                         a=A[k];
  20.                         b=B[k];
  21.                         while((tab[i+a][j+b]==1)&&(puissance<4))
  22.                         {
  23.                             i+=a;
  24.                             j+=b;
  25.                         }
  26.                         while((tab[i-a][j-b]==1)&&(puissance<4))
  27.                         {
  28.                             puissance++;
  29.                             i-=a;
  30.                             j-=b;
  31.                         }
  32.                     }
  33.                 }
  34.            // }
  35.         //}
  36.     }
  37.     if((puissance!=4))
  38.     {
  39.         puissance=3;
  40.         i=5;
  41.         j=1;
  42.         //for(i=0;i<=5;i++)
  43.         //{
  44.            // for(j=0;j<=6;j++)
  45.            // {
  46.                 if(tab[i][j]==2)
  47.                 {
  48.                     for(k=0;k<=3;k++)
  49.                     {
  50.                         a=A[k];
  51.                         b=B[k];
  52.                         while((tab[i+a][j+b]==2)&&(puissance<4))
  53.                         {
  54.                             i+=a;
  55.                             j+=b;
  56.                         }
  57.                         while((tab[i-a][j-b]==2)&&(puissance<4))
  58.                         {
  59.                             puissance--;
  60.                             i-=a;
  61.                             j-=b;
  62.                         }
  63.                     }
  64.                 }
  65.             //}
  66.        // }
  67.     }
  68.     return(puissance);
  69. }


Message édité par flo38c le 07-06-2009 à 08:12:29
n°1892081
flo38c
Posté le 06-06-2009 à 22:26:58  profilanswer
 

Pour plus de simplicité j'ai fait un autre programme : j'ai des valeurs dans un tableau. Je fais un appel de ma fonction puissance4 et enfin je lui demande d'afficher la valeur de la variable puissance
 
Mais rien ne s'affiche
 
 

Code :
  1. /*****************************************************************************
  2. * projet.c
  3. *****************************************************************************
  4. */
  5. #include <math.h>
  6. #include <tpinfo.h>
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9.     int puissance4(int);
  10.     int puissance=1;
  11.     int ligne1,ligne2,ligne3,ligne4,ligne5,ligne6,ligne7;
  12.     int colonne1,colonne2,colonne3,colonne4,colonne5,colonne6,colonne7;
  13.     int tab[6][7]={{0,0,0,0,0,0,0},
  14.                    {0,0,0,0,0,0,0},
  15.                    {0,0,0,0,0,0,0},
  16.                    {1,0,0,0,0,1,0},
  17.                    {1,0,0,0,1,0,0},
  18.                    {1,2,2,1,2,0,0}};
  19.     int x,y;
  20.     int saisie;
  21.     int A[4]={0,-1,-1,-1};
  22.     int B[4]={1,0,1,-1};
  23.     int a,b;
  24.     int copiei,copiej;
  25. int main(void)
  26. {
  27.         for(x=0;x<=5;x++)
  28.         {
  29.             printf("\n" );
  30.             printf("\n" );
  31.             for(y=0;y<=6;y++)
  32.             {
  33.                 printf(" %d   ", tab[x][y]);
  34.             }
  35.         }
  36.         puissance=puissance4(puissance);
  37.         printf("\n" );
  38.         printf("\n" );
  39.         printf("\n" );
  40.         printf("\n" );
  41.         printf("\npuissance = %d",puissance);
  42.         printf("\n" );
  43.         printf("\n" );
  44.     return 0;
  45. }
  46. int puissance4( int puissance)
  47. {
  48.     int k;
  49.     int a,b;
  50.     int i,j;
  51.     if(puissance!=4)
  52.     {
  53.         puissance=1;
  54.         i=5;
  55.         j=0;
  56.        // for(i=0;i<=5;i++)
  57.         //{
  58.            // for(j=0;j<=6;j++)
  59.            // {
  60.                 if(tab[i][j]==1)
  61.                 {
  62.                     for(k=0;k<=3;k++)
  63.                     {
  64.                         a=A[k];
  65.                         b=B[k];
  66.                         while((tab[i+a][j+b]==1)&&(puissance<4))
  67.                         {
  68.                             i+=a;
  69.                             j+=b;
  70.                         }
  71.                         while((tab[i-a][j-b]==1)&&(puissance<4))
  72.                         {
  73.                             puissance++;
  74.                             i-=a;
  75.                             j-=b;
  76.                         }
  77.                     }
  78.                 }
  79.            // }
  80.         //}
  81.     }
  82.     if((puissance!=4))
  83.     {
  84.         puissance=3;
  85.         i=5;
  86.         j=1;
  87.         //for(i=0;i<=5;i++)
  88.         //{
  89.            // for(j=0;j<=6;j++)
  90.            // {
  91.                 if(tab[i][j]==2)
  92.                 {
  93.                     for(k=0;k<=3;k++)
  94.                     {
  95.                         a=A[k];
  96.                         b=B[k];
  97.                         while((tab[i+a][j+b]==2)&&(puissance<4))
  98.                         {
  99.                             i+=a;
  100.                             j+=b;
  101.                         }
  102.                         while((tab[i-a][j-b]==2)&&(puissance<4))
  103.                         {
  104.                             puissance--;
  105.                             i-=a;
  106.                             j-=b;
  107.                         }
  108.                     }
  109.                 }
  110.             //}
  111.        // }
  112.     }
  113.     return(puissance);
  114. }


Message édité par flo38c le 07-06-2009 à 08:13:00
n°1892123
flo38c
Posté le 07-06-2009 à 10:52:14  profilanswer
 

S'il vous plait aidez moi là je réfléchit dessus depuis 2 semaines et je ne trouve pas la solution.

n°1892128
ptitchep
Posté le 07-06-2009 à 11:47:22  profilanswer
 

Salut
 
Ton idée d'avancer dans le tableau tant que la valeur reste la même puis de reculer n'est pas mal je trouve. Mais,
 
Ta condition (puissance<4) est inutile dans la première boucle vu que tu ne modifies pas cette variable.
Tu ne vérifies jamais tes indices. Dès le deuxième while, on a while((tab[i-a][j-b]==1)&&(puissance<4)) et pourtant j=0 et b=1. Utilise un debugger.
Je ne comprends pas la deuxième partie de la fonction. Par exemple tu initialises puissance à 3, tu ne fais que des puissance-- et pourtant ta condition est (puissance<4). Je ne sais pas ce que tu as voulu faire mais je pense qu'il y a un problème de raisonnement.
L'utilisation d'un debugger te permettrait de trouver les différences entre ce que tu penses que ton programme fait et ce qu'il réalise vraiment.
 
C'est dans quel IUT que les variables sont déclarées globalement?


---------------
deluser --remove-home ptitchep
n°1892178
flo38c
Posté le 07-06-2009 à 15:54:11  profilanswer
 

Dans la deuxième partie je veux détecter le puissance 4 du deuxième joueur et c'est donc pour celà que je n'incrémente pas de la même manière. Mais au fait je viens de réaliser que je pouvais faire autrement. D'ailleurs je vais le faire de suite et je posterais la nouvelle version
 
Sinon pour les variables globales c'est moi qui déconne je vais les passer dans le main
 
Merci pour tout

n°1892198
flo38c
Posté le 07-06-2009 à 17:34:36  profilanswer
 

Toujours un probleme : mon puissance 4 est très mal detecté
 
 
 

Code :
  1. /*****************************************************************************
  2. * projet.c
  3. *****************************************************************************
  4. */
  5. #include <allegro.h>
  6. #include <math.h>
  7. #include <tpinfo.h>
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10.     int puissance4(int);
  11.     void initialisation(void);
  12.     void presentation(void);
  13.     void grille (void);
  14.     //void ordinateur(void);
  15.      int tab[8][9]={{0,0,0,0,0,0,0,0,0},
  16.                    {0,0,0,0,0,0,0,0,0},
  17.                    {0,0,0,0,0,0,0,0,0},
  18.                    {0,0,0,0,0,0,0,0,0},
  19.                    {0,0,0,0,0,0,0,0,0},
  20.                    {0,0,0,0,0,0,0,0,0},
  21.                    {0,0,0,0,0,0,0,0,0},
  22.                    {0,0,0,0,0,0,0,0,0}};
  23. int main(void)
  24. {
  25.     int puissance;
  26.     int touche;
  27.      int bleu,blanc,noir,jaune,rouge,gris, bleuclair;
  28.     const int X = 2*500;//1100;
  29.     const int Y = 2*400;//900;
  30.     int score1,score2;
  31.     int ligne1,ligne2,ligne3,ligne4,ligne5,ligne6,ligne7;
  32.     int colonne1,colonne2,colonne3,colonne4,colonne5,colonne6,colonne7;
  33.     int n1, n2,n3,n4,n5,n6,n7;
  34.     int i,j;
  35.     int modulo, compteur;
  36.     allegro_init();
  37.     install_keyboard();
  38.     set_color_depth(32);
  39.     set_gfx_mode(GFX_AUTODETECT_WINDOWED, X, Y, 0, 0);
  40.     ligne1=ligne2=ligne3=ligne4=ligne5=ligne6=ligne7=5;
  41.     colonne1=colonne2=colonne3=colonne4=colonne5=colonne6=colonne7=0;
  42.     n1=n2=n3=n4=n5=n6=n7=700;
  43.     bleu = makecol(0, 0, 255);
  44.     blanc = makecol(255, 255, 255);
  45.     noir = makecol(0, 0, 0);
  46.     jaune = makecol(255, 255, 0);
  47.     rouge = makecol(255, 0, 0);
  48.     gris=makecol(40,35,40);
  49.     bleuclair=makecol(125,125,255);
  50.     colonne1=1;
  51.     colonne2=2;
  52.     colonne3=3;
  53.     colonne4=4;
  54.     colonne5=5;
  55.     colonne6=6;
  56.     colonne7=7;
  57.     score1=score2=0;
  58.     clear_to_color(screen, noir);
  59.     presentation();
  60.     grille();
  61. while(1)                             //boucle sans fin
  62. {
  63.     if(compteur==41)
  64.     {
  65.         initialisation();
  66.         grille();
  67.     }
  68.     for(compteur=0;compteur<=41;compteur++)   //servira pour faire un coup au jaune, un coup au rouge
  69.     {
  70.         modulo = compteur % 2;
  71.         touche = readkey();              //on attends la saise d'une touche
  72.         if(modulo==0)          //le premier joueur va jouer
  73.         {
  74.             if(((touche & 0xff) =='a')&&(ligne1>=1)&&(ligne1<=6))  //si l'on appuie sur la touche A on met un pion jaune dans la premiere colonne
  75.             {
  76.                 circlefill(screen, 200, n1, 40, jaune);     //on met le pion
  77.                 circle(screen, 200, n1, 35, noir);            // un cercle simple pour le design
  78.                 n1 -= 100;                                //on décremente n1 de 100 pour que la prochaine fois le pion se mette sur la 2eme ligne
  79.                 tab[ligne1][colonne1]=1;                 //on met 1 au bon endroit dans le tableau deux dimensions
  80.                 i=ligne1;
  81.                 j=colonne1;                             // i et j prenne les valeurs de ligne1 et colonnee1 pour aider a la detection du puissance 4
  82.                 ligne1--;                              // on decremente ligne1 pour que la prochaine fois l'on rentre 1 ou 2 (joeur 2) au bon endroit dans le tableau
  83.                 rest(100);                           // petit délai d'attente
  84.             }
  85.             if(((touche & 0xff) =='z')&&(ligne2>=1)&&(ligne2<=6))   //si l'on appuie sur la touche Z on met un pion jaune dans la 2eme colonne
  86.             {
  87.                 circlefill(screen, 300, n2, 40, jaune);
  88.                 circle(screen, 300, n2, 35, noir);
  89.                 n2 = n2 - 100;                                       //memes commentaires que précédemment
  90.                 tab[ligne2][colonne2]=1;
  91.                 i=ligne2;
  92.                 j=colonne2;
  93.                 ligne2--;
  94.                 rest(100);
  95.            }
  96.             if(((touche & 0xff) =='e')&&(ligne3>=1)&&(ligne3<=6))
  97.             {
  98.                 circlefill(screen, 400, n3, 40, jaune);
  99.                 circle(screen, 400, n3, 35, noir);
  100.                 n3 = n3 - 100;
  101.                 tab[ligne3][colonne3]=1;
  102.                 i=ligne3;
  103.                 j=colonne3;
  104.                 ligne3--;
  105.                 rest(100);
  106.             }
  107.             if(((touche & 0xff) =='r')&&(ligne4>=1)&&(ligne4<=6))
  108.             {
  109.                 circlefill(screen, 500, n4, 40, jaune);
  110.                 circle(screen, 500, n4, 35, noir);
  111.                 n4 = n4 - 100;
  112.                 tab[ligne4][colonne4]=1;
  113.                 i=ligne4;
  114.                 j=colonne4;
  115.                 ligne4--;
  116.                 rest(100);
  117.             }
  118.             if(((touche & 0xff) =='t')&&(ligne5>=1)&&(ligne5<=6))
  119.             {
  120.                 circlefill(screen, 600, n5, 40, jaune);
  121.                 circle(screen, 600, n5, 35, noir);
  122.                 n5 = n5 - 100;
  123.                 tab[ligne5][colonne5]=1;
  124.                 i=ligne5;
  125.                 j=colonne5;
  126.                 ligne5--;
  127.                 rest(100);
  128.             }
  129.             if(((touche & 0xff) =='y')&&(ligne6>=1)&&(ligne6<=6))
  130.             {
  131.                 circlefill(screen, 700, n6, 40, jaune);
  132.                 circle(screen, 700, n6, 35, noir);
  133.                 n6 = n6 - 100;
  134.                 tab[ligne6][colonne6]=1;
  135.                 i=ligne6;
  136.                 j=colonne6;
  137.                 ligne6--;
  138.                 rest(100);
  139.             }
  140.             if(((touche & 0xff) =='u')&&(ligne7>=1)&&(ligne7<=6))
  141.             {
  142.                 circlefill(screen, 800, n7, 40, jaune);
  143.                 circle(screen, 800, n7, 35, noir);
  144.                 n7 = n7 - 100;
  145.                 tab[ligne7][colonne7]=1;
  146.                 i=ligne7;
  147.                 j=colonne7;
  148.                 ligne7--;
  149.                 rest(100);
  150.             }
  151.         }
  152.         else
  153.         {
  154.             if(((touche & 0xff) =='a')&&(ligne1>=1)&&(ligne1<=6))
  155.             {
  156.                 circlefill(screen, 200, n1, 40, rouge);
  157.                 circle(screen, 200, n1, 35, noir);
  158.                 n1 = n1 - 100;
  159.                 tab[ligne1][colonne1]=2;
  160.                 i=ligne1;
  161.                 j=colonne1;
  162.                 ligne1--;
  163.                 rest(100);
  164.             }
  165.             if(((touche & 0xff) =='z')&&(ligne2>=1)&&(ligne2<=6))
  166.             {
  167.                 circlefill(screen, 300, n2, 40, rouge);
  168.                 circle(screen, 300, n2, 35, noir);
  169.                 n2 = n2 - 100;
  170.                 tab[ligne2][colonne2]=2;
  171.                 i=ligne2;
  172.                 j=colonne2;
  173.                 ligne2--;
  174.                 rest(100);
  175.             }
  176.             if(((touche & 0xff) =='e')&&(ligne3>=1)&&(ligne3<=6))
  177.             {
  178.                 circlefill(screen, 400, n3, 40, rouge);
  179.                 circle(screen, 400, n3, 35, noir);
  180.                 n3 = n3 - 100;
  181.                 tab[ligne3][colonne3]=2;
  182.                 i=ligne3;
  183.                 j=colonne3;
  184.                 ligne3--;
  185.                 rest(100);
  186.             }
  187.             if(((touche & 0xff) =='r')&&(ligne4>=1)&&(ligne4<=6))
  188.             {
  189.                 circlefill(screen, 500, n4, 40, rouge);
  190.                 circle(screen, 500, n4, 35, noir);
  191.                 n4 = n4 - 100;
  192.                 tab[ligne4][colonne4]=2;
  193.                 i=ligne4;
  194.                 j=colonne4;
  195.                 ligne4--;
  196.                 rest(100);
  197.             }
  198.             if(((touche & 0xff) =='t')&&(ligne5>=1)&&(ligne5<=6))
  199.             {
  200.                 circlefill(screen, 600, n5, 40, rouge);
  201.                 circle(screen, 600, n5, 35, noir);
  202.                 n5 = n5 - 100;
  203.                 tab[ligne5][colonne5]=2;
  204.                 i=ligne5;
  205.                 j=colonne5;
  206.                 ligne5--;
  207.                 rest(100);
  208.             }
  209.             if(((touche & 0xff) =='y')&&(ligne6>=1)&&(ligne6<=6))
  210.             {
  211.                 circlefill(screen, 700, n6, 40, rouge);
  212.                 circle(screen, 700, n6, 35, noir);
  213.                 n6 = n6 - 100;
  214.                 tab[ligne6][colonne6]=2;
  215.                 i=ligne6;
  216.                 j=colonne6;
  217.                 ligne6--;
  218.                 rest(100);
  219.             }
  220.             if(((touche & 0xff) =='u')&&(ligne7>=1)&&(ligne7<=6))
  221.             {
  222.                 circlefill(screen, 800, n7, 40, rouge);
  223.                 circle(screen, 800, n7, 35, noir);
  224.                 n7 = n7 - 100;
  225.                 tab[ligne7][colonne7]=2;
  226.                 i=ligne7;
  227.                 j=colonne7;
  228.                 ligne7--;
  229.                 rest(100);
  230.             }
  231.         puissance = puissance4(puissance);    //appel de la fonction puissance4
  232.         }
  233.          if((puissance==4)&&(modulo==0))  // si puissance = 4 alors le joueur 1 a gagné
  234.             {
  235.                 textout_ex(screen,font,"Le joueur 1 a gagne",450,100,rouge,10);
  236.                 rest(2000);
  237.                 textout_ex(screen,font,"Le joueur 1 a gagne",450,100,noir,10);
  238.                 score1++;
  239.                 initialisation();
  240.                 grille();
  241.             }
  242.             if((puissance==4)&&(modulo==1))   // si puissance = 4 alors le joueur 2 a gagné
  243.             {
  244.                 textout_ex(screen,font,"Le joueur 2 a gagne",450,100,rouge,10);
  245.                 rest(2000);
  246.                 textout_ex(screen,font,"Le joueur 2 a gagne",450,100,noir,10);
  247.                 score2++;
  248.                 initialisation();
  249.                 grille();
  250.             }
  251.             if(key[KEY_ESC])   // a tout moment on peut appuyer sur Echap pour quitter
  252.             {
  253.                 return(0);
  254.             }
  255.     }
  256. }
  257.     return 0;
  258. }
  259. END_OF_MAIN()
  260. void presentation(void)
  261. {
  262.     int q,degrade;
  263.     int gris,noir,rouge,blanc;
  264.     const int X = 2*500;//1100;
  265.     const int Y = 2*400;//900;
  266.     int x;
  267.     int choix;
  268.     blanc = makecol(255, 255, 255);
  269.     noir = makecol(0, 0, 0);
  270.     rouge = makecol(255, 0, 0);
  271.     gris=makecol(40,35,40);
  272.     rectfill(screen, 150, 150, X-150, Y-50, gris);
  273.     q=0;
  274.     for(x=0;x<430;x++)    // compteur pour afficher un texte qui se déplace
  275.     {
  276.         degrade=makecol(q,q,q);
  277.         textout_ex(screen,font,"Flo Production",x-1,15,noir,10);
  278.         textout_ex(screen,font,"Flo Production",x,15,rouge,10);
  279.         textout_ex(screen,font,"presente :",-x+881,35,noir,10);
  280.         textout_ex(screen,font,"presente :",-x+880,35,rouge,10);
  281.         textout_ex(screen,font,"Le Puissance 4",450,75,degrade,10);
  282.         rest(4);
  283.     }
  284.     textout_ex(screen,font,"L",420,70,blanc,10);
  285.     rest(185);
  286.     textout_ex(screen,font,"e",430,70,blanc,10);
  287.     textout_ex(screen,font," ",440,70,blanc,10);
  288.     rest(185);
  289.     textout_ex(screen,font,"P",450,70,blanc,10);
  290.     rest(185);
  291.     textout_ex(screen,font,"u",460,70,blanc,10);
  292.     rest(185);
  293.     textout_ex(screen,font,"i",470,70,blanc,10);
  294.     rest(185);                                          //pour mettre puissance4 manière machine a ecrire
  295.     textout_ex(screen,font,"s",480,70,blanc,10);
  296.     rest(185);
  297.     textout_ex(screen,font,"s",490,70,blanc,10);
  298.      rest(185);
  299.     textout_ex(screen,font,"a",500,70,blanc,10);
  300.     rest(185);
  301.     textout_ex(screen,font,"n",510,70,blanc,10);
  302.     rest(185);
  303.     textout_ex(screen,font,"c",520,70,blanc,10);
  304.     rest(185);
  305.     textout_ex(screen,font,"e",530,70,blanc,10);
  306.     textout_ex(screen,font," ",540,70,blanc,10);
  307.     rest(185);
  308.     textout_ex(screen,font,"4",550,70,blanc,10);
  309.     rest(185);
  310.     textout_ex(screen,font," Pour jouer seul taper S, pour jouer a deux taper D :",146,170,rouge,-1);
  311.     choix=readkey();
  312.     if((choix & 0xff) =='d')        //on peut choisir de joueur à 2
  313.     {
  314.         textout_ex(screen,font,"Vous avez choisit de jouer a deux joueurs",155,210,blanc,-1);
  315.         rest(700);
  316.         textout_ex(screen,font,"La partie commence dans quelques secondes",155,250,rouge,-1);
  317.     }
  318.     if((choix & 0xff) =='s')                //ou seul : dans ce cas on a 3 choix :
  319.     {
  320.         textout_ex(screen,font,"Vous avez choisit de jouer contre l'ordinateur",155,210,blanc,-1);
  321.         rest(700);
  322.         textout_ex(screen,font,"Tapez F pour jouer en facile, I pour intermediaire ou D pour difficile",155,250,rouge,-1);
  323.         choix=readkey();
  324.         if((choix & 0xff) =='f')       //jouer en mode facile
  325.         {
  326.             textout_ex(screen,font,"Vous avez choisit de jouer en mode facile",155,290,blanc,-1);
  327.         }
  328.         if((choix & 0xff) =='i')        //intermédiaire
  329.         {
  330.             textout_ex(screen,font,"Vous avez choisit de jouer en mode intermediaire",155,290,blanc,-1);
  331.         }
  332.         if((choix & 0xff) =='d')            //ou difficile
  333.         {
  334.             textout_ex(screen,font,"Vous avez choisit de jouer en mode difficile",155,290,blanc,-1);
  335.         }
  336.         rest(700);
  337.         textout_ex(screen,font,"La partie commence dans quelques secondes",155,330,rouge,-1);
  338.     }
  339.     rest(2000);
  340. }
  341. void grille(void)    //dessine la grille du puissance 4
  342. {
  343.     int bleu,noir,rouge,jaune;
  344.     const int X = 2*500;//1100;
  345.     const int Y = 2*400;//900;
  346.     int x,q;
  347.     int score1,score2;
  348.     bleu = makecol(0, 0, 255);
  349.     noir = makecol(0, 0, 0);
  350.     jaune = makecol(255, 255, 0);
  351.     rouge = makecol(255, 0, 0);
  352.     rectfill(screen, 150, 150, X-150, Y-50, bleu);   //rectangle bleu
  353.     for(x = 200; x < X-100; x = x + 100)     //2 boucles for imbriqués pour les ronds noirs
  354.     {
  355.         for(q = 200; q < Y-50; q = q + 100)
  356.         {
  357.             circlefill(screen, x, q, 40, noir);
  358.         }
  359.     }
  360.     circlefill(screen, 60, 400, 60, rouge);
  361.     circle(screen, 60, 400, 50, noir);
  362.     textprintf_ex(screen,font,60,400,noir,-1,"%d",score1); // on affiche la valeur de la variable
  363.     circlefill(screen, 60, 550, 60, jaune);
  364.     circle(screen, 60, 550, 50, noir);
  365.     textprintf_ex(screen,font,60,550,noir,-1,"%d",score2); // on affiche la valeur de la variable
  366. }
  367. int puissance4( int puissance)
  368. {
  369.     int k;
  370.     int a,b;
  371.     int i,j;
  372.     puissance=1;
  373.     int A[8]={0,-1,-1,-1,0,1,1,1};
  374.     int B[8]={1,0,1,-1,-1,0,-1,1};
  375.     for(i=1;(i<=6)&&(puissance<4);i++)
  376.     {
  377.                 for(k=0;(k<=7)&&(puissance<4);k++)
  378.                 {
  379.                     puissance=1;
  380.                     a=A[k];
  381.                     b=B[k];
  382.                     while((tab[i+a][j+b]==1)&&(puissance<4))
  383.                     {
  384.                         i+=a;
  385.                         j+=b;
  386.                     }
  387.                     while((tab[i-a][j-b]==1)&&(puissance<4))
  388.                     {
  389.                         puissance++;
  390.                         i-=a;
  391.                         j-=b;
  392.                     }
  393.                 }
  394.     }
  395.     if((puissance!=4))
  396.     {
  397.         puissance=1;
  398.                 if((tab[i][j]==2)&&(puissance<4))
  399.                 {
  400.                     for(k=0;(k<=7)&&(puissance<4);k++)
  401.                     {
  402.                         puissance=1;
  403.                         a=A[k];
  404.                         b=B[k];
  405.                         while((tab[i+a][j+b]==2)&&(puissance<4))
  406.                         {
  407.                             i+=a;
  408.                             j+=b;
  409.                         }
  410.                         while((tab[i-a][j-b]==2)&&(puissance<4))
  411.                         {
  412.                             puissance++;
  413.                             i-=a;
  414.                             j-=b;
  415.                         }
  416.                     }
  417.                 }
  418.     }
  419.     return(puissance);
  420. }
  421. void initialisation(void)
  422. {
  423.     int puissance;
  424.     int ligne1,ligne2,ligne3,ligne4,ligne5,ligne6,ligne7;
  425.     int colonne1,colonne2,colonne3,colonne4,colonne5,colonne6,colonne7;
  426.     int n1, n2,n3,n4,n5,n6,n7;
  427.     int i,j;
  428.     int choix,compteur;
  429.     ligne1=ligne2=ligne3=ligne4=ligne5=ligne6=ligne7=5;
  430.     colonne1=colonne2=colonne3=colonne4=colonne5=colonne6=colonne7=0;
  431.     n1=n2=n3=n4=n5=n6=n7=700;
  432.     for(i=0;i<=5;i++)
  433.     {
  434.         for(j=0;j<=6;j++)
  435.         {
  436.             tab[i][j]=0;
  437.         }
  438.     }
  439.     choix=0;
  440.     i=0;
  441.     j=0;
  442.     compteur=0;
  443.     puissance=1;
  444. }
  445. /*
  446. void ordinateur(void)
  447. {
  448.     ordi=aleatoire(1,7);
  449.     if(ordi==1)
  450.     {
  451.         circlefill(screen, 200, n1, 40, couleur);
  452.         circle(screen, 200, n1, 35, noir);
  453.         n1 = n1 - 100;
  454.         tab[ligne1][colonne1]=1;
  455.         i=ligne1;
  456.         j=colonne1;
  457.         ligne1--;
  458.         rest(100);
  459.     }
  460.     if(ordi==2)
  461.     {
  462.         circlefill(screen, 300, n2, 40, couleur);
  463.         circle(screen, 300, n2, 35, noir);
  464.         n2 = n2 - 100;
  465.         tab[ligne2][colonne2]=1;
  466.         i=ligne2;
  467.         j=colonne2;
  468.         ligne2--;
  469.         rest(100);
  470.     }
  471.     if(ordi==3)
  472.     {
  473.         circlefill(screen, 400, n3, 40, couleur);
  474.         circle(screen, 400, n3, 35, noir);
  475.         n3 = n3 - 100;
  476.         tab[ligne3][colonne3]=1;
  477.         i=ligne3;
  478.         j=colonne3;
  479.         ligne3--;
  480.         rest(100);
  481.     }
  482.     if(ordi==4)
  483.     {
  484.         circlefill(screen, 500, n4, 40, couleur);
  485.         circle(screen, 500, n4, 35, noir);
  486.         n4 = n4 - 100;
  487.         tab[ligne4][colonne4]=1;
  488.         i=ligne4;
  489.         j=colonne4;
  490.         ligne4--;
  491.         rest(100);
  492.     }
  493.     if(ordi==5)
  494.     {
  495.         circlefill(screen, 600, n5, 40, couleur);
  496.         circle(screen, 600, n5, 35, noir);
  497.         n5 = n5 - 100;
  498.         tab[ligne5][colonne5]=1;
  499.         i=ligne5;
  500.         j=colonne5;
  501.         ligne5--;
  502.         rest(100);
  503.     }
  504.     if(ordi==6)
  505.     {
  506.         circlefill(screen, 700, n6, 40, couleur);
  507.         circle(screen, 700, n6, 35, noir);
  508.         n6 = n6 - 100;
  509.         tab[ligne6][colonne6]=1;
  510.         i=ligne6;
  511.         j=colonne6;
  512.         ligne6--;
  513.         rest(100);
  514.     }
  515.     if(ordi==7)
  516.     {
  517.         circlefill(screen, 800, n7, 40, couleur);
  518.         circle(screen, 800, n7, 35, noir);
  519.         n7 = n7 - 100;
  520.         tab[ligne7][colonne7]=1;
  521.         i=ligne7;
  522.         j=colonne7;
  523.         ligne7--;
  524.         rest(100);
  525.     }
  526.     }
  527. */


Message édité par flo38c le 07-06-2009 à 17:54:37
mood
Publicité
Posté le 07-06-2009 à 17:34:36  profilanswer
 

n°1892244
flo38c
Posté le 07-06-2009 à 20:22:23  profilanswer
 

Ptitchep pour ce qui est des indices j'ai contourné le problème : j'ai fait un tableau plus grand tel qu'il y ai toujours des zéros aux extrémités.  
 
Ainsi pas de problème pour vérifier ^^
 

n°1892364
flo38c
Posté le 08-06-2009 à 07:48:40  profilanswer
 

Bon ben a midi je pars présenter mon projet inachevé. Si quelqu'un aurait une idée miraculeuse c'est le moment lol
 

n°1892422
flo38c
Posté le 08-06-2009 à 10:29:53  profilanswer
 

En tout cas merci ptitchep.
 
Il y a du monde sur ce forum pour dire ecrit comme ci et pas comme ça (couleur, style d'écriture ... ) mais pas beaucoup pour donner des remarques pertinentes

n°1892650
ptitchep
Posté le 08-06-2009 à 16:38:21  profilanswer
 

De rien.
 
Les personnes présentes sur le forum ne sont pas à ton service et ne sont pas là pour faire tes devoirs. Tu débarques deux jours avant de rendre ton projet avec un code complètement indigeste non commenté, mal présenté, et tu espères un miracle?? Tu te crois où? Tu penses que nous n'avons que ça à faire?  
Elmoricq se donne même la peine de retoucher la présentation de ton message pour que tu aies plus de chance d'obtenir une réponse et toi tu râles...


---------------
deluser --remove-home ptitchep
n°1893553
LaGuiche
Posté le 10-06-2009 à 11:56:22  profilanswer
 

J'avoue que pour un nouvel arrivant t'es pas bien poli que meme. Et puis c est vrai que donner ca 2 jours avant c'est pas facile, moi meme j'ai fait appel a l'aide de ce forum, mais c'est pas leur job de faire ton boulot (meme si certain le font en grosse partie, ce qui est super sympa de leur part :) )
Enfin, j'espere que ta presentation c'est bien passée :) (oui je t'ai demasqué petit RT :D)


---------------
[Mon Feed-Back]  

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Langage C, Projet, Puissance 4 en langage C

 

Sujets relatifs
[C] Fork et Pipe[C] Image ne s'affiche pas correctement sur un LCD
présentation de mon projet : carnet d'adressesquel langage?
Suppression auto des commentaires C/C++[C#] Communication WCF entre Silverlight 2 et LinqToSQL
[C] Ecriture/lecture de float dans un fichier[C]renverser une liste chainée
[RESOLU] [C#] [WinForms] WebBrowser et ProgressBar[Résolu] Joindre une image à un mail avec C#
Plus de sujets relatifs à : Langage C, Projet, Puissance 4 en langage C


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR