JDC Skrevet 11. november 2014 Del Skrevet 11. november 2014 Skal lage en skall script i Linux. Vet ikke om at den bør stå her, Linux script er vel ikke samme som PHP eller C++? Altså jeg må en script program som: Programmet trekker et tilfeldig tall mellom 1 og 100, bruker skal gjette tallet iterativt (om igjen) til suksess. For hver runde skal programmet rapportere om bruker sitt forslag er mindre eller større enn det korrekte. Om bruker foreslår 0 skal det tolkes som at han/hun gir opp, og spillet avsluttes da med melding om det korrekte tallet. Når et spill er over skal programmet spørre bruker om hun vil fortsette, og i så fall trekke og starte nytt spill. Kan noen det? Lenke til kommentar
Sokkalf™ Skrevet 11. november 2014 Del Skrevet 11. november 2014 (endret) Hvorfor vil du bruke et shell script til dette? Edit: Det er forsåvidt ganske trivielt, men f.eks Python eller Ruby ville vært et mye bedre valg. Endret 11. november 2014 av Sokkalf™ Lenke til kommentar
JDC Skrevet 11. november 2014 Forfatter Del Skrevet 11. november 2014 Det er en fag jeg har i klassen, og vi bruker kun Linux. Lenke til kommentar
endrebjo Skrevet 11. november 2014 Del Skrevet 11. november 2014 Hvor langt kan skript-definisjonen strekkes? Må det være Bourne Shell, eller kan det være hvilket som helst skript? Jeg har ikke noe problem med å slenge f.eks Python- eller Tcl-intepreteren først i et skript og skrive hele kalaset i Python eller Tcl. De er fremdeles fullverdige linux-skript. Spesielt Python-interpreteren begynner å bli like vanlig som Bash. Riktig verktøy til jobben er alltid det riktige svaret. Selv om Bash er defacto interpreter i mange linux-miljø er det på ingen måte den beste interpreteren. Hva med sausen av csh, ksh og alle de andre rare greiene? Får ikke de lov til å være med? Lenke til kommentar
Sokkalf™ Skrevet 11. november 2014 Del Skrevet 11. november 2014 @endrebjo, det var det som var det første som falt meg inn også, men trådstarter sier jo faktisk "shell script", da tolker jeg det som bash eller tilsvarende. @TS: Jeg kan, men jeg har ikke så lyst til å servere løsningen på sølvfat her. Prøv selv først, post det du kommer frem til, og spør om hjelp til spesifikke ting du står fast på. Ellers lærer du aldri noe. Lenke til kommentar
endrebjo Skrevet 11. november 2014 Del Skrevet 11. november 2014 @endrebjo, det var det som var det første som falt meg inn også, men trådstarter sier jo faktisk "shell script", da tolker jeg det som bash eller tilsvarende.c-shell, k-shell, python-shell, bourne-shell. Alle er shell for meg. Lenke til kommentar
Sokkalf™ Skrevet 11. november 2014 Del Skrevet 11. november 2014 Jeg tenker mer i retning "praktisk brukbart som login-shell" når jeg hører "shell", det utelukker Python for min del. Lenke til kommentar
endrebjo Skrevet 11. november 2014 Del Skrevet 11. november 2014 import os os.system("ls") Lenke til kommentar
JDC Skrevet 12. november 2014 Forfatter Del Skrevet 12. november 2014 #!/bin/bashnr=$[($RANDOM % 100) +1]echo -n "Jeg tenker på et tall mellom 1 og 100." while read n2; doif [[ $n2 -eq $n1 ]]; thenbreak; elseecho if [[ $n2 -gt $n1 ]]; thenecho -n "Sorry, er for høy din gjetning."elif [[ $n2 -lt $n1 ]]; thenecho -n "Sorry, er for lav din gjetning."fifidoneecho Jeg kom fram til den her, men funker ikke så bra, kan noen hjelpe meg å få den riktig kanskje? Lenke til kommentar
Sokkalf™ Skrevet 12. november 2014 Del Skrevet 12. november 2014 Du sammenligner $n2 med $n1, men du deklarerer ikke $n1 noe sted. Lenke til kommentar
JDC Skrevet 12. november 2014 Forfatter Del Skrevet 12. november 2014 Du sammenligner $n2 med $n1, men du deklarerer ikke $n1 noe sted. Den var nok feil, jeg tar utgangspunkt i den her: #!/bin/bash INT=$RANDOM guess=-1 while [ "$guess" != "$INT" ]; do echo -n "Jeg tenker en nummer mellom 1 og 100. Gjett hvilken nummer det er" read guess if [ "$guess" = "" ]; then echo "Du skrev ingen tall" elif [ "$guess" = "$INT" ]; then echo -e "Ja! $guess is the correct answer!" elif [ "$INT" -gt "$guess" ]; then echo "Nummeret du gjettet skal være større" else echo "Nummeret du gjettet skal være mindre" fi done Den funker ikke helt som den skal... Og vet du hvordan jeg kan få at hvis bruker foreslår 0 skal det tolkes som at han/hun gir opp, og spillet avsluttes da med melding om det korrekte tallet. Når et spill er over skal programmet spørre bruker om hun vil fortsette, og i så fall trekke og starte nytt spill. Lenke til kommentar
Imsvale Skrevet 12. november 2014 Del Skrevet 12. november 2014 Legg en while-løkke til rundt, så kan du bruke den som en slags meny (starte nytt spill eller avslutte). Den løkka du har håndterer selve gjettingen (gjett eller gi opp). Lenke til kommentar
JDC Skrevet 12. november 2014 Forfatter Del Skrevet 12. november 2014 Legg en while-løkke til rundt, så kan du bruke den som en slags meny (starte nytt spill eller avslutte). Den løkka du har håndterer selve gjettingen (gjett eller gi opp). Usikker på hvordan jeg lager en sånn løkke, kan du vise meg eksempel? Lenke til kommentar
Imsvale Skrevet 12. november 2014 Del Skrevet 12. november 2014 (endret) Du har en while-løkke allerede, med noe kode inni, omtrent slik: // Generate random number 1-100 while guess != number: // Input guess and evaluate endwhile Edit: Manglet endwhile over. Den legger du inni enda en while-løkke slik: while true: // Generate random number 1-100 while guess != number: // Input guess if guess == 0: // Output correct number and break // Evaluate guess endwhile echo "Play again or quit?"; // Break if player wants to quit endwhile echo "Goodbye!"; Og med det kan du bryte ut av gjetteprosessen uten at det avslutter hele skriptet, siden du har lyst til å spørre om man vil spille igjen. Ikke se altfor hardt på resten, da det var mest for å illustrere nested loops, pluss et løsningsforslag til guess == 0. Endret 12. november 2014 av Imsvale Lenke til kommentar
Hårek Skrevet 13. november 2014 Del Skrevet 13. november 2014 Retningslinjene: Det holder med én tråd om ditt emne, ikke opprett flere identiske tråder i forskjellige områder av forumet. https://www.diskusjon.no/index.php?showtopic=1637752&hl= Lenke til kommentar
Anbefalte innlegg