You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Python/Esercizi/Matrici.py
+69-4Lines changed: 69 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,12 @@
1
1
"""
2
2
Autor: Rurik
3
3
4
-
Per i seguenti esercizi, a meno che non sia definito diversamente dall'esercizio, si utilizzino matrici composte da liste di liste
4
+
Ricordiamo che per matrice si intende un array bidimensionale (array di array) contenente, in ciascun sotto-array, qualsiasi tipo di valore. In python le rappresentiamo come
5
+
liste di liste.
6
+
7
+
Conoscenze richieste:
8
+
- Manipolazione delle strutture dati
9
+
- Manipolazione delle stringhe
5
10
"""
6
11
7
12
@@ -22,6 +27,7 @@ def es0(h, l, k):
22
27
23
28
24
29
30
+
25
31
#%%
26
32
""" ES 1 - facile
27
33
Riutilizzando il codice dell'esercizio precedente, definire una funzione che data in input una lista di tuple, dove ogni tupla contiene una 3 valori
@@ -45,6 +51,7 @@ def es1(lista):
45
51
46
52
47
53
54
+
48
55
#%%
49
56
""" ES 2 - medio/facile
50
57
Riprendendo il codice dell'es 1, implementare la seguente funzionalità opzionale:
@@ -73,6 +80,7 @@ def es2(lista):
73
80
74
81
75
82
83
+
76
84
#%%
77
85
""" ES 3 - medio
78
86
Data in input una matrice di '-', scrivere una funzione che, tramite un ciclo while, consenta di modificare singolarmente ogni elemento della matrice in un
Data in input una matrice, si ritorni la somma delle diagonali
115
+
"""
116
+
117
+
defes4(matrice):
118
+
return
119
+
120
+
121
+
122
+
# print(es4([[ 8, 2, 6, -9, 3, 4, -5],
123
+
# [ 7, -3, -5, 2, -7, 9, 1],
124
+
# [ 4, -6, -8, 3, 5, 7, 4],
125
+
# [-1, 7, 3, -6, 9, 5, 5],
126
+
# [-6, 2, 9, 6, -5, -1, 2],
127
+
# [ 5, -4, -7, -3, 6, 8, -2],
128
+
# [-2, 4, 7, 4, 8, -8, 9]]))
129
+
130
+
131
+
106
132
133
+
#%%
134
+
""" ES 5 - medio
135
+
Data in input una matrice, si sommino i bordi della matrice. Ogni elemento deve essere sommato con i precedenti, partedo dal vertice in alto a sinistra e facendo una roatazione oraria
136
+
sui 4 bordi della matrice. L'ultima somma dovrà quindi avvenire sull'elemento (0,1). Si ritorni la matrice modificata e il valore che, lungo i bordi, è stato incontrato più di frequente,
137
+
in caso di parità si ritorni il maggiore.
107
138
"""
108
139
109
-
defes4():
110
-
#Inserisci qui il tuo codice
140
+
defes5(lista1, lista2, matrice):
141
+
return
142
+
143
+
# print(es5([[ 8, 2, 6, -9, 3, 4, -5],
144
+
# [ 7, -3, -5, 2, -7, 9, 1],
145
+
# [ 4, -6, -8, 3, 5, 7, 4],
146
+
# [-1, 7, 3, -6, 9, 5, 5],
147
+
# [-6, 2, 9, 6, -5, -1, 2],
148
+
# [ 5, -4, -7, -3, 6, 8, -2],
149
+
# [-2, 4, 7, 4, 8, -8, 9]]))
150
+
151
+
152
+
153
+
154
+
#%%
155
+
"""ES 6 - difficile
156
+
Progettiamo il nostro primo gioco sulle matrici!
157
+
La nostra funzione questa volta non riceverà parametri in input e non ritornerà nulla, si svolgerà tutto interamente sul terminale.
158
+
Il gioco si svolgerà su una matrice 11x11 dove ogni valore sarà equivalente ad uno spazio bianco. Il nostro personaggio (PG), rappresentato dal carattere '@' partirà in posizione 5,5
159
+
(al centro della matrice) e potrà spostarsi dentro di essa tramite i classici comandi WASD. Quando il PG attraversa un bordo della matrice, riappare dall'altra parte (effetto PAC-MAN).
160
+
Al disopra della matrice (o dovunque preferiate) dovrà esserci un contatore delle vite del personaggio e un contatore dei punti.
161
+
All'interno dell matrice saranno presenti degli NPC nemici, rappresentati con il carattere '#' che ad od ogni turno si sposteranno in una casella casuale adiacente (non in diagonale).
162
+
Se un NPC entra a contatto con il nostro PG, (si trovano quindi sulla stessa casella), il PG verrà spostato su una casella adiacente casuale (anche in diagonale) e perderà una vita.
163
+
L'obbiettivo del PG è quello di raccogliere punti '+' in giro per la matrice. Il primo punto apparirà in una posizione casuale diversa da quella del PG e del NPC. I successivi punti
164
+
compariranno sempre in posizioni casuali diverse da quelle del PC e degli NPC (che andranno aumentando ogni 3 punti raccolti, comparendo in caselle casuali diverse da quella del PG, di
165
+
altri NPC e del punto).
166
+
Il gioco va in GAME OVER quando il PG perde tutte e 3 le sue vite.
167
+
168
+
Per lo svolgimento di questo esercizio consiglio di usare copiare la traccia su uno script vuoto, strutturando il programma su più funzioni con ruoli ben precisi.
169
+
L'esercizio può essere svolto anche utilizzando la programmazione ad oggetti.
Copy file name to clipboardExpand all lines: Python/Soluzioni/Matrici.py
+62-5Lines changed: 62 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,11 @@
1
1
"""
2
2
Autor: Rurik
3
3
4
-
Per i seguenti esercizi, a meno che non sia definito diversamente dall'esercizio, si utilizzano matrici composte da liste di liste.
4
+
Ricordiamo che per matrice si intende un array bidimensionale (array di array) contenente, in ciascun sotto-array, qualsiasi tipo di valore. In python le rappresentiamo come
Data in input una matrice, si sommino i bordi della matrice. Ogni elemento deve essere sommato con i precedenti, partedo dal vertice in alto a sinistra e facendo una roatazione oraria
229
+
sui 4 bordi della matrice. L'ultima somma dovrà quindi avvenire sull'elemento (0,1). Si ritorni la matrice modificata e il valore che, lungo i bordi, è stato incontrato più di frequente,
230
+
in caso di parità si ritorni il maggiore.
207
231
"""
208
232
209
-
defes4():
233
+
defes5(lista1, lista2, matrice):
210
234
return
235
+
236
+
print(es4([[ 8, 2, 6, -9, 3, 4, -5],
237
+
[ 7, -3, -5, 2, -7, 9, 1],
238
+
[ 4, -6, -8, 3, 5, 7, 4],
239
+
[-1, 7, 3, -6, 9, 5, 5],
240
+
[-6, 2, 9, 6, -5, -1, 2],
241
+
[ 5, -4, -7, -3, 6, 8, -2],
242
+
[-2, 4, 7, 4, 8, -8, 9]]))
243
+
244
+
#%%
245
+
"""ES 6 - difficile
246
+
Progettiamo il nostro primo gioco sulle matrici!
247
+
La nostra funzione questa volta non riceverà parametri in input e non ritornerà nulla, si svolgerà tutto interamente sul terminale.
248
+
Il gioco si svolgerà su una matrice 11x11 dove ogni valore sarà equivalente ad uno spazio bianco. Il nostro personaggio (PG), rappresentato dal carattere '@' partirà in posizione 5,5
249
+
(al centro della matrice) e potrà spostarsi dentro di essa tramite i classici comandi WASD. Quando il PG attraversa un bordo della matrice, riappare dall'altra parte (effetto PAC-MAN).
250
+
Al disopra della matrice (o dovunque preferiate) dovrà esserci un contatore delle vite del personaggio e un contatore dei punti.
251
+
All'interno dell matrice saranno presenti degli NPC nemici, rappresentati con il carattere '#' che ad od ogni turno si sposteranno in una casella casuale adiacente (non in diagonale).
252
+
Se un NPC entra a contatto con il nostro PG, (si trovano quindi sulla stessa casella), il PG verrà spostato su una casella adiacente casuale (anche in diagonale) e perderà una vita.
253
+
L'obbiettivo del PG è quello di raccogliere punti '+' in giro per la matrice. Il primo punto apparirà in una posizione casuale diversa da quella del PG e del NPC. I successivi punti
254
+
compariranno sempre in posizioni casuali diverse da quelle del PC e degli NPC (che andranno aumentando ogni 3 punti raccolti, comparendo in caselle casuali diverse da quella del PG, di
255
+
altri NPC e del punto).
256
+
Il gioco va in GAME OVER quando il PG perde tutte e 3 le sue vite.
257
+
258
+
Per lo svolgimento di questo esercizio consiglio di usare copiare la traccia su uno script vuoto, strutturando il programma su più funzioni con ruoli ben precisi.
259
+
L'esercizio può essere svolto anche utilizzando la programmazione ad oggetti.
0 commit comments