InicioCiencia EducacionAprendiendo a programar PSeint

Aprendiendo a programar PSeint

Ciencia Educacion9/24/2018
Bueno, hace un rato subí un post https://www.taringa.net/posts/ciencia-educacion/20248627/Aprendiendo-a-programar-21-bj-funcional-pseudo-codigo.html en el que pretendía poner un enlace a este pseudo código para descargarlo, pero como no se puede lo copie y lo pegue acá, si alguno lo quiere usar y dejar algún comentario es bienvenido, lo que tendría que hacer es descargar PSent desde la pagina oficial y luego en un archivo nuevo,borrar lo que aparece por defecto (Proceso sin titulo y fin de proceso) y con la pagina en blanco pegar todo lo que sigue a continuación subproceso print_c (t,c_1,c_2,c_3,c_4,c_5,c_6,c_7,c_8,c_9,c_10,c_m)//valor actual de las cartas,c_m <- cartas que debe mostrar definir i,j,x,n_cart,cartas_en_mesa,carta_1,carta_2,carta_3,carta_4,carta_5,carta_6,carta_7,carta_8,carta_9,carta_10 como entero; definir cartas como caracter; definir a,b,c,d,e,f,g,n,reng Como Caracter; dimension reng[4,5]; dimension cartas[4,50]; cartas_en_mesa<-c_m; n_cart<-(5*cartas_en_mesa)-1; x<-0; n<-"?";//son los caracteres que forman las figuras de las cartas a<-"|"; b<-"_"; c<-"|"; d<-"|"; e<-""; f<-" "; g<-"_"; reng[0,0]<-f; reng[0,1]<-b; reng[0,2]<-b; reng[0,3]<-b; reng[0,4]<-f; reng[1,0]<-a; reng[1,1]<-f; reng[1,2]<-f; reng[1,3]<-f; reng[1,4]<-a; reng[2,0]<-a; reng[2,1]<-f; reng[2,2]<-n; reng[2,3]<-f; reng[2,4]<-a; reng[3,0]<-c; reng[3,1]<-g; reng[3,2]<-b; reng[3,3]<-g; reng[3,4]<-d; para i <-0 hasta 3 Hacer//genera un arreglo que muestra 10 cartas en 4 renglones cada una, una al lado de la otra para j<-0 hasta 49 Hacer si x<5 entonces cartas[i,j]<-reng[i,x]; x<-x+1; FinSi si x>4 entonces x<-0; FinSi FinPara FinPara carta_1<-c_1; carta_2<-c_2; carta_3<-c_3; carta_4<-c_4; carta_5<-c_5; carta_6<-c_6; carta_7<-c_7; carta_8<-c_8; carta_9<-c_9; carta_10<-c_10; si carta_1>9 Entonces//si el numero tiene 2 cifras ajusta el espacio para que no se deforme la carta cartas[2,1]<-e; FinSi si carta_2>9 Entonces cartas[2,6]<-e; FinSi si carta_3>9 entonces cartas[2,11]<-e; FinSi si carta_4>9 Entonces cartas[2,16]<-e; FinSi si carta_5>9 Entonces cartas[2,21]<-e; FinSi si carta_6>9 entonces cartas[2,26]<-e; FinSi si carta_7>9 Entonces cartas[2,31]<-e; FinSi si carta_8>9 Entonces cartas[2,36]<-e; FinSi si carta_9>9 entonces cartas[2,41]<-e; FinSi si carta_10>9 Entonces cartas[2,46]<-e; FinSi cartas[2,2]<-CONVERTIRATEXTO(carta_1);//guartda el valor en el lugar que correspnde para que se imprima en el centro de la carta cartas[2,7]<-ConvertirATexto(carta_2); cartas[2,12]<-CONVERTIRATEXTO(carta_3); cartas[2,17]<-CONVERTIRATEXTO(carta_4); cartas[2,22]<-CONVERTIRATEXTO(carta_5); cartas[2,27]<-CONVERTIRATEXTO(carta_6); cartas[2,32]<-CONVERTIRATEXTO(carta_7); cartas[2,37]<-ConvertirATexto(carta_8); cartas[2,42]<-CONVERTIRATEXTO(carta_9); cartas[2,47]<-CONVERTIRATEXTO(carta_10); si cartas_en_mesa<3 y t=0 entonces//hace que en la primer mano, el valor de la segunda carta de la mesa no sea visible cartas[2,7]<-n; si carta_2>9 Entonces cartas[2,6]<-f; FinSi FinSi para i <-0 hasta 3 Hacer//imprime los cuatro renglones de las cartas para j <-0 hasta n_cart Hacer//n_cart indica el numero de cartas que debe mostrar si j=0 entonces escribir " ",cartas[i,j],sin saltar;//deja un espacio antes de la primer carta sino si (1+j) mod 5 =0 entonces escribir cartas[i,j]," ",sin saltar;//deja un espacio entre las cartas sino escribir cartas[i,j],sin saltar; finsi FinSi FinPara escribir ""; FinPara Escribir ""; Escribir ""; FinsubProceso subproceso espacio(num)//deja "num" lineas en blanco definir i como entero; para i<-1 hasta num hacer escribir ""; FinPara FinSubProceso subproceso Linea(num)//imprime una linea separadora de largo "num" definir i como entero; para i<-1 hasta num hacer escribir "__",sinsaltar; FinPara escribir ""; FinSubProceso subproceso carta<- cart (jugadas,num)//elije la carta num de las 20 repartidas al azar definir carta Como Entero; carta<-jugadas; FinSubProceso SubProceso reglas()//si el ususario pone si, imprime las reglas del juego definir resp como caracter; escribir " Si desea leer las reglas del juego escriba si, para"; escribir " comenzar el juego presione enter."; leer resp; si resp="si" Entonces Borrar Pantalla; espacio(1); escribir "Reglas del juego: "; espacio(1); escribir"El objetivo del juego es sumar 21 puntos o llegar los mas cerca posible sin pasarse"; escribir"En caso de que los jugadores no lleguen a 21, quien quede mas cerca gana"; espacio(1); escribir"La mesa reparte inicialmente 2 cartas a los jugadores y 2 para la mesa, "; escribir"la segunda carta de la mesa permanece oculta hasta que el jugador termine su mano"; escribir"una vez repartidas las cartas iniciales, el jugador podra pedir "; escribir"carta, hasta que se plante, o se pase de 21"; espacio(1); escribir"Puntajes: Las cartas mayores a 9 suman 10 puntos, los ases suman 1 punto u 11, segun convenga, el resto de las cartas "; escribir"suman su valor numerico"; Escribir "Si el jugador obtiene en las dos primeras cartas la suma de 21 se considera Black Jack automaticamente gana la partida"; espacio(1); escribir"Apuestas: Las apuesas se realizan antes de repartir las cartas"; espacio(1); escribir"Pago: A los jugadores que hacen Black Jack se les paga 3 a 1 su apuesta, a los que ganen "; escribir"en el transcurso de la partida se les paga el mismo valor de la apuesta"; escribir"En caso de empate, se devuelve el valor de la apuesta"; espacio(1); escribir" Para comenzar el juego presione enter."; Esperar Tecla; FinSi finsubproceso Proceso BJ reglas(); Limpiar Pantalla; definir finjuego,se_planta,b_j,w_mesa,w_jug,empate, esEntero,sin_dinero como logico; definir car_1,car_2,car_3,car_4,car_5,car_6,car_7,car_8,car_9,car_10,cartas_jug,mano,cartas_mesa,chang,chang_m,var como entero; definir baraja,jugadas,i,j,x,n,a,b,c,d,e,f,caja,apuesta,puntos_j,puntos_m,cont,cont_m,n_juegos como entero; definir seguir_jugando,resp,exclamacion,mens_1, mens_2,mens_3, mens_4, mens_5,mens_6,mens_7,mens_8,mens_9,mens_10,mens_11,mens_12,mens_13,mens_14,mens_15,mens_16,opc como caracter; Definir apuest, vx Como Cadena; seguir_jugando<-"si";//solo para inicializar la variable sin_dinero<-falso; mens_1<-" Hola, bienbenido a 21, Suerte!!"; mens_2<-" Cuanto quieres apostar en esta mano? "; mens_3<-" Lamentablemente no dispones de tanto dinero, debes apostar menos de: "; mens_4<-" Tus cartas son: "; mens_5<- " La primer carta de la mesa es: "; mens_6<-" Para pedir otra carta responder si, o presiona Enter para plantarse"; mens_7<-" Tu apuesta actual es de: "; mens_8<-" Lamentablemente en esta mano has perdido : ( "; mens_9<-" Felicidades, le ganaste a la mesa!!!!"; mens_10<-" El valor de la apuesta debe ser un Numero mayor que cero y menor que "; mens_11<-" Para que el juego tenga un poco de gracia deberias apostar algo mas "; mens_12<-" Felicidades, has sacado 21 en la primer mano y le ganaste a la mesa"; mens_13<-" En este caso el valor de tu apuesta se triplica, has ganado: $"; mens_14<-" ups perdiste, te has pasado de 21 "; mens_15<-" Has ganado: $"; mens_16<-" Esta mano ha terminado en empate, te devolvemos tu apuesta"; caja<-1500; apuesta<-1; exclamacion<-"!!!"; dimension jugadas[20];//aca se guardan las 20 cartas al azar dimension baraja[48];//maso de cartas n<-1; x<-0; n_juegos<-0; mientras seguir_jugando<>"no" y sin_dinero=falso Hacer//mientras el jugador quiera seguir y tenga aun dinero Borrar Pantalla; finjuego <- falso; se_planta<-falso; //se vuelven a iniciar algunas variables, menos caja puntos_j<-0; puntos_m<-0; w_mesa<-falso; w_jug<-falso; empate<-falso; b_j<-falso; cont<-1; cont_m<-12; chang<-0; chang_m<-0; x<-0; si n_juegos=0 o n_juegos mod 2 =0 Entonces//cada 2 jugads se vuelve el maso a su estado inicial para i<-0 hasta 3 hacer //una vez por cada palo n<-1;//primera carta de cada palo para j<-0 hasta 11 hacer baraja<-n; x<-x+1;//x recorre las 48 cartas del maso n<-n+1; FinPara//guarda en el maso 12 cartas x 4 palos FinPara FinSi i<-0; mientras i<20 hacer// reparte 20 cartas al azar de 48 disponibles en el maso x<-azar(48); si baraja<> 0 entonces jugadas<-baraja;//guarda las 20 cartas en jugadas baraja<-0;//evita que se repitan las cartas del maso i<-i+1; FinSi Finmientras n_juegos<-n_juegos+1;//contador de juegos, se vuelve a cear el maso de cartas cada 2 juegos escribir mens_1, exclamacion; espacio(1); escribir " Dinero disponible: ",caja; espacio(1); repetir Escribir mens_2; Leer apuest; // Validar si es un numero esEntero<- Verdadero; // 123 n<-LONGITUD(apuest); i<-0; Mientras ((i < n ) Y (esEntero)) Hacer vx<- SUBCADENA(apuest, i, i); esEntero<- (vx = "0" ) O (vx = "1" ) O (vx = "2" ) O (vx = "3" ) O (vx = "4" ) O (vx = "5" ) O (vx = "6" ) O (vx = "7" ) O (vx = "8" ) O (vx = "9" ) O (vx = "-" ); i<-i+1; FinMientras Si no(esEntero) entonces Borrar Pantalla; Escribir " Debe ingresar un numero: "; FinSi si esEntero entonces apuesta<-convertiranumero(apuest); FinSi si apuesta> caja entonces Borrar Pantalla; espacio(1); escribir mens_3,caja,exclamacion; espacio(1); esperar 2 segundos; esEntero<-falso; finsi si apuesta=0 Entonces escribir mens_11; esEntero<-falso; FinSi Hasta Que (esEntero) Borrar Pantalla; caja<-caja-apuesta; escribir " Dinero disponible: ",caja; escribir mens_7,apuesta; espacio(1); cartas_jug<-2;//numero de cartas que se muetran en la primer mano al jugador cartas_mesa<-2;//numero de cartas que se muestran en la primer mano a la mesa mano<-0; mientras finjuego = falso hacer//desarrollo del juego Borrar Pantalla; escribir " Dinero disponible: ",caja; escribir mens_7,apuesta; espacio(1); si mano=0 y cartas_jug<3 Entonces //acumula los puntos de la primer carta de la mesa si cart(jugadas,11) <>1 y cart(jugadas,11) <10 Entonces//si la carta es ditinta de uno y menor a diez puntos_m<-puntos_m+cart(jugadas,11);//suma el valor de la carta SiNo si cart(jugadas,11)=1 Entonces//si la primer carta es 1 vale 11 puntos_m<-puntos_m+11; chang_m<-chang_m+1;//cambia la variable que permite volver el 11 a 1 si es conveniente sino si cart(jugadas,11)>9 Entonces//si vale 10 o mas se suman 10 puntos_m<-puntos_m+10; finsi FinSi FinSi FinSi car_1<-cart(jugadas,11);//almacena en la variable car_n el valor de la carta que le toco a la mesa para imprimirla car_2<-cart(jugadas,12);//para la mesa se sacaron las cartas del 10 al 19 car_3<-cart(jugadas,13); car_4<-cart(jugadas,14); car_5<-cart(jugadas,15); car_6<-cart(jugadas,16); car_7<-cart(jugadas,17); car_8<-cart(jugadas,18); car_9<-cart(jugadas,19); car_10<-cart(jugadas,10); si se_planta=verdadero Entonces//se ejecuta luego de la mano del jugador mano<-mano+1; si cart(jugadas,12)=1 Entonces//se evalua el valor de la segunda carta de la mesa si puntos_m<11 Entonces puntos_m<-puntos_m+11; chang_m<-chang_m+1; SiNo puntos_m<-puntos_m+1; FinSi SiNo si cart(jugadas,12)<10 Entonces puntos_m<-puntos_m+cart(jugadas,12); SiNo puntos_m<-puntos_m+10; FinSi FinSi si puntos_m>21 y chang_m<>0 Entonces//si se pasa de 21 y hay un 1 con valor 11, lo vuelve a uno puntos_m<-puntos_m-10; chang_m<-chang_m-1; FinSi FinSi si mano>1 y se_planta=Verdadero Entonces//luego de la mano del jugador y de descubrir la segunda carta de la mesa i<-13; //a partir de la tercer carta de la mesa mientras puntos_m<=17 y puntos_m<=puntos_j Hacer//la mesa deja de sacar cartas cuando llega a 17 o si supera al jugador si cart(jugadas,i)=1 Entonces si puntos_m<11 Entonces puntos_m<-puntos_m+10; chang_m<-chang_m+1; SiNo puntos_m<-puntos_m+1; FinSi SiNo si cart(jugadas,i)<10 Entonces puntos_m<-puntos_m+cart(jugadas,i); SiNo puntos_m<-puntos_m+10; FinSi FinSi si puntos_m>21 y chang_m<>0 Entonces puntos_m<-puntos_m-10; chang_m<-chang_m-1; FinSi cartas_mesa<-cartas_mesa+1;//aumenta la cantidad de cartas a mostrar para mesa i<-i+1;//pasa a la siguiente carta FinMientras finjuego<-verdadero;//cuando alcanza 17 puntos o mas termina el juego FinSi escribir " Las cartas de la mesa son: "; print_c(mano,car_1,car_2,car_3,car_4,car_5,car_6,car_7,car_8,car_9,car_10,cartas_mesa); escribir " Las catras de la mesa suman: ", puntos_m, " puntos"; Linea(28); espacio(1); car_1<-cart(jugadas,1);//valor de las 10 cartas del jugador car_2<-cart(jugadas,2);//son las cartas del 0 al 9 de las seleccionadas al azar car_3<-cart(jugadas,3); car_4<-cart(jugadas,4); car_5<-cart(jugadas,5); car_6<-cart(jugadas,6); car_7<-cart(jugadas,7); car_8<-cart(jugadas,8); car_9<-cart(jugadas,9); car_10<-cart(jugadas,0); espacio(1); escribir " Tus cartas son: "; espacio(1); si se_planta=falso Entonces//mientras pida mas cartas para i<-cont hasta cartas_jug Hacer//cont inicial vale uno, accion para la carta uno si puntos_j <11 y cart(jugadas,i)=1 Entonces var <-cart(jugadas,i);//si sale un uno y es conveniente cambia a 11 var<-11; chang<-chang+1;//esta variable indica que hay un uno que vale 11 en caso de que se pase se puede restar 10 puntos_j <- puntos_j+var; sino si puntos_j >10 y cart(jugadas,i)=1 Entonces//si tiene 11 pntos o mas el uno vale uno puntos_j<-puntos_j+cart(jugadas,i); finsi FinSi si cart(jugadas,i)>9 entonces //si la carta es 10 o mas,se suman 10 puntos puntos_j <-puntos_j+10; SiNo si cart(jugadas,i)<>1 entonces//si no es mayor a 9 y es distinta de uno, se suma el valor de la carta puntos_j<-puntos_j+cart(jugadas,i); finsi FinSi si puntos_j>21 y chang>0 Entonces//si se paso de 21 y hay algun 1 con valor 11, se restan 10(el uno vuelve a valer uno) puntos_j<-puntos_j-10; chang<-chang-1; FinSi cont<-cont+1; FinPara FinSi print_c(1,car_1,car_2,car_3,car_4,car_5,car_6,car_7,car_8,car_9,car_10,cartas_jug);//imprime las cartas del jugador escribir " Tus cartas suman: ",puntos_j," puntos."; opc<-"fin";//solo para inicializar la variable si cartas_jug=2 y puntos_j =21 y puntos_m<21 y se_planta=falso Entonces//si es la primer mano y obtinene 21 gana caja<- caja+apuesta*3; Escribir mens_12; escribir mens_13,apuesta*3; escribir " Dinero disponible: ",caja; finjuego<-Verdadero;//termina el juego se_planta<-falso; b_j<-Verdadero;//variable para no volver a sumar la caja terminado el juego FinSi si puntos_j<21 y se_planta= falso entonces//mientras no se pase de 21 y pida otra carta escribir mens_6; leer opc; finsi si opc ="si" y puntos_j<21 Entonces//si piede mas cartas finjuego<-Falso; cartas_jug<-cartas_jug +1;//incementa l numero de cartas a mostrar para el jugador FinSi si puntos_j<=21 y opc<>"si" Entonces//si no pide mas cartas y no se pasa de 21, se planta se_planta <- Verdadero; FinSi si se_planta=verdadero entonces mano<-mano+1;//sale de la mano 0 para el jugador, la mesa ahora mostrara sus 2 cartas a la vista FinSi // Borrar Pantalla; si puntos_j>21 Entonces//si se pasa de 21 trmina el juego finjuego<-verdadero; FinSi si caja=0 Entonces sin_dinero<-Verdadero; FinSi FinMientras espacio(2); linea(28); si puntos_j>=22 Entonces//si el jugador se pasa de 21 gana la mesa w_mesa<-Verdadero; FinSi si puntos_j<=21 y b_j=falso Entonces//cuando no se paso y no tiene 21 en la primer mano(la apuesta se paga distinto) si puntos_j>puntos_m o puntos_m>=22 Entonces//si la mesa tine menos puntos, o si la mesa se pasa gana jugador w_jug<-Verdadero; SiNo si puntos_j=puntos_m Entonces//si no se pasa y empata con la mesa -empate empate<-verdadero; SiNo w_mesa<-Verdadero;//en otro caso gana la mesa FinSi FinSi FinSi si empate Entonces escribir mens_16; caja<-caja+apuesta; sino si w_mesa Entonces escribir mens_8; SiNo si b_j=falso entonces escribir mens_9; escribir mens_15 ,apuesta; espacio(1); caja<-caja+(apuesta*2); finsi FinSi FinSi si caja>0 Entonces sin_dinero<-falso; FinSi si sin_dinero=falso Entonces Linea(28); Escribir " Quieres seguir jugando?"; espacio(1); escribir " Escriba no para salir, presione enter para seguir jugando"; leer seguir_jugando; SiNo escribir " y te quedaste sin dinero"; FinSi FinMientras FinProceso
Datos archivados del Taringa! original
123puntos
551visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

r
raulaso15🇦🇷
Usuario
Puntos0
Posts8
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.