SBoNK Forum liberi pensieri onomatopeici

Algoritmo dei sedicesimi

  • Messaggi
  • OFFLINE
    Gorthan
    Post: 5.128
    Registrato il: 23/06/2002

    Triumviro
    Capobranca
    Maledetto Genovese
    Clarissimus Consul
    00 04/04/2004 00:25
    Tanto per un po' di cazzeggio, perché sono stupido e perché dovrei studiare ma... Ecco l'algoritmo che ho steso in C e che userò per determinare gli scontri dei sedicesimi. L'ho steso in poco tempo, e non funziona tanto bene (ma quello ho una mezza idea che sia colpa di XP :aargh: ). Comunque guardatelo pure e se volete compilatelo e fatelo andare. Necessita di due txt, uno di nome 32.txt di almeno 32 righe e l'altro di nome soluz.txt vuoto. Questo per farvi vedere, oltre a come spreco la mia vita, che il metodo utilizzato per stabilire gli scontri del prossimo turno è totalmente avanvr. Non me ne vogliano invece gli informatici del forum, che sicuramente cazzieranno questo programmino. Certo è un divertissment, e quindi le critiche sono ben accette su come avrei potuto fare a snellire la totale casualità degli incontri.


    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #define EOL '\n'
    #define MAXSTRNG 40

    int main() {
    int caso,i,cont,duca;
    struct numeri {
    char nome[MAXSTRNG];
    int a;
    };
    struct numeri pk[31];
    for (i=0; i<32; i++) {
    pk[i].a = 0;
    }
    FILE *fpin;
    fpin = fopen("32.txt","r");
    for (i=0; i<32; i++) {
    fgets(pk[i].nome, MAXSTRNG, fpin);
    }
    fclose(fpin);
    fpin = fopen("soluz.txt","w");
    srand(time(NULL));
    for (i=0; i<16; i++) {
    for (duca=0; duca<2; duca++) {
    caso=(rand()%32);
    while (pk[caso].a != 0) {
    caso=(rand()%32)+1;
    }
    cont = 0;
    while ( (pk[caso].nome[cont] != '\n') && (pk[caso].nome[cont] != '\0') ) {
    fprintf(fpin,"%c",pk[caso].nome[cont]);
    cont++;
    }
    if (duca == 0) fprintf(fpin," vs. ");
    else fprintf(fpin,"\n");
    pk[caso].a = 1;
    }
    }
    /*getchar();*/
    }

    [Modificato da Gorthan 04/04/2004 0.29]

  • Grrodon
    00 04/04/2004 00:28
    [SM=x68125]
  • OFFLINE
    Gorthan
    Post: 5.129
    Registrato il: 23/06/2002

    Triumviro
    Capobranca
    Maledetto Genovese
    Clarissimus Consul
    00 04/04/2004 00:29
    Cosa [SM=x68125]izzi?
  • Grrodon
    00 04/04/2004 00:53
    il fatto che non ho capito niente [SM=x68094]
  • OFFLINE
    Alepk
    Post: 991
    Registrato il: 28/12/2003

    Comune mortale
    Guerriero Evroniano
    00 04/04/2004 10:28
    Re:

    Scritto da: Grrodon 04/04/2004 0.53
    il fatto che non ho capito niente [SM=x68094]

    quote
  • OFFLINE
    LK
    Post: 1.750
    Registrato il: 28/09/2001

    Bambino prodigio
    Archiatra
    Addetta alle PR
    Optimus Praetor
    00 04/04/2004 10:56
    Tsè... ma voi non siete informatici, quindi :cens: e [SM=x68110]


  • PkRensel
    00 04/04/2004 11:21
    Il programma compilato mi da' un "Segmentation fault"... purtroppo non so bene il C, quindi dovrai occuparti tu del debug :D
    [EDIT] boh, non so che dire... non funge neanche seguendo il consiglio di Gorthan.

    ### ### ###
    RENSEL
    Disegnatore - Mulattiere ComiX / Il Tempio
    Hai voluto spingerti troppo nel labirinto della mente... un labirinto con due uscite...
    Come due sono uomo e donna, due i principi del cosmo e due il bene e il male... così anche tu sarai due!

    [Modificato da PkRensel 04/04/2004 11.31]

  • OFFLINE
    ZeroBarraUno
    Post: 1.190
    Registrato il: 15/05/2003
    Guerriero Evroniano
    00 04/04/2004 19:25
    Ma dico, ne varrà la pena?
    Non è meglio un sorteggio avanvera come dici te, ma semplice semplice?


  • OFFLINE
    Gorthan
    Post: 5.135
    Registrato il: 23/06/2002

    Triumviro
    Capobranca
    Maledetto Genovese
    Clarissimus Consul
    00 04/04/2004 19:29
    Questo è un sorteggio semplice semplice. [SM=x68125]
  • OFFLINE
    ZeroBarraUno
    Post: 1.193
    Registrato il: 15/05/2003
    Guerriero Evroniano
    00 04/04/2004 19:55
    E meno male che semplice...


  • OFFLINE
    Leonard Vertighel
    Post: 1.050
    Registrato il: 02/08/2002

    Comune mortale
    Guerriero Evroniano
    00 04/04/2004 21:52

    Ma sta zitto, niubbo!
    [SM=x68125] [SM=x68125]

    Gorth, lascialo perdere... non sa quello che dice
    [SM=x68094]




    P.S. Gli dò un'occhiata e ti faccio sapere...
  • OFFLINE
    gourrypk
    Post: 80
    Registrato il: 30/03/2002

    Comune mortale
    Coolflame
    Matematico Incontinente
    Sedulus Quaestor
    00 04/04/2004 23:20
    Re:
    --
    Gorthan ha scritto:

    [...]
    struct numeri pk[31];
    for (i=0; i<32; i++) {
    pk[i].a = 0;
    [...]
    --

    Mi sa che tenti di accedere a un elemento che nel vettore non c'è: pk[31].
    Modificato da gourrypk 04/04/2004 23.25
  • OFFLINE
    PkGamer
    Post: 487
    Registrato il: 21/08/2001

    Comune mortale
    Gregario
    00 04/04/2004 23:52
    Re: Re:

    Scritto da: gourrypk 04/04/2004 23.20
    --
    Gorthan ha scritto:

    [...]
    struct numeri pk[31];
    for (i=0; i<32; i++) {
    pk.a = 0;
    [...]
    --

    Mi sa che tenti di accedere a un elemento che nel vettore non c'è: pk[31].
    Modificato da gourrypk 04/04/2004 23.25



    Già... tra le graffe devi piazzarci il numero di elementi dell'array, non l'indice massimo... quindi pk[32].

    Ciao ciao
  • OFFLINE
    Gorthan
    Post: 5.136
    Registrato il: 23/06/2002

    Triumviro
    Capobranca
    Maledetto Genovese
    Clarissimus Consul
    00 05/04/2004 17:32
    Può darsi... Cmq a me funzionava lo stesso [SM=x68094]
  • OFFLINE
    trauma...
    Post: 1.329
    Registrato il: 19/08/2001

    Comune mortale
    Guerriero Evroniano
    Fake Metallaro
    Rusticus Plebeius
    00 07/04/2004 15:53
    Sei stato davvero bravo, Gorthan [SM=x68110] Anche se un bel sorteggione in diretta chat mi sarebbe piaciuto ancora di più!;)
  • OFFLINE
    Gorthan
    Post: 5.155
    Registrato il: 23/06/2002

    Triumviro
    Capobranca
    Maledetto Genovese
    Clarissimus Consul
    00 07/04/2004 18:28
    L'ho fatto... [SM=x68120]
  • OFFLINE
    trauma...
    Post: 1.339
    Registrato il: 19/08/2001

    Comune mortale
    Guerriero Evroniano
    Fake Metallaro
    Rusticus Plebeius
    00 08/04/2004 15:52
    Allora non c'ero, strasob! La prossima volta fai un annuncio del giorno e dell'ora sul forum.
  • OFFLINE
    Morpheu5
    Post: 348
    Registrato il: 29/04/2002

    Bambino prodigio
    Gregario
    Mastro Programmatore
    Sedulus Quaestor
    00 29/05/2004 09:22
    Re:

    Scritto da: Gorthan 04/04/2004 0.25
    Non me ne vogliano invece gli informatici del forum, che sicuramente cazzieranno questo programmino. Certo è un divertissment, e quindi le critiche sono ben accette su come avrei potuto fare a snellire la totale casualità degli incontri.

    [Modificato da Gorthan 04/04/2004 0.29]



    A quel punto facevi un:

    $ dd if=/dev/urandom of=numeri count=100

    E nel file "numeri" ti ritrovavi esattamente cento numeri casuali compresi tra tot e tot. Poi li stampavi in ordine sparso e facevi cadere un certo numero di volte uno spillo sul foglio e poi segnavi il numero su cui si era posata la punta dello spillo. O anche tutti i numeri attraversati dallo spillo così facevi prima.

    Oppure preparavi un bel tabellone con i numeri che ti servivano ed invitavi un po' di amici a giocare ad attaccare la coda all'asino :P

    Ultimamente sono un po' refrattario alla programmazione.
  • OFFLINE
    Gorthan
    Post: 5.400
    Registrato il: 23/06/2002

    Triumviro
    Capobranca
    Maledetto Genovese
    Clarissimus Consul
    00 29/05/2004 11:16
    Wozz! Allora la prossima volta siete tutti invitati per attaccare la coda dell'asino! [SM=x68094]
  • OFFLINE
    Morpheu5
    Post: 351
    Registrato il: 29/04/2002

    Bambino prodigio
    Gregario
    Mastro Programmatore
    Sedulus Quaestor
    00 29/05/2004 15:05
    Se tu offri da bere... [SM=x68097]