2 svar
184 visningar
jonte12 är nöjd med hjälpen
jonte12 468
Postad: 12 jul 2022 11:55

Schackbräde i python

Jag har en uppgift som går ut på att skapa ett program där användaren matar in höjd och bredd till ett schackbräde samt vilka tecken det ska bestå av. Exempelvis:

Inläsning av tal och tecken från användaren har jag fixat men jag vet inte riktigt hur jag ska sköta själva utritningen av schackbrädet. 

Jag tror att det har något att göra med om det är en jämn position eller inte. För alla jämna positioner är det ju "-" och udda "." i detta fallet.

D4NIEL 2542
Postad: 12 jul 2022 13:20 Redigerad: 12 jul 2022 13:38

Om rr är raden kk är kolumnen så ges tecknet av (-1)r+k(-1)^{r+k}.

Exempel, vi undrar vilken färg den sista rutan på ett schackbräde med 64 rutor (8x8) har:

(-1)r+k=(-1)8+8=(-1)16=1(-1)^{r+k}=(-1)^{8+8}=(-1)^{16}=1

Rutan till vänster i samma rad har färgen

(-1)8+7=(-1)15=-1(-1)^{8+7}=(-1)^{15}=-1

Du kan alltså studera om talet r+kr+k är jämnt eller udda. För att ta reda på om ett tal är jämnt eller udda kan man studera heltalsresten efter division med 2, dvs

if ((r+k) % 2) == 0:

Om du lägger dina "färger" i en lista kan du indexera färgen direkt med [(r+k)%2][(r+k)%2]

Jag vill också påpeka att det förmodligen är enklare att bara skriva ut rutorna i tur och ordning, varannan ruta varannan färg, varannan rad, varannan färg. Men det kan ju vara roligare att använda ett mer intrikat tillvägagångssätt :)

jonte12 468
Postad: 13 jul 2022 12:03
D4NIEL skrev:

Om rr är raden kk är kolumnen så ges tecknet av (-1)r+k(-1)^{r+k}.

Exempel, vi undrar vilken färg den sista rutan på ett schackbräde med 64 rutor (8x8) har:

(-1)r+k=(-1)8+8=(-1)16=1(-1)^{r+k}=(-1)^{8+8}=(-1)^{16}=1

Rutan till vänster i samma rad har färgen

(-1)8+7=(-1)15=-1(-1)^{8+7}=(-1)^{15}=-1

Du kan alltså studera om talet r+kr+k är jämnt eller udda. För att ta reda på om ett tal är jämnt eller udda kan man studera heltalsresten efter division med 2, dvs

if ((r+k) % 2) == 0:

Om du lägger dina "färger" i en lista kan du indexera färgen direkt med [(r+k)%2][(r+k)%2]

Jag vill också påpeka att det förmodligen är enklare att bara skriva ut rutorna i tur och ordning, varannan ruta varannan färg, varannan rad, varannan färg. Men det kan ju vara roligare att använda ett mer intrikat tillvägagångssätt :)

Tack så mycket för hjälpen!

Svara Avbryt
Close