| sbronza | |
|
|
Autore | Messaggio |
---|
darkjoker Admin
Numero di messaggi : 813 Data d'iscrizione : 30.07.07
| Titolo: sbronza Mar Ott 23, 2007 1:23 pm | |
| Forse qualcuno di voi ha già comprato HJ, una rivista che dovrebbe parlare di hacking ma che ormai è in decadenza.. Non è stato sempre così e qualche anno fa alla redazione della rivista c'erano alcune brave persone, come BargtheGnoll, esisteva il CookBook, in cui fornivano alcuni script relativi a problemi che ci ponevano: quesiti matematici (es: calcolare tot numeri primi in Perl, oppure: Calcola la sequenza Fibonacci in QuickBasic) e a volte anche degli indovinelli... e proprio a partire da uno di questi (più precisamente una filastrocca inglese) che mi sono ispirato per questi programma... La filastrocca recita più o meno così: - Citazione :
99 bottles of beer on the wall, 99 bottles of beer. Take one down and pass it around, 98 bottles of beer on the wall.
98 bottles of beer on the wall, 98 bottles of beer. Take one down and pass it around, 97 bottles of beer on the wall.
97 bottles of beer on the wall, 97 bottles of beer. Take one down and pass it around, 96 bottles of beer on the wall.
etc finchè non arriva a 1: 1 bottle of beer on the wall, 1 bottle of beer. Take one down and pass it around, no more bottles of beer on the wall.
e poi: No more bottles of beer on the wall, no more bottles of beer, Go to the store and buy some more, 99 bottles of beer on the wall
se capite bene l'inglese avrete capito che è una bella fregatura... Ora vi lancio una sfida... (neanche tanto difficile... BlackLight non può partecipare sennò lo banno ) chi mi scrive un programma in qualunque linguaggio (autoit, c, perl, pascal, ruby, brainfuck, python, php,... insomma, qualunque...) che esegua il contenuto della filastrocca... Se volete vedere la mia soluzione clickate sullo spoiler - Spoiler:
#include <stdio.h> main (){ while (1 == 1){ int bottiglie = 99; while (bottiglie >= 2){ printf ("\n%d bottles of beer on the wall, %d bottles of beer,\nTake one down and pass it around,\n%d bottles of beer on the wall\n", bottiglie, bottiglie, bottiglie - 1); bottiglie = bottiglie - 1; } printf ("\n1 bottle of beer on the wall, 1 bottle of beer.\nTake one down and pass it around,\nno more bottles of beer on the wall.\n"); printf ("\nNo more bottles of beer on the wall\nno more bottles of beer.\nGo to the store and buy some more,\n99 bottles of wine on the wall.\n"); int continua; printf ("\nContinuare la sbronza?\n 0. SI\n 1. NO\n"); scanf ("%d", &continua); if (continua == 1){ break; } } }
ma prima, almeno, provateci buon divertimento... | |
|
| |
BlackLight Moderatore
Numero di messaggi : 277 Età : 37 Data d'iscrizione : 22.08.07
| Titolo: Re: sbronza Mar Ott 23, 2007 7:33 pm | |
| Eh eh ok non partecipo... Ma alla fine nulla di infattibile, basta un ciclo for con i che decresce volta per volta di un valore e un if per controllare se è 0 (in quel caso si resetta a 99), si può fare in qualsiasi linguaggio... | |
|
| |
DrA93 apprendista
Numero di messaggi : 64 Età : 113 Localizzazione : Bergamo(parenti salernitani) Data d'iscrizione : 29.08.07
| Titolo: Re: sbronza Mar Ott 23, 2007 8:15 pm | |
| - Codice:
-
$var = 99
While 1=1 if $var = 0 Then MsgBox(16, "PORCA PUTTANA!", "Non ti sembra di aver bevuto troppo?Ti VIETO di andare al negozio a comprare ancora bottiglie di birra!!") ExitLoop ElseIf $var = $var Then msgbox(0, $var, $var&"bottle of beer on the wall, "&$var&" bottles of beer."&@CRLF&"Take one down and pass it around."&@CRLF&$var-1&" Bottles of beer on the wall!!") $var = $var-1 EndIf
WEnd DA PROVARE!!(SOPRATTUTTO ARRIVATE A ZERO!!) | |
|
| |
LordHk Moderatore
Numero di messaggi : 140 Data d'iscrizione : 28.09.07
| Titolo: Re: sbronza Mer Ott 24, 2007 12:25 pm | |
| Mo sto scappando, oggi pome posto il codice! @Black mi vedo con Woz XD | |
|
| |
BlackLight Moderatore
Numero di messaggi : 277 Età : 37 Data d'iscrizione : 22.08.07
| Titolo: Re: sbronza Mer Ott 24, 2007 1:18 pm | |
| - LordHk ha scritto:
- @Black mi vedo con Woz XD
Wow fammi poi sapere come va l'incontro | |
|
| |
certaindeath Admin
Numero di messaggi : 343 Data d'iscrizione : 30.07.07
| Titolo: Re: sbronza Mer Ott 24, 2007 5:07 pm | |
| @DrA invece che - Citazione :
- ElseIf $var = $var Then
potevi srivere "Else" | |
|
| |
darkjoker Admin
Numero di messaggi : 813 Data d'iscrizione : 30.07.07
| Titolo: Re: sbronza Mer Ott 24, 2007 5:54 pm | |
| ... bravo black che non ha partecipato... - Citazione :
Eh eh ok non partecipo... Ma alla fine nulla di infattibile, basta un ciclo for con i che decresce volta per volta di un valore e un if per controllare se è 0 (in quel caso si resetta a 99), si può fare in qualsiasi linguaggio...
e che invece ha scritto la soluzione a parole... | |
|
| |
black hole membro
Numero di messaggi : 90 Data d'iscrizione : 03.10.07
| Titolo: Re: sbronza Mer Ott 24, 2007 11:01 pm | |
| ma deve essere un loop che si ripete all'infinito o che ad ogni volta che il valore è 0 chiede se si vuole riniziare? | |
|
| |
DrA93 apprendista
Numero di messaggi : 64 Età : 113 Localizzazione : Bergamo(parenti salernitani) Data d'iscrizione : 29.08.07
| Titolo: Re: sbronza Mer Ott 24, 2007 11:32 pm | |
| - Citazione :
- @DrA
invece che
Citazione:ElseIf $var = $var Then
potevi srivere "Else"
certaindeath Admin
Messaggi : 144 Registrato il : 30/07/07
Uhm...sai, l'abitudine,tanto è uguale alla fin fine... | |
|
| |
BlackLight Moderatore
Numero di messaggi : 277 Età : 37 Data d'iscrizione : 22.08.07
| Titolo: Re: sbronza Mer Ott 24, 2007 11:39 pm | |
| @black hole: Semplicemente nel ciclo controlli se la variabile contatore è pari a 0, in quel caso la resetti a 99. | |
|
| |
black hole membro
Numero di messaggi : 90 Data d'iscrizione : 03.10.07
| Titolo: Re: sbronza Mer Ott 24, 2007 11:53 pm | |
| ah quindi non termina mai...capito | |
|
| |
black hole membro
Numero di messaggi : 90 Data d'iscrizione : 03.10.07
| Titolo: Re: sbronza Gio Ott 25, 2007 12:04 am | |
| - Codice:
-
e = raw_input('\nInvia qualcosa per cominiciare la sbronza\n') if e != 'vogliorestaresobrio': z = 1 while z == 1: a = 99 y = ' bottles of beer on the wall,' g = ' bottles of beer.\nTake one down and pass it around,\n' j = ' bottles of beer on the wall.\n' while a != 0: print '\n',a,y,a,g,a - 1,j a = a - 1 if a == 0: print 'No more',y,'no more',j,'Go to the store and buy some more,',a,' bottles of beer on the wall' al posto che resettare la variabile a 99 ho fatto che ripetere tutto | |
|
| |
darkjoker Admin
Numero di messaggi : 813 Data d'iscrizione : 30.07.07
| Titolo: Re: sbronza Gio Ott 25, 2007 6:00 pm | |
| ... carino... magari potresti mettere qualcosa al posto di voglio restare sobrio come un if alla fine del while che chiede se continuare, se no allora metti un break altrimenti continua con il suo loop... insomma, come ho fatto io(in C) ma si dovrebbe poter fare anche in python, no ? | |
|
| |
black hole membro
Numero di messaggi : 90 Data d'iscrizione : 03.10.07
| Titolo: Re: sbronza Gio Ott 25, 2007 9:48 pm | |
| uhm all'inizio l'avevo fatto così..te lo posto tra pochissimo | |
|
| |
black hole membro
Numero di messaggi : 90 Data d'iscrizione : 03.10.07
| Titolo: Re: sbronza Gio Ott 25, 2007 10:08 pm | |
| - Codice:
-
e = raw_input('\nInvia qualcosa per cominiciare la sbronza\n') if e != 'vogliorestaresobrio': z = 1 while z == 1: a = 99 y = ' bottles of beer on the wall,' g = ' bottles of beer.\nTake one down and pass it around,\n' j = ' bottles of beer on the wall.\n' while a != 0: print '\n',a,y,a,g,a - 1,j a = a - 1 if a == 0: print 'No more' + y + 'no more' + j b = raw_input('\nAltra birra?\n.SI\n.NO\n\n') if b == 'SI': print '\nGo to the store and buy some more,',a,' bottles of beer on the wall' elif b == 'NO': print "\nFine sbronza" break else: print 'Già ubriaco?!\nPuoi scrivere solo SI o NO!!\nFine sbronza' break decidete voi se lasciare o meno voglio restare sobrio | |
|
| |
darkjoker Admin
Numero di messaggi : 813 Data d'iscrizione : 30.07.07
| Titolo: Re: sbronza Ven Ott 26, 2007 6:11 pm | |
| carino... poi con quel - Codice:
-
print 'Già ubriaco?!\nPuoi scrivere solo SI o NO!!\nFine sbronza'
c'ha un pizzico di classe:D ! | |
|
| |
darkphantom hack-member
Numero di messaggi : 398 Data d'iscrizione : 03.09.07
| Titolo: Re: sbronza Dom Ott 28, 2007 5:56 pm | |
| ecco il mio codice - Codice:
-
a=99 b=1 while b==1: if a>1: print a,"bottles of beer on the wall,",a,"bottles of beer.Take one down and pass it around,",a-1,"bottles of beer on the wall.\n" a-=1 elif a==1: print a,"bottle of beer on the wall,",a,"bottle of beer.Take one down and pass it around,",a-1,"bottles of beer on the wall.\n" a-=1 else: b=input("e finita la birra. comprarne altra?\n 1=si\n 0=no\n") if b==1: a=99
unico problema: non si legge niente | |
|
| |
darkphantom hack-member
Numero di messaggi : 398 Data d'iscrizione : 03.09.07
| Titolo: Re: sbronza Lun Ott 29, 2007 3:30 pm | |
| ecco il mio codice, questa volta in C: - Codice:
-
#include<stdio.h> main() { int a,b; a=1; b=99; while (a==1) {if (b>1) {printf("%d bottles of beer on the wall, %d bottles of beer.take one down and pass it around.%d botttles of beer on the wall\n",b,b,b-1); b-=1;} else {printf("non c'è più birra. comprarne altra?\n 1=sì\n 0=no\n"); scanf("%d",&a); if (a==1) b=99; } } }
ok, non sarà il massimo, però per me, fino a pochi giorni fa, C era solo una lettara dell'alfabeto... ah, dimenticavo: alcuni caratteri, tipo"ì",per il C non esistono, quindi li sostituisce con cose strane... c'è un modo per togliere questo bug? @blackhole: se vuoi un consiglio, prima di far chiudere brutalmente il programma, metti una input, qualcosa tipo - Codice:
-
print 'Già ubriaco?!\nPuoi scrivere solo SI o NO!!\nFine sbronza' input("") break
non serve a niente, ma dà il tempo di leggere, poichè aspetta che venga inserito qualcosa, ma non si disturba a leggere cosa hai inserito | |
|
| |
certaindeath Admin
Numero di messaggi : 343 Data d'iscrizione : 30.07.07
| Titolo: Re: sbronza Lun Ott 29, 2007 6:22 pm | |
| accidenti darkphantom da quand'è che cominci a postare lo stesso programma in tanti linguaggi?????? mi stai diventando come blacklight!! | |
|
| |
black hole membro
Numero di messaggi : 90 Data d'iscrizione : 03.10.07
| Titolo: Re: sbronza Mar Ott 30, 2007 5:50 pm | |
| grazie per il consiglio...lo terrò a mente per i prossimi programmi.. | |
|
| |
darkphantom hack-member
Numero di messaggi : 398 Data d'iscrizione : 03.09.07
| Titolo: Re: sbronza Mer Ott 31, 2007 8:08 pm | |
| @certain death: come blacklight? MAGARI! ho appena cominciato col C, e devo dire che m'attizza... però è un tantino più difficile di autoit | |
|
| |
certaindeath Admin
Numero di messaggi : 343 Data d'iscrizione : 30.07.07
| Titolo: Re: sbronza Gio Nov 01, 2007 4:55 pm | |
| più che "difficile"(almeno per le cose basilari) ha una sintassi diversa, che se sei abituato a programmare in autoit magari ti risulta un po' più complicata da apprendere | |
|
| |
Contenuto sponsorizzato
| Titolo: Re: sbronza | |
| |
|
| |
| sbronza | |
|