π
<-

Concours de l'Avent 2021 "l'énigme des 3 portes" : jour 3

Concours de l'Avent 2021 "l'énigme des 3 portes" : jour 3

Concours
TI-Planet
de l'
Avent 2021

L'énigme des 3 portes
:
jour n°3

Viens rassembler les indices et bouts de code
Python
chaque jour de l'Avent ; sois parmi les premiers à passer l'une des portes pour gagner de superbes cadeaux de Noël !

... encore et encore...

Code: Select all
from math import ceil

def nop(*argv): pass
show, wait = nop, nop
neg_fill_rect = False
has_color = True

try: # NumWorks, NumWorks + KhiCAS, TI-Nspire CX + KhiCAS
import kandinsky
fill_rect = kandinsky.fill_rect
screen_w, screen_h = 320, 222
neg_fill_rect = True
except:
try: # TI
import ti_draw
try: # TI-Nspire CX II
ti_draw.use_buffer()
show = ti_draw.paint_buffer
except: # TI-83PCE/84+CE Python
wait = ti_draw.show_draw
screen_w, screen_h = ti_draw.get_screen_dim()
try: # check TI-83PCE/84+CE ti_draw 1.0 fill_rect bug
ti_draw.fill_rect(0,0,1,1)
def fill_rect(x, y, w, h, c):
ti_draw.set_color(c[0], c[1], c[2])
ti_draw.fill_rect(x, y, w, h)
except: # workaround
def fill_rect(x, y, w, h, c):
ti_draw.set_color(c[0], c[1], c[2])
ti_draw.fill_rect(x - 1, y - 1, w + 2, h + 2)
except:
try: # Casio Graph 90/35+E II, fx-9750/9860GIII, fx-CG50
import casioplot
casioplot.set_pixel(0, 0, (0, 0, 255))
col = casioplot.get_pixel(0, 0)
has_color = col[0] != col[2]
screen_w, screen_h = has_color and (384, 192) or (128, 64)
show = casioplot.show_screen
def fill_rect(x, y, w, h, c):
for dy in range(h):
for dx in range(w):
casioplot.set_pixel(x + dx, y + dy, c)
except:
try: # HP Prime
import hpprime
screen_w, screen_h = hpprime.grobw(0), hpprime.grobh(0)
hpprime.dimgrob(1, screen_w, screen_h, 0)
def col3_2_rgb(c, bits=(8,8,8), bgr=1):
return c[2*bgr]//2**(8 - bits[0]) + c[1]//2**(8 - bits[1])*2**bits[0] + c[2*(not(bgr))]//2**(8-bits[2])*2**(bits[0] + bits[1])
def fill_rect(x, y, w, h, c):
hpprime.fillrect(1, x, y, w, h, col3_2_rgb(c), col3_2_rgb(c))
def show():
hpprime.strblit(0, 0, 0, screen_w, screen_h, 1)
def wait():
while hpprime.keyboard(): pass
while not(hpprime.keyboard()): pass
except:
pass
if not neg_fill_rect:
_fill_rect = fill_rect
def fill_rect(x, y, w, h, c):
if w < 0:
x += w
w = -w
if h < 0:
y += h
h = -h
_fill_rect(x, y, w, h, c)

def draw_image(rle, x0, y0, w, pal, zoomx=1, zoomy=1, itransp=-1):
if not has_color:
pal = list(pal)
g_min, g_max = 255, 0
for k in range(len(pal)):
c = pal[k]
g = 0.299*c[0] + 0.587*c[1] + 0.114*c[2]
g_min = min(g_min, g)
g_max = max(g_max, g)
pal[k] = g
for k in range(len(pal)):
pal[k] = pal[k]<(g_min + g_max) / 2 and (0,0,0) or (255,255,255)
i, x = 0, 0
x0, y0 = int(x0), int(y0)
nvals = len(pal)
nbits = 0
nvals -= 1
while(nvals):
nvals >>= 1
nbits += 1
maskval = (1 << nbits) - 1
maskcnt = (0xFF >> nbits >> 1) << nbits
while i<len(rle):
v = rle[i]
mv = v & maskval
c = (v & maskcnt) >> nbits
if (v & 0b10000000 or nbits == 8):
i += 1
c |= rle[i] << (7 - nbits + (nbits == 8))
c = (c + 1)
while c:
cw = min(c, w - x)
if mv != itransp:
fill_rect(x0 + x*zoomx, y0, cw*zoomx, zoomy, pal[mv])
c -= cw
x = (x + cw) % w
y0 += x == 0 and zoomy
i += 1

palettes = (
(
(247,176,36),(247,207,73),(231,89,0),(247,131,8),
),
)
images = (
(
b"\b\x05\n?\n\x05\x18\x05\n7\n\x05\x20\x05\n/\n\x05(\x05\n'\n\x050\x05\n\x1f\n\x058\x05\n\x17\n\x05@\x05\n\x0f\n\x05H\x05\n\a\n\x05P\x05\x16\x05X\x05\x0e\x05\x05\x06\x05d\a\x06\a\a\x02\x04\x02\aX\a\x02\x0c\x02\aP\a\x02\x04\a\x04\x02\aH\a\x02\x04"
b"\x0f\x04\x02\a@\a\x02\x04\x17\x04\x02\a8\a\x02\x04\x1f\x04\x02\a0\a\x02\x04'\x04\x02\a(\a\x02\x04/\x04\x02\a\x20\a\x02\x047\x04\x02\a\x18\a\x02\x04?\x04\x02\a\x10\a\x02\x04G\x04\x02\a\b\a\x02\x04O\x04\x02\a\x00\a\x02\x04W\x04\x02\x0b\x02\x04_\x04"
b"\x02\x03\x02\x04g\x04\x0eg\n\x01\n_\n\t\nW\n\x05\x00\x05\nO\n\x05\b\x05\nG\n\x05\x04"
),
)
for y in range(ceil(screen_h / 32)):
for x in range(ceil(screen_w / 32)):
draw_image(images[0], x*32, y*32, 32, palettes[0])
show()
wait()

Lien
:
lots et ressources

critorAdmin

Niveau 19: CU (Créateur Universel)
Level up: 28.2%

Posts: 39619
Images: 11666
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender:
Calculator(s):
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
GitHub: critor

Re: Concours de l'Avent 2021 "l'énigme des 3 portes" : jour

Tiens, j'avais pris un jour d'avance
Some works in progress :
 The GUI Toolkit NF for nSpire Magic Light for nSpire CX/CX-II Magic Light for Casio Graph 90+E Simple Text Editor for nSpire OutRun for Casio Graph 90+E 95% 100% 100% 75% 100%
And more to come ... stay tuned

SlyVTTPremium

Niveau 11: LV (Légende Vivante)
Level up: 61.9%

Posts: 307
Images: 16
Joined: 19 Jan 2021, 09:41
Gender:
Calculator(s):
GitHub: SlyVTT

Re: Concours de l'Avent 2021 "l'énigme des 3 portes" : jour

SlyVTT wrote:Tiens, j'avais pris un jour d'avance

oui tu es trop fort

ptitjoz

Niveau 14: CI (Calculateur de l'Infini)
Level up: 4.8%

Posts: 282
Images: 0
Joined: 17 Oct 2018, 15:38
Location: France Loir et Cher
Gender:
Calculator(s):
Class: à la poursuite du vent et des étoiles

Re: Concours de l'Avent 2021 "l'énigme des 3 portes" : jour

C'était cousu de fil blanc, il y a un motif en X et en Y, donc c'était attendu
Some works in progress :
 The GUI Toolkit NF for nSpire Magic Light for nSpire CX/CX-II Magic Light for Casio Graph 90+E Simple Text Editor for nSpire OutRun for Casio Graph 90+E 95% 100% 100% 75% 100%
And more to come ... stay tuned

SlyVTTPremium

Niveau 11: LV (Légende Vivante)
Level up: 61.9%

Posts: 307
Images: 16
Joined: 19 Jan 2021, 09:41
Gender:
Calculator(s):
GitHub: SlyVTT

Re: Concours de l'Avent 2021 "l'énigme des 3 portes" : jour

Désolé, étant bien occupé je n'ai pas été très présent hier, mais j'ai bien vu passer ton script amélioré. Bravo, tu as compris que tout ne se jouerait pas les derniers jours, qu'il fallait commencer à lancer le script dès maintenant, préparer les outils pour pouvoir le faire le plus rapidement possible après publication, et commencer à tester des modifications ou ajouts. 😃👍

critorAdmin

Niveau 19: CU (Créateur Universel)
Level up: 28.2%

Posts: 39619
Images: 11666
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender:
Calculator(s):
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
GitHub: critor

Re: Concours de l'Avent 2021 "l'énigme des 3 portes" : jour

critor wrote:Désolé, étant bien occupé je n'ai pas été très présent hier, mais j'ai bien vu passer ton script amélioré. Bravo, tu as compris que tout ne se jouerait pas les derniers jours, qu'il fallait commencer à lancer le script dès maintenant, préparer les outils pour pouvoir le faire le plus rapidement possible après publication, et commencer à tester des modifications ou ajouts. 😃👍

le seul souci de ce concours c'est d’être dispo dans les moments décisifs.
Par exemple, là j'ai un peu de temps mais au moment de Noël ça va sans doute être compliqué.
En tous cas merci critor de travailler sans relâche ! je me demande bien comment tu fais !

ptitjoz

Niveau 14: CI (Calculateur de l'Infini)
Level up: 4.8%

Posts: 282
Images: 0
Joined: 17 Oct 2018, 15:38
Location: France Loir et Cher
Gender:
Calculator(s):
Class: à la poursuite du vent et des étoiles

Re: Concours de l'Avent 2021 "l'énigme des 3 portes" : jour

Le code déjà partagé est important pour la résolution, bien que non suffisant
(sauf si vous êtes géniaux )
.

Après oui, c'est le principe d'un concours de l'Avent d'avoir 24-25 indices et de se terminer vers Noël.

Mais si vous avez des horaires préférés pour les publications d'indices à compter du 18 décembre, ne pas hésiter à le dire. On peut même faire un petit sondage et voir si une tendance se dégage.

critorAdmin

Niveau 19: CU (Créateur Universel)
Level up: 28.2%

Posts: 39619
Images: 11666
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender:
Calculator(s):
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
GitHub: critor

Re: Concours de l'Avent 2021 "l'énigme des 3 portes" : jour

ptitjoz wrote:le seul souci de ce concours c'est d’être dispo dans les moments décisifs.
Par exemple, là j'ai un peu de temps mais au moment de Noël ça va sans doute être compliqué.
En tous cas merci critor de travailler sans relâche ! je me demande bien comment tu fais !

Sauf si certains d'entre vous sont encore plus géniaux que ce que je pense, les 3 indices des 3 derniers jours rendront successivement franchissables les portes Casio/NumWorks/TI, ordre non encore décidé.

Les plus rapides à faire ce qu'il faut suite à chacun de ces derniers indices gagneront, et ça dépendra entre autres de la compréhension du reste du code.

Je dois pouvoir m'arranger pour éviter la journée du samedi 25.

Que préférez-vous après ?
Dimanche 26 à Mardi 28 ?
Lundi 27 à Mercredi 29 ?

Merci.

critorAdmin

Niveau 19: CU (Créateur Universel)
Level up: 28.2%

Posts: 39619
Images: 11666
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender:
Calculator(s):
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
GitHub: critor

Return to News Divers

Who is online

Users browsing this forum: No registered users and 8 guests

-
Search
-
Social
-
Featured topics
123
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !

Partner and ad
-
Stats.
595 utilisateurs:
>571 invités
>18 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)

-
Other interesting websites
Texas Instruments Education
Global | France
(English / Français)
Banque de programmes TI
ticalc.org
(English)
La communauté TI-82
tout82.free.fr
(Français)