2014-01-30, 21:16
  #1
Medlem
Har ett problem jag stött på nu när jag börjat koda lite lätt som jag inte har en aning om hur jag ska ställa upp

Jag har en räknare som ska räkna 3-siffrigt sen har jag 3 olika "sprites" som ska byta med vilken siffra det är, problemet är att den inte hittar rätt siffra, har lyckats lösa 100- och entalen så att de visar rätt, inte riktigt full koll på vad jag gjorde men det funkar.
Det jag har problem med är 10talen
Jag vill skriva upp en ekvation som gör att ett 3-siffrigt tal blir mellan 1-10 för att visa vilket tal den ska visa.

Jag kodar i "Scratch" så jag lägger med en länk till koden så ni får se hur den ser ut, det viktigaste är att någon vänlig själv förklarar hur man tänker i en sån här situation så att jag faktiskt lär mig något.
Om ni har frågor så är det bara att kommentera så svarar jag asap.

http://scratch.mit.edu/projects/17256150/
Citera
2014-01-30, 22:16
  #2
Medlem
Nimportequis avatar
Citat:
Ursprungligen postat av IndyZ
Har ett problem jag stött på nu när jag börjat koda lite lätt som jag inte har en aning om hur jag ska ställa upp

Jag har en räknare som ska räkna 3-siffrigt sen har jag 3 olika "sprites" som ska byta med vilken siffra det är, problemet är att den inte hittar rätt siffra, har lyckats lösa 100- och entalen så att de visar rätt, inte riktigt full koll på vad jag gjorde men det funkar.
Det jag har problem med är 10talen
Jag vill skriva upp en ekvation som gör att ett 3-siffrigt tal blir mellan 1-10 för att visa vilket tal den ska visa.

Jag kodar i "Scratch" så jag lägger med en länk till koden så ni får se hur den ser ut, det viktigaste är att någon vänlig själv förklarar hur man tänker i en sån här situation så att jag faktiskt lär mig något.
Om ni har frågor så är det bara att kommentera så svarar jag asap.

http://scratch.mit.edu/projects/17256150/

Förstår jag problemet rätt om jag tolkar det som att du vill, utifrån ett tresiffrigt tal, lista ut tiotalssiffran? Detta löses enkelt med hjälp av någon funktion liknande div(a,b) som returnerar heltalsdelen tillhörande a/b. Du söker div(n/10)-10*div(n/100) om n är ditt tresiffriga tal.
Citera
2014-01-30, 23:19
  #3
Medlem
Det står inte i referensmanualen om /-operatorn utför heltalsdivision när den får två heltal. Om den fungerar så:

Sista siffran = (poängen / 1) mod 10
Mittensiffran = (poängen / 10) mod 10
Första siffran = (poängen / 100) mod 10

Om inte, byt ut "poängen / x" mot "round(poängen / x)" eller "round((poängen / x) - 0.5)", antagligen det senare. Det är lite oklart exakt hur round-operatorn funkar också.
Citera
2014-01-30, 23:43
  #4
Medlem
Entalssiffran: n mod 10
Tiotalssiffran: (golv av (n / 10)) mod 10
Hundratalssiffran: golv av (n / 100)

Eventuellt kan du för hundratalssiffran köra med:
(golv av (n / 100)) mod 10
Citera
2014-01-31, 10:56
  #5
Medlem
Har NÄSTAN lyckats lösa det nu, vet dock inte riktigt vad jag gjorde (jag la till -5 på 10talen och det löste nästan allt) men det ända jag har problem med just nu är 2or.
Så nån får gärna kolla på den uppdatera koden och se om ni hittar felet.
Hängde inte riktigt med på era lösningar tyvärr, som sagt, första gången jag programmerar.

Om nån har koll så skulle dom jättegärna få skriva en enkel förklaring på ()mod()-blocket
Citera
2014-01-31, 11:18
  #6
Medlem
Nimportequis avatar
Citat:
Ursprungligen postat av IndyZ
Har NÄSTAN lyckats lösa det nu, vet dock inte riktigt vad jag gjorde (jag la till -5 på 10talen och det löste nästan allt) men det ända jag har problem med just nu är 2or.
Så nån får gärna kolla på den uppdatera koden och se om ni hittar felet.
Hängde inte riktigt med på era lösningar tyvärr, som sagt, första gången jag programmerar.

Om nån har koll så skulle dom jättegärna få skriva en enkel förklaring på ()mod()-blocket
Ändrar du till switch costume to ((floor of ((poäng/10) mod 10))+1) ser det ut att fungera.

x mod y betyder resten vid division av x med y.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in