7 svar
78 visningar
mrlill_ludde är nöjd med hjälpen!
mrlill_ludde 761
Postad: 11 jan 2019 Redigerad: 11 jan 2019

Matriser

Jag håller på med som sagt ett minröj spel i Python (skriver man det med stort P i början? eller är det ok att skriva med lilla p?) 

jag har gjort en skiss över hur jag ska göra och ser således ut såhär:

  • Ställa upp rutnätet
  • placera ut bomberna (få med alla grannar)
  • låta spelare välja mxn martis, och antal bomber.
  • flaggorna
  • man ska skriva in sitt användarnamn och hamna på en 10-lista, som printas ut på ens dator, där man kan hamna på typ.. top10 eller så.

Jag läste på hur man gör matrix (jag tänker mig att jag inte använder mig av NumPy (för rätta mig om jag har fel, det är väl inget man importerar i SHELL/editorn ? utan det skrivs ju från terminalen och så - ni som använder numpy vet vad jag menar) och hitta diverse koder. Men jag hittar däremot ingen kod som gör så att spelare får välja själv, nxm-matrisen.Och jag tänker mig att programmet fråga "hur stor spelplan vill du ha?" och användaren får bestämma själv, tex 4. Då ska det automatisk bli 4x4 matris (alltså således inga 4x3 matriser är med, de måste vara symmetrisk) och jag tanke rju att detta ska vara en slags funktion av attributen: rows och kolomns, även minorna också. Men står lite still. 

Någon som har en kod,tips, idéer eller bättre google-skills än mig? som vill dela med sig?

(f.ö om jag glömt något i min skiss, påpeka det också xD) 

Hej!

Ja, språket Python skrivs med stort P om man ska vara noga, men jag (som annars brukar vara noga med det) slarvar ofta med det. Har du skrivit något Pythonprogram tidigare? Annars är min känsla att det här är ett alldeles för stort förstaprojekt för dig. Men om det är det här du vill göra, så skulle jag säga att du ska fokusera på att få en sak att fungera i taget, så att du inte fastnar i fel detaljer från början.

Börja med en fix storlek på brädet och fixt antal bomber (t.ex. 10x10, 10 bomber). Strunta i allt vad bild heter. I ett första skede skulle jag strunta i själva speldynamiken också, och nöja mig med att sätta upp spelbrädet som en matris av 10x10 booleaner (sant/falskt). Matriser man ska räkna med är numpy bra till, men för det här skulle jag använda en tvådimensionell lista.

När du har lyckats sätta upp en spelplan kan du låta spelaren välja en ruta genom att skriva in ett radnummer och ett kolumnnummer, och så svarar programmet om där är en bomb eller inte.

När det funkar så kan programmet istället returnera hur många bomber som finns intill

När det fungerar så kan du tillåta användare att antingen sätta flagga eller "klicka upp" en position.

Etc etc. Att sätta upp en topp-10-lista etc är alldeles för avancerat i det här läget.

mrlill_ludde 761
Postad: 12 jan 2019 Redigerad: 12 jan 2019
haraldfreij skrev:

Hej!

Ja, språket Python skrivs med stort P om man ska vara noga, men jag (som annars brukar vara noga med det) slarvar ofta med det. Har du skrivit något Pythonprogram tidigare? Annars är min känsla att det här är ett alldeles för stort förstaprojekt för dig. Men om det är det här du vill göra, så skulle jag säga att du ska fokusera på att få en sak att fungera i taget, så att du inte fastnar i fel detaljer från början.

Börja med en fix storlek på brädet och fixt antal bomber (t.ex. 10x10, 10 bomber). Strunta i allt vad bild heter. I ett första skede skulle jag strunta i själva speldynamiken också, och nöja mig med att sätta upp spelbrädet som en matris av 10x10 booleaner (sant/falskt). Matriser man ska räkna med är numpy bra till, men för det här skulle jag använda en tvådimensionell lista.

När du har lyckats sätta upp en spelplan kan du låta spelaren välja en ruta genom att skriva in ett radnummer och ett kolumnnummer, och så svarar programmet om där är en bomb eller inte.

När det funkar så kan programmet istället returnera hur många bomber som finns intill

När det fungerar så kan du tillåta användare att antingen sätta flagga eller "klicka upp" en position.

Etc etc. Att sätta upp en topp-10-lista etc är alldeles för avancerat i det här läget.

Ahh okej, men vet du vilken uppgift jag pratar om? Ges på KTH :-) 

 

Matrisen: jag tänkte mig antingen tulpis eller kanske.. array? Vad tror du?

Laguna 4988
Postad: 12 jan 2019

Jag skulle bara använda en lista 'board' av 10 listor.

Sedan kan jag göra board[i][j] för att komma åt ett visst element.

mrlill_ludde 761
Postad: 12 jan 2019
Laguna skrev:

Jag skulle bara använda en lista 'board' av 10 listor.

Sedan kan jag göra board[i][j] för att komma åt ett visst element.

 board är namnet på din lista, inget inbyggt antar jag? :)

Laguna 4988
Postad: 12 jan 2019
mrlill_ludde skrev:
Laguna skrev:

Jag skulle bara använda en lista 'board' av 10 listor.

Sedan kan jag göra board[i][j] för att komma åt ett visst element.

 board är namnet på din lista, inget inbyggt antar jag? :)

Det stämmer.

Ibland råkar man använda samma namn som något inbyggt i Python och om man dessutom vill använda det inbyggda med det namnet blir det väldigt konstigt. Men 'board' betyder ingenting.

mrlill_ludde 761
Postad: 12 jan 2019
Laguna skrev:
mrlill_ludde skrev:
Laguna skrev:

Jag skulle bara använda en lista 'board' av 10 listor.

Sedan kan jag göra board[i][j] för att komma åt ett visst element.

 board är namnet på din lista, inget inbyggt antar jag? :)

Det stämmer.

Ibland råkar man använda samma namn som något inbyggt i Python och om man dessutom vill använda det inbyggda med det namnet blir det väldigt konstigt. Men 'board' betyder ingenting.

 och [i] är för rader
[j] är för kolonner?

Laguna 4988
Postad: 12 jan 2019
mrlill_ludde skrev:
Laguna skrev:
mrlill_ludde skrev:
Laguna skrev:

Jag skulle bara använda en lista 'board' av 10 listor.

Sedan kan jag göra board[i][j] för att komma åt ett visst element.

 board är namnet på din lista, inget inbyggt antar jag? :)

Det stämmer.

Ibland råkar man använda samma namn som något inbyggt i Python och om man dessutom vill använda det inbyggda med det namnet blir det väldigt konstigt. Men 'board' betyder ingenting.

 och [i] är för rader
[j] är för kolonner?

Det bestämmer du själv, men det är en vanlig konvention.

Svara Avbryt
Close