[C]programme graphique qui Bug
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

[C]programme graphique qui Bug



  1. #1
    invitee17aeca5

    [C]programme graphique qui Bug


    ------

    salut

    voila mon code (mon premier vrais programme graphique depuis que j'ai découvert TurboC ilya quelques jours), c'ets un effet plasma sous VGA, comme en qbasic
    Code : C
    Code:
    #include <stdlib.h>
    #include <stdio.h>
    #include <dos.h>
    #include <io.h>
    
    static char Palette[4*3] = {0,0,0,0,0,63,0,63,0,63,0,0};
    union REGS regset;
    struct SREGS sregs;
    
    void load13h()
    {
            regset.x.ax = 0x0013;
            int86(0x10, &regset, &regset);
    }
    void exit13h()
    {
            getch();
            regset.x.ax = 0x0003;
            int86(0x10, &regset, &regset);
    }
    void drawpx(int x, int y, int coul)
    {
            int ptr = (320*y+x);
            poke(0xA000,ptr,coul);
    }
    int getpx(int x, int y)
    {
            int ptr = (320*y+x);
            return peek(0xA000,ptr);
    }
    void pal( unsigned char i, unsigned char r, unsigned char v, unsigned char b)
    {
    
            outp(0x3c8, i);
            outp(0x3c9, r);
            outp(0x3c9, v);
            outp(0x3c9, b);
    }
    
    int main()
    {
    
    int color;
    int CA,CB,CC,CD,CE,CF,CG,CH,CI;
    long ptr;
    load13h();
            for(ptr=0; ptr<=64000;ptr++)
            {
                    color=rand()%255;
                    poke(0xA000,ptr,color);
            }
            for(ptr=0; ptr<=63679;ptr++)
            {
                    CA=peek(0xA000,ptr+321);
                    CB=peek(0xA000,ptr+320);
                    CC=peek(0xA000,ptr-321);
                    CD=peek(0xA000,ptr-320);
                    CE=peek(0xA000,ptr+319);
                    CF=peek(0xA000,ptr-319);
                    CG=peek(0xA000,ptr+1);
                    CH=peek(0xA000,ptr-1);
                    CI=peek(0xA000,ptr);
                    color = (CA+CB+CC+CD+CE+CF+CG+CH+CI)/9;
                    poke(0xA000,ptr,color);
            }
    exit13h();
    
    }

    mais voila, il me plante windows avec une opération non conforme.

    voyez vous une erreur ?

    merci, ++ Tix.

    -----

  2. #2
    invite3d7be5ae

    Re : [C]programme graphique qui Bug

    Mieux vaut apprendre la SDL, c'est portable et ça fait une jolie fenêtre de taille réglable,pas du 320*200.
    De plus, tu peux facilement gérer la souris,le joystick,le clavier....
    Sinon, essaye allegro.
    Ceci devrait t'aider : http://loka.developpez.com/tutoriel/sdl/
    Passe sous Code::Blocks,ou Dev-C++, c'est bien mieux que TurboC qui est en fenêtre Dos. http://www.codeblocks.org/
    C'est gratuit!!!
    Dev-C++ me refuse les union donc sur ton prog,je ne peux pas t'aider.

    Bonne programmation,Pole.

  3. #3
    invitee17aeca5

    Re : [C]programme graphique qui Bug

    lol, me prend pas pour un homme préhistorique, j'utilise turboC par nécessité (sur un 386 )
    et CodeBlocks, la SDL ect ne me permettent pas de faire ce que je souhaite, et surtout pas d'etyre utilisé sous dos.

    merci pour ta réponse mais une aide ciblée pour mon probleme m'aidera surement plus efficacement

    ++ Tix.

  4. #4
    invite3d7be5ae

    Re : [C]programme graphique qui Bug

    Un 386, ça existe toujours?
    Pour la palette, il me semble qu'il faut faire des interruptions pour la modifier.
    Quand ptr=0, est-ce une bonne idée de faire ptr-319?

    Pole.

  5. A voir en vidéo sur Futura
  6. #5
    invitee17aeca5

    Re : [C]programme graphique qui Bug

    ca doit etre pour ca ^^, j'avais pensé a soustraire un eligne + 1 mais pas a en ajouter, je teste des que possible, merci

    sinon, pour les 386, ca existe, je posterai peu etre un ephoto du mien pour que vous voyez lzs dégars

    ++ Tix.

  7. #6
    invitee17aeca5

    Re : [C]programme graphique qui Bug

    nonon, c'était pas ca :'(

  8. #7
    invite3d7be5ae

    Re : [C]programme graphique qui Bug

    J'imagine que tu as essayé avec ça :
    Code:
    for(ptr=0; ptr<=63679;ptr++)
            {
                    CA=peek(0xA000,ptr+321);
                    CB=peek(0xA000,ptr+320);
                    if(ptr>320)CC=peek(0xA000,ptr-321);else CC=0;
                    if(ptr>319)CD=peek(0xA000,ptr-320);else CD=0;
                    CE=peek(0xA000,ptr+319);
                    if(ptr>318)CF=peek(0xA000,ptr-319);else CF=0;
                    CG=peek(0xA000,ptr+1);
                    if(ptr>0)CH=peek(0xA000,ptr-1);else CH=0;
                    CI=peek(0xA000,ptr);
                    color = (CA+CB+CC+CD+CE+CF+CG+CH+CI)/9;
                    poke(0xA000,ptr,color);
            }
    ou ça :
    Code:
    for(ptr=321; ptr<=63679;ptr++)
            {
                    CA=peek(0xA000,ptr+321);
                    CB=peek(0xA000,ptr+320);
                    CC=peek(0xA000,ptr-321);
                    CD=peek(0xA000,ptr-320);
                    CE=peek(0xA000,ptr+319);
                    CF=peek(0xA000,ptr-319);
                    CG=peek(0xA000,ptr+1);
                    CH=peek(0xA000,ptr-1);
                    CI=peek(0xA000,ptr);
                    color = (CA+CB+CC+CD+CE+CF+CG+CH+CI)/9;
                    poke(0xA000,ptr,color);
            }
    Peut-être faut il remplacer 63679 par 63678.
    63679+321=64000
    Ce qui est la ligne 201. Mai je suis pas sûr du tout.

    Pole.

  9. #8
    invitee17aeca5

    Re : [C]programme graphique qui Bug

    haha, j'azi essayé en enlevant deux pixels de plus, rien y fait, je veu bien tester tes solutions, bien que ca me paraisse un peu lourd ... enfin, on verras bien

    merci, ++ Tix.

  10. #9
    invitee17aeca5

    Re : [C]programme graphique qui Bug

    haha, miracle, ca fonctionne ^^

    il fallait remplacer poke et peek par pokeb et peekb je ne comprend pas pourquoi dailleur ... quel est la différence ?

Discussions similaires

  1. counter strike/bug graphique
    Par invitea68ff546 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 12/01/2007, 07h36
  2. javascript : script qui bug !!!!
    Par invitee17aeca5 dans le forum Logiciel - Software - Open Source
    Réponses: 17
    Dernier message: 19/07/2005, 14h59
  3. programme du bts art graphique
    Par inviteeba7fcab dans le forum Orientation après le BAC
    Réponses: 0
    Dernier message: 07/07/2005, 15h09
  4. thermocouple qui bug
    Par invite7fd29ee0 dans le forum Électronique
    Réponses: 11
    Dernier message: 11/04/2005, 12h22
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...