JDC Skrevet 12. november 2014 Del Skrevet 12. november 2014 Skal lage en skall script i Linux. 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
FenrisC0de Skrevet 12. november 2014 Del Skrevet 12. november 2014 (endret) Skal lage en skall script i Linux. 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? Dette vitner om en skoleoppgave og jeg kommer ikke til å gi deg hele svaret. Hva med at du starter å skrive et Bash script og spør om hjelp når det er nmoe spesifikk du står fast på? Hvis det ikke er en skoleoppgave må du også gjerne presisere hva du ønsker. For å svare på spørsmålet ditt så kan jeg skrive et script som gjør det du spør om ja. Endret 12. november 2014 av Zyg0te Lenke til kommentar
JDC Skrevet 12. november 2014 Forfatter Del Skrevet 12. november 2014 Skal lage en skall script i Linux. 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? Dette vitner om en skoleoppgave og jeg kommer ikke til å gi deg hele svaret. Hva med at du starter å skrive et Bash script og spør om hjelp når det er nmoe spesifikk du står fast på? Hvis det ikke er en skoleoppgave må du også gjerne presisere hva du ønsker. For å svare på spørsmålet ditt så kan jeg skrive et script som gjør det du spør om ja. #!/bin/bash nr=$[($RANDOM % 100) +1] echo -n "Jeg tenker på et tall mellom 1 og 100." while read n2; do if [[ $n2 -eq $n1 ]]; then break; else echo if [[ $n2 -gt $n1 ]]; then echo -n "Sorry, er for høy din gjetning." elif [[ $n2 -lt $n1 ]]; then echo -n "Sorry, er for lav din gjetning." fi fi done echo Har kommet fram til det, men den er ikke helt riktig, hvordan kan jeg gjøre sånn som akkurat oppgaven beskriver? Lenke til kommentar
FenrisC0de Skrevet 12. november 2014 Del Skrevet 12. november 2014 Skal lage en skall script i Linux. 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? Dette vitner om en skoleoppgave og jeg kommer ikke til å gi deg hele svaret. Hva med at du starter å skrive et Bash script og spør om hjelp når det er nmoe spesifikk du står fast på? Hvis det ikke er en skoleoppgave må du også gjerne presisere hva du ønsker. For å svare på spørsmålet ditt så kan jeg skrive et script som gjør det du spør om ja. #!/bin/bash nr=$[($RANDOM % 100) +1] echo -n "Jeg tenker på et tall mellom 1 og 100." while read n2; do if [[ $n2 -eq $n1 ]]; then break; else echo if [[ $n2 -gt $n1 ]]; then echo -n "Sorry, er for høy din gjetning." elif [[ $n2 -lt $n1 ]]; then echo -n "Sorry, er for lav din gjetning." fi fi done echo Har kommet fram til det, men den er ikke helt riktig, hvordan kan jeg gjøre sånn som akkurat oppgaven beskriver? Hva er det som ikke fungerer? Jeg ser ihvertfall at du mangler delen som skal spørre brukeren om de vil kjøre en ny runde. Men hva annet er det du spesifikt lurer på? Lenke til kommentar
Sokkalf™ Skrevet 12. november 2014 Del Skrevet 12. november 2014 https://www.diskusjon.no/index.php?showtopic=1637624 Hold deg til én tråd, TS. Lenke til kommentar
JDC Skrevet 12. november 2014 Forfatter Del Skrevet 12. november 2014 (endret) Skal lage en skall script i Linux. 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? Dette vitner om en skoleoppgave og jeg kommer ikke til å gi deg hele svaret. Hva med at du starter å skrive et Bash script og spør om hjelp når det er nmoe spesifikk du står fast på? Hvis det ikke er en skoleoppgave må du også gjerne presisere hva du ønsker. For å svare på spørsmålet ditt så kan jeg skrive et script som gjør det du spør om ja. #!/bin/bash nr=$[($RANDOM % 100) +1] echo -n "Jeg tenker på et tall mellom 1 og 100." while read n2; do if [[ $n2 -eq $n1 ]]; then break; else echo if [[ $n2 -gt $n1 ]]; then echo -n "Sorry, er for høy din gjetning." elif [[ $n2 -lt $n1 ]]; then echo -n "Sorry, er for lav din gjetning." fi fi done echo Har kommet fram til det, men den er ikke helt riktig, hvordan kan jeg gjøre sånn som akkurat oppgaven beskriver? Hva er det som ikke fungerer? Jeg ser ihvertfall at du mangler delen som skal spørre brukeren om de vil kjøre en ny runde. Men hva annet er det du spesifikt lurer på? Hvordan får jeg det sånn at den spør brukeren om de vil kjøre en ny runde? Og f.eks, trykke hva for å spille på nytt eller hvordan gjør jeg sånn når man skriver 0 så avslutter man og fortelle hvilken tall det var riktig? Endret 12. november 2014 av JDC Lenke til kommentar
FenrisC0de Skrevet 12. november 2014 Del Skrevet 12. november 2014 (endret) Hvordan får jeg det sånn at den spør brukeren om de vil kjøre en ny runde? Og f.eks, trykke hva for å spille på nytt eller hvordan gjør jeg sånn når man skriver 0 så avslutter man og fortelle hvilken tall det var riktig? Jeg ville løst oppgaven ved å starte med å sette en variabel (ny_runde) og satt den til 1. Så laget en while-løkke hvor du putter koden din inn. Når runden er ferdig spør du brukeren om vedkommende vil spille en ny runde. Hvis input er "Ja" setter du ny_runde til 0. Da vil programmet avsluttes. Tallet du generer har du jo i en variabel $nr så du kan jo printe ut den når som helst. Senere i scriptet referer du til $n1 som jeg ikke forstår hvor du får fra. Mistenker copy/paste feil Endret 12. november 2014 av Zyg0te Lenke til kommentar
JDC Skrevet 12. november 2014 Forfatter Del Skrevet 12. november 2014 https://www.diskusjon.no/index.php?showtopic=1637624 Hold deg til én tråd, TS. Du må svare meg da, Hvordan får jeg det sånn at den spør brukeren om de vil kjøre en ny runde? Og f.eks, trykke hva for å spille på nytt eller hvordan gjør jeg sånn når man skriver 0 så avslutter man og fortelle hvilken tall det var riktig? Jeg ville løst oppgaven ved å starte med å sette en variabel (ny_runde) og satt den til 1. Så laget en while-løkke hvor du putter koden din inn. Når runden er ferdig spør du brukeren om vedkommende vil spille en ny runde. Hvis input er "Ja" setter du ny_runde til 0. Da vil programmet avsluttes. Tallet du generer har du jo i en variabel $nr så du kan jo printe ut den når som helst. Senere i scriptet referer du til $n1 som jeg ikke forstår hvor du får fra. Mistenker copy/paste feil 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 Får ikke den riktig, kan dere hjelpe meg å redigere den? Skjønner ikke den der while løkke, hvordan skal jeg gjøre det? Trur du kan gjøre mer enn å bare fortelle det, fordi jeg skjønner nesten ingenting av det her Lenke til kommentar
endrebjo Skrevet 12. november 2014 Del Skrevet 12. november 2014 Jeg liker ikke bash. #!/usr/bin/python import random import math print "Hello! Welcome to this game!" while 1: print "Drawing a new number!" randNum = int(math.floor(100*random.random()) + 1); yourNum = -1; while yourNum != randNum: yourNum = int(input("Enter a number: ")) if yourNum == 0: print "I do not want to play anymore. :(" exit() if yourNum != randNum: if yourNum > randNum: print "Too high" else: print "Too low." print "Congratulations! The number was " + str(randNum) + "!\n" Lenke til kommentar
HawP Skrevet 13. november 2014 Del Skrevet 13. november 2014 Bash Beginners Guide Lenke til kommentar
FenrisC0de Skrevet 13. november 2014 Del Skrevet 13. november 2014 Jeg liker ikke bash. #!/usr/bin/python import random import math print "Hello! Welcome to this game!" while 1: print "Drawing a new number!" randNum = int(math.floor(100*random.random()) + 1); yourNum = -1; while yourNum != randNum: yourNum = int(input("Enter a number: ")) if yourNum == 0: print "I do not want to play anymore. :(" exit() if yourNum != randNum: if yourNum > randNum: print "Too high" else: print "Too low." print "Congratulations! The number was " + str(randNum) + "!\n" Hva er vitsen med å gi han svaret i Python når det er Bash han sliter med? Slik kan det gjøres. #!/bin/bash cont=1 while [ $cont -ne 0 ]; do #Generate random integer INT=$[($RANDOM % 100) +1] guess=-1 echo "Jeg tenker på et tall mellom 1 og 100." while [ "$guess" != "$INT" ]; do echo -n "Hvilket tall tenker jeg på? " read guess if [ "$guess" = "" ]; then echo "Du skrev ingen tall" elif [ "$guess" = "$INT" ]; then echo -e "Ja! $guess er riktig" echo -n "Vil du spille en runde til? (y/n) " read rundetil if [ "$rundetil" != "y" ]; then cont=0 fi 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 done 1 Lenke til kommentar
JDC Skrevet 13. november 2014 Forfatter Del Skrevet 13. november 2014 Hva betyr egentlig fi? Hvorfor skal det være 2 fi og 2 done? Lenke til kommentar
FenrisC0de Skrevet 13. november 2014 Del Skrevet 13. november 2014 Hva betyr egentlig fi? Hvorfor skal det være 2 fi og 2 done? fi markerer slutten på en if løkke og done markerer slutten på en while-løkke. Les deg opp på begge. Det står masse om det både på nett og i pensummet ditt. Lenke til kommentar
Imsvale Skrevet 13. november 2014 Del Skrevet 13. november 2014 Litt greit at du kjenner til hva som er hva før du begynner på slike oppgaver, sånn at du ikke er helt blank. Da kan du også stille mer konkrete spørsmål om akkurat det du sliter med, istedenfor ... alt. Lenke til kommentar
endrebjo Skrevet 13. november 2014 Del Skrevet 13. november 2014 Jeg liker ikke bash. #!/usr/bin/python import random import math print "Hello! Welcome to this game!" while 1: print "Drawing a new number!" randNum = int(math.floor(100*random.random()) + 1); yourNum = -1; while yourNum != randNum: yourNum = int(input("Enter a number: ")) if yourNum == 0: print "I do not want to play anymore. :(" exit() if yourNum != randNum: if yourNum > randNum: print "Too high" else: print "Too low." print "Congratulations! The number was " + str(randNum) + "!\n" Hva er vitsen med å gi han svaret i Python når det er Bash han sliter med? Det er prinisppet programmering han sliter med, ikke språket Bash. Han har heller ikke spesifisert at det må være Bash, og jeg er ikke noen stor fan av Bash. Derfor ga jeg et eksempel i Python. Python er enklere å forstå for en som leser kode for første gang, og er derfor en langt mer pedagogisk måte å lære programmering på.At skriptet mitt kjører like godt i shell som et hvilket som helst annet Bash-skript er heller ikke noen ulempe. Python er installert omtrent like ofte som Bash i dag. Lenke til kommentar
JDC Skrevet 13. november 2014 Forfatter Del Skrevet 13. november 2014 (endret) Litt greit at du kjenner til hva som er hva før du begynner på slike oppgaver, sånn at du ikke er helt blank. Da kan du også stille mer konkrete spørsmål om akkurat det du sliter med, istedenfor ... alt. Tingen er jo at jeg sliter med å forstå hele greia, vanskelig med koding og kodene, vanskelig å huske liksom. Men jeg bruker kun bash script nå, skall script i Linux Endret 13. november 2014 av JDC Lenke til kommentar
FenrisC0de Skrevet 13. november 2014 Del Skrevet 13. november 2014 Litt greit at du kjenner til hva som er hva før du begynner på slike oppgaver, sånn at du ikke er helt blank. Da kan du også stille mer konkrete spørsmål om akkurat det du sliter med, istedenfor ... alt. Tingen er jo at jeg sliter med å forstå hele greia, vanskelig med koding og kodene, vanskelig å huske liksom. Men jeg bruker kun bash script nå, skall script i Linux Du har jo garantert noe pensum som forklarer alt i detalj. Du har jo disket opp med litt kode så jeg anbefaler deg å gå igjennom linje for linje og finn ut av hver linje gjør. Lenke til kommentar
Imsvale Skrevet 13. november 2014 Del Skrevet 13. november 2014 Tingen er jo at jeg sliter med å forstå hele greia, vanskelig med koding og kodene, vanskelig å huske liksom. Men jeg bruker kun bash script nå, skall script i Linux Hehe, jo, jeg begynner å skjønne det. Men jeg lurer da på hvordan det kan ha seg at du er satt til å gjøre en slik oppgave uten tilstrekkelige forhåndskunnskaper. Du må nok pent lære dette fra begynnelsen, hvis det er slik at du mangler det meste av kunnskaper for å kunne gjøre denne oppgaven. Det skulle være plenty av ressurser for dette rundt om på nettet, om du ikke er fornøyd med utdanningsmaterialet du allerede har. Lenke til kommentar
JDC Skrevet 13. november 2014 Forfatter Del Skrevet 13. november 2014 Jeg lurer på noe til, vet noen hvordan man lager en program som kan sjekke hvor mange filer det er i en katalog og symbolske linker og kataloger? Lenke til kommentar
Sokkalf™ Skrevet 13. november 2014 Del Skrevet 13. november 2014 Du trenger ikke å lage et program for det, du kan kjøre følgende i bash-promptet: for type in f d l; do echo -n "${type}:"; find . -maxdepth 1 -type ${type} | wc -l; done Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå