Skip to content

Commit d360eec

Browse files
committed
bozze esercizi 4, 5, 6 matrici
1 parent 556a1b2 commit d360eec

File tree

2 files changed

+131
-9
lines changed

2 files changed

+131
-9
lines changed

Python/Esercizi/Matrici.py

Lines changed: 69 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
"""
22
Autor: Rurik
33
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
510
"""
611

712

@@ -22,6 +27,7 @@ def es0(h, l, k):
2227

2328

2429

30+
2531
#%%
2632
""" ES 1 - facile
2733
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):
4551

4652

4753

54+
4855
#%%
4956
""" ES 2 - medio/facile
5057
Riprendendo il codice dell'es 1, implementare la seguente funzionalità opzionale:
@@ -73,6 +80,7 @@ def es2(lista):
7380

7481

7582

83+
7684
#%%
7785
""" ES 3 - medio
7886
Data in input una matrice di '-', scrivere una funzione che, tramite un ciclo while, consenta di modificare singolarmente ogni elemento della matrice in un
@@ -102,10 +110,67 @@ def es3():
102110
# es3([['-', '-', '-'], ['-', '-', '-'], ['-', '-', '-']])
103111

104112
#%%
105-
""" ES 4 -
113+
""" ES 4 - medio/facile
114+
Data in input una matrice, si ritorni la somma delle diagonali
115+
"""
116+
117+
def es4(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+
106132

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.
107138
"""
108139

109-
def es4():
110-
#Inserisci qui il tuo codice
140+
def es5(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.
170+
"""
171+
import random
172+
173+
def es6():
111174
pass
175+
176+
es6()

Python/Soluzioni/Matrici.py

Lines changed: 62 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
"""
22
Autor: Rurik
33
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
5+
liste di liste.
56
67
Conoscenze richieste:
7-
- Manipolazione di liste e tuple
8+
- Manipolazione delle strutture dati
89
- Manipolazione delle stringhe
910
"""
1011

@@ -199,12 +200,68 @@ def es3(matrice):
199200
print()
200201

201202

202-
es3([['-', '-', '-'], ['-', '-', '-'], ['-', '-', '-']])
203+
# es3([['-', '-', '-'], ['-', '-', '-'], ['-', '-', '-']])
203204

204205
#%%
205-
""" ES 4 -
206+
""" ES 4 - medio/facile
207+
Data in input una matrice, si ritorni la somma delle diagonali
208+
"""
209+
210+
def es4(matrice):
211+
return
212+
213+
import random
206214

215+
print(es4([[ 8, 2, 6, -9, 3, 4, -5],
216+
[ 7, -3, -5, 2, -7, 9, 1],
217+
[ 4, -6, -8, 3, 5, 7, 4],
218+
[-1, 7, 3, -6, 9, 5, 5],
219+
[-6, 2, 9, 6, -5, -1, 2],
220+
[ 5, -4, -7, -3, 6, 8, -2],
221+
[-2, 4, 7, 4, 8, -8, 9]]))
222+
223+
print([[random.randint(-9, 9) for x in range(7)] for y in range(7)])
224+
225+
226+
#%%
227+
""" ES 5 - medio
228+
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.
207231
"""
208232

209-
def es4():
233+
def es5(lista1, lista2, matrice):
210234
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.
260+
"""
261+
import random
262+
263+
def es6():
264+
pass
265+
266+
es6()
267+

0 commit comments

Comments
 (0)