Newsgroup: it.comp.os.linux.development
Titolo: esercizio in C

"Il malvagio Dr. Evil ha preparato un gran numero di bombe binarieper i
nostri studenti. Una bomba binaria è un programma cha consiste in una
sequenza di fasi. Ogni fase si aspetta che digitiate una particolare stringa
su stdin. Se digitate la stringa corretta , allora  la fase viene
disinnescata e la bomba passa ala fase successiva , Altrimenti , la bomba
esplode stampando 'BOOM'  e terminando. La bomba è disinnascata quando ogni
fase è disinnescata.La bomba ignora linee di input bianche . Se eseguite la
vostra bomba con un argomento sulla linea di comando, per es.,
linux>  ./bomb psol.txt
allora la bomba leggerà le linee di input da psol.txt fino a raggiungere EOF
, e poi passa a prendere  l'input da stdin, Dr.Evil ha aggiunto questa
caratteristica in modo che non dobbiate ribattere le soluzioni delle fasi
che avete già disinnescato."
Fine della traccia
Ho inserito il codice sorgente da cui tentare di capire le sei stringhe da
inserire nell'eseguibile.Vorrei inserire anche l'eseguibile ma se lo faccio
il NS non accetta la news.
/***************************************************************************
 * Dr. Evil's Insidious Bomb, Version 1.0
 * Copyright 2002, Dr. Evil Incorporated. All rights reserved.
 *
 * LICENSE:
 *
 * Dr. Evil Incorporated (the PERPETRATOR) hereby grants you (the
 * VICTIM) explicit permission to use this bomb (the BOMB).  This is a
 * time limited license, which expires on the death of the VICTIM.
 * The PERPETRATOR takes no responsibility for damage, frustration,
 * insanity, bug-eyes, carpal-tunnel syndrome, loss of sleep, or other
 * harm to the VICTIM.  Unless the PERPETRATOR wants to take credit,
 * that is.  The VICTIM may not distribute this bomb source code to
 * any enemies of the PERPETRATOR.  No VICTIM may debug,
 * reverse-engineer, run "strings" on, decompile, decrypt, or use any
 * other technique to gain knowledge of and defuse the BOMB.  BOMB
 * proof clothing may not be worn when handling this program.  The
 * PERPETRATOR will not apologize for the PERPETRATOR's poor sense of
 * humor.  This license is null and void where the BOMB is prohibited
 * by law.
***************************************************************************/
#include <stdio.h>
#include "support.h"
#include "phases.h"
/*
 * Note to self: Remember to erase this file so my victims will have no
 * idea what is going on, and so they will all blow up in a
 * spectaculary fiendish explosion. -- Dr. Evil
 */
FILE *infile;
int main(int argc, char *argv[])
{
    char *input;
    /* Note to self: remember to port this bomb to Windows and put a
     * fantastic GUI on it. */
    /* Eseguita senze argomenti, la bomba legge le sue linee di input
     * da standard input. */
    if (argc == 1)
 infile = stdin;
    }
    /* Eseguita con un argomento <file>, la bomba legge da <file>
     * fino all'EOF, e poi passa allo standard input. Quindi, mentre
     * disinnescate ogni fase, potete aggiungere la sua stringa di
     * disinnesco a <file> e evitare di doverla ribattere. */
    else if (argc == 2) {
 if (!(infile = fopen(argv[1], "r"))) {
     printf("%s: Error: Couldn't open %s\n", argv[0], argv[1]);
     exit(8);
 }
    }
    /* Non potete eseguire la bomba con piu' di 1 argomento sulla linea di
comando. */
    else {
 printf("Usage: %s [<input_file>]\n", argv[0]);
 exit(8);
    }
    /* Fai tutti i tipi di cose segrete che possano rendere la bomba piu'
difficile
     * da disinnescare. */
    initialize_bomb();
    printf("Benvenuto alla mia diabolica piccola bomba. Hai 6 fasi con\n");
    printf("cui saltare in aria. Buon divertimento!\n");
    /* Hmm...  Sei fasi devono essere piu' sicure di una sola! */
    input = read_line();             /* Get input                   */
    phase_1(input);                  /* Run the phase               */
    phase_defused();                 /* Drat!  They figured it out!
          * Let me know how they did it. */
    printf("Fase 1 disinnescata. Passiamo alla prossima?\n");
    /* La seconda fase e' piu' difficile.  Nessuno si immaginera' mai come
     * disinnescare questa... */
    input = read_line();
    phase_2(input);
    phase_defused();
    printf("E questa e' la numero 2.  Andiamo avanti!\n");
    /* Penso che e' stato troppo facile finora. Un codice un po' piu'
complesso
     * confondera' la gente. */
    input = read_line();
    phase_3(input);
    phase_defused();
    printf("Siamo a meta' strada!\n");
    /* Ci siete? Come andate in matematica? Provate questo succoso problema!
*/
    input = read_line();
    phase_4(input);
    phase_defused();
    printf("Sei arrivato fin qui, eh?  Prova questa.\n");
    /* Tanto va la gatta al lardo, che gli scoppia la bomba in mano! */
    input = read_line();
    phase_5(input);
    phase_defused();
    printf("Ottimo lavoro!  Avanti alla prossima...\n");
    /* Questa fase non sara' mai utilizzata, perche' nessuno superera' le
precedenti.
     * Ma ad ogni buon fine, rendila ancora piu' difficile. */
    input = read_line();
    phase_6(input);
    phase_defused();
    /* Wow, ce l'hai fatta!  Ma... non manca qualcosa? Forse
     * ti sei lasciato sfuggire qualcosa? Mua ha ha ha ha! */
    return 0;
}

    else if (argc == 2) {
non so dove stia il trucco ma qua succedono dei casini (cmq non
dovrebbe neanche compilare..) perchč il chiusa parentesi graffa }
precedente ha chiuso il main, non l'if :)
saluto
-- 
by dr666