Está en la página 1de 36

Introduccin al Lenguaje de Programacin Naipi

Qu es Naipi?
Es un lenguaje de programacin creado con el objetivo de aprender a programar ya que ayuda a desarrollar las habilidades y conocimientos de las etapas del proceso de la programacin (mas adelante se ver cmo). Esta basado en un juego con las cartas de una baraja inglesa, en dnde se plantea una tarea a resolver y entonces, se deben hacer los traslados de cartas de un lugar a otro para resolver dicha tarea.

Juego? En qu consiste?
El juego consiste en suponer una situacin a la que llamaremos tarea y resolverla manipulando las 52 cartas de una baraja. Ejemplo 1: suponiendo la tarea siguiente: Tomar una carta y dejarla volteada. El jugador puede realizar las acciones necesarias sobre las cartas para llevar a cabo la tarea como: formar pilas, mover cartas entre ellas, cambiar su sentido (derecho y reverso) y preguntar sobre sus caractersticas.

ELEMENTOS DEL JUEGO

La Mano
El jugador inicia con su mano vaca y durante el juego puede tomar cartas e irlas dejando segn decida. Solo puede tener una carta en la mano.

Las pilas
Una pila es una secuencia de cartas apiladas una encima de otra. Pila 0: Es la pila original (el mazo) con las 52 cartas acomodadas (barajeadas) en orden aleatorio.

Las pilas
Pilas del usuario: Puede haber hasta 15 pilas y cada una tiene un nombre que corresponde con los nmeros naturales, es decir, pila 1, pila 2, etc. Llamaremos Pila vaca a la pila que no tiene cartas en ella.

Las Cartas
Existen las 52 cartas de un mazo de una baraja inglesa. Cada carta se identifica por un nmero y un mazo especfico.

Los nmeros pueden ser del 1 al 13 siendo el 1 el AS, 11 la Jota, 12 la Reina y 13 el Rey.

Las Cartas
Los mazos son:
corazn pica trbol diamante

Las Cartas
Inicialmente las cartas estn al derecho es decir con el mazo y nmero hacia arriba y el jugador puede poner al revs la carta que tenga en la mano, es decir, hacia abajo.
Carta al derecho

Carta al revs

FORMA DE JUGAR

Acciones primitivas
Tomar carta: El jugador toma la carta de la parte superior de una pila no vaca con su mano (debe indicarse el nombre de una pila y sta debe tener cartas). Dejar carta: El jugador deja la carta que esta en su mano en una pila determinada (debe indicarse el nombre de una pila y la mano debe tener una carta). Voltear carta: Cambia el sentido de la carta que esta en su mano, quedando en sentido contrario al que estaba inicialmente.

El jugador puede hacer preguntas sencillas (proposiciones atmicas) sobre las caractersticas de las cartas (solo sobre la que tiene en la mano) y sobre las pilas.

Preguntas sobre las cartas


Color: Para saber si es de un color determinado: rojo negro. Mazo: Para resolver si pertenece a algn mazo especfico: corazn, trbol, pica diamante. Sentido: Para determinar el sentido: derecho o reverso Nmero: Cuando se desea conocer el nmero de la carta, este puede ser del 1 al 13, siendo el 1 el AS, 11 la Jota, 12 la Reina y 13 el Rey.

Ejemplos de preguntas sobre las cartas


Es de color rojo? Es trbol? Est al derecho? Su nmero es 5? Su nmero es mayor que 5?

Preguntas sobre las pilas


Vaca: Para saber si una pila determinada ya no tiene cartas. Con elementos: Para saber si una pila especfica an tiene cartas.

Ejemplos de preguntas sobre las pilas


La pila est vaca? La pila tiene elementos?

El jugador puede unir varias preguntas (proposiciones atmicas) para referirse a dos caractersticas distintas en una misma pregunta, (formando proposiciones compuestas), para ello se usan los operadores lgicos Y, O y NO.

Ejemplos de operadores lgicos


