Mini Tetris - International Olympiad in Informatics

Transcripción

Mini Tetris - International Olympiad in Informatics
InternationalOlympiadinInformatics2016
12-19thAugust2016
Kazan,Russia
day0_2
tetris
Country:api-COL
MiniTetris
Comousteddebesaber,elpopularjuegodecomputador“Tetris”fueinventadoporel
programadorrusoAlexeyPajitnov.Enesteproblemaustednecesitaimprimirun
programaquejuegueunaversiónsimplificadadeestejuego.
Elcampodejuegoesunrectángulovertical,llamadoel“pozo”.Aparecenfiguras
aleatoriasenlapartesuperiordelpozo,eljugadorelijelaposiciónhorizontalyla
rotacióndelafigura,despuéslafiguracaeenelpozo.Elobjetivodeljuegoescrear
unalíneahorizontalllenasininterrupciones.Cuandosecreaunalíneaasí,desaparece,
ycaentodoslosbloquesencimadelalíneaborradacaen.
Enestamodificacióndeljuego,eltamañodelpozoes 3 × 4 unidades,yúnicamente
haytrestiposdefiguras:
Tipo Figura
1
2
3
Ustedpierdesienalgúnpuntodeljeugohaycincolíneasnovacíasenelpozo.Usted
ganasiustednoperdiódespuésquehancaído n figuras.
Ustednecesitaescribirunprogramaquejuegueeljuegoantesdescritoygane
independientementedequefigurasaparezcan.
Detallesdeimplementación
Usteddebeimplementarcuatrofunciones(métodos):
vo idinit(intn).Estafunciónsellamaantesdecualquierografunción.
vo idne w_figure (intfigure _type ).Estafunciónsellamacuandoapareceuna
nuevafigura.figure _type eselnúmerode 1 a 3 ,indicandoeltipodefigurade
latablaantesdada.
intge tPo sitio n().Estafuncióndebedevolverelnúmerode(0\)to 2 ,laposición
1/3
delbloquemásalaizquierdadelaúltimafigura.
intge tRo ta tio n().Estafuncióndebedevolverunnúmerode 0 a 3 ,elnúmero
derotaciónensentidoantihorariodelafigura.
Lasfuncionesge tPo sitio nyge tRo ta tio nseránllamadasúnicamentedespuésde
ne w_figure .
Porfavormirelosarchivosmodelodeimplementaciónproporcionadospordetallesen
sulenguajedeprogramación.
Ejemplo
Elcalificadorhacelassiguientesllamadasdefunciones:
init(3).Habrántresfiguras.
ne w_figure (1).Unafiguradeltipo 1 caedelapartesupeiordelpozo.
ge tPo sitio n()devuelve 0 .Estoquieredecirqueeljugadorquiereponerlafigura
enlacolumnamásalaizquierda;
ge tRo ta tio n()devuelve 1 (o 3 ).Estoquieredecirqueeljugadorquiererotarla
figuraverticalmente.
Despuésquelafigurahacaído,elpozosevecomoesto.
ne w_figure (2).
ge tPo sitio n()devuelve 1 .
ge tRo ta tio n()devuelve 1 .
Despuésquelafigurahacaído,laprimeralíneaestállena,porlotanto
desapareceysevecomoesto.
ne w_figure (1).
ge tPo sitio n()devuelve 1 .
ge tRo ta tio n()devuelve 0 (o 2) .
Despuésquelafigurahacaído,lasegundalíneaestállena,porlotantoelpozo
sevecomoesto.
2/3
Subtareas
Entodaslassubtareas n
≤ 1000 .
1. (7puntos)Todaslasfigurassondeltipo 1 ,
2. (13puntos)Todaslasfigurassondeltipo 2 ,
3. (21puntos)Todaslasfigurassondeltipo 3 ,
4. (53puntos)Lasfiguraspuedenserdediferentestipos.
CalificadorEjemplo
Elcalificadorejemploleelaentradaenelsiguienteformato:
línea1:Unentero n .
línea2: n enteros:tiposdefiguras.
NotasdelLenguaje
Porfavor,uselosarchivosmodelosproporcionadosparadetallesdeimplementación
ensulenguajedeprogramación.
3/3

Documentos relacionados