Y Es de color Rojo Y es Corazn? O Es de color Rojo O es de color Negro? NO Es de color Rojo Y NO es Corazn?

Ejemplo 1: Uso de acciones bsicas.


Tomar una carta y dejarla volteada en otra pila.

Desarrollo del ejemplo 1


Las fases para la programacin son:
1. Anlisis del problema 2. Diseo del algoritmo
a) Elaboracin del diagrama de flujo b) Pruebas de escritorio

3. Implementacin del algoritmo


a) Codificacin b) Compilacin c) Prueba y depuracin

Anlisis del problema


Para poder resolver esta tarea se propone la siguiente solucin:
Tomar una carta de la pila 0, darle la vuelta y por ltimo, se dejar cara abajo (al revs) en la pila 1.

Diseo del Algoritmo


INICIO

Tomar una carta de la pila 0

Voltear la carta hacia abajo

Dejar la carta en la pila 1

FIN

Codificacin
INICIO_PROGRAMA HAY 2 PILAS INICIO TOMA(0), VOLTEA(), DEJA(1) FIN FIN_PROGRAMA

Ejemplo 2: Uso de preguntas sencillas.

Tomar una carta y si es roja dejarla en la pila 1, pero si es negra dejarla en la pila 2.

Anlisis del problema


Para poder resolver esta tarea se piensa de la siguiente manera:
Se debe revisar primero si la pila 0 tiene elementos. Se tomara una carta de la pila 0, se revisar su color, si es rojo se dejar en la pila 1, pero si es negro se dejar en la pila 2.

Diseo del Algoritmo


INICIO NO
La Pila NO 0, tiene elementos?

SI
Tomar una carta de la pila 0

NO

Es ROJA?

SI

Dejarla en la pila 2

Dejarla en la pila 1

FIN

Codificacin
INICIO_PROGRAMA HAY 3 PILAS INICIO SI(PILA_CON_ELEMENTOS(0)) { TOMA(0) SI(ES_ROJA) { DEJA(1) } SINO { DEJA(2) } } FIN FIN_PROGRAMA

Ejemplo 3: Uso de preguntas compuestas (operadores lgicos).

Tomar una carta, si es roja Y es corazn dejarla en la pila 1, sino, dejarla en la pila 2.

Anlisis del problema


Para poder resolver esta tarea se piensa de la siguiente manera:
Se tomara una carta de la pila 0, se revisar su color y el mazo, si es rojo Y es corazn se dejar en la pila 1, sino se dejar en la pila 2.

Diseo del Algoritmo


INICIO

NO

La Pila 0, tiene elementos?

SI
Tomar una carta de la pila 0

NO

Es Roja Y Es Corazon?

SI

Dejarla en la pila 2

Dejarla en la pila 1

FIN

Codificacin
INICIO_PROGRAMA HAY 3 PILAS INICIO SI(PILA_CON_ELEMENTOS(0)) { TOMA(0) SI(ES_ROJA AND ES_CORAZON) { DEJA(1) } SINO { DEJA(2) } } FIN FIN_PROGRAMA

Ejemplo 4: Uso de ciclos.

Formar 2 pilas, la pila 1 con cartas rojas y la pila 2 con cartas negras.

Anlisis del problema


Para poder resolver esta tarea se piensa de la siguiente manera:
Se tomara una carta de la pila 0, se revisar su color, si es rojo se dejar en la pila 1, pero si es negro se dejar en la pila 2. stas acciones debern repetirse mientras haya cartas en la pila 0.

Diseo del Algoritmo


INICIO NO
La Pila 0, tiene elementos?

SI
Tomar una carta de la pila 0

NO

Es ROJA?

SI
Dejarla en la pila 2 Dejarla en la pila 1

FIN

Codificacin
INICIO_PROGRAMA HAY 3 PILAS INICIO MIENTRAS(PILA_CON_ELEMENTOS(0)) { TOMA(0) SI(ES_ROJA) { DEJA(1) } SINO { DEJA(2) } } FIN FIN_PROGRAMA

También podría gustarte