albertohilal

Clase 5 Entregable

Sep 8th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.05 KB | None | 0 0
  1. /* Escribir el procedimiento InvertirTablero() que recorre el tablero invirtiendo los colores de las bolitas.*/
  2.  
  3. /* ***************Iniciar el recorrido*************** */
  4.  
  5. procedure IrAlBorde(dir) {
  6. while (puedeMover(dir))
  7. {Mover(dir)}
  8. }
  9.  
  10. procedure CabezalALaPrimeraColumna(){
  11. IrAlBorde(Este)
  12. }
  13.  
  14. procedure CabezalALaPrimeraFila(){
  15. IrAlBorde(Norte)
  16. }
  17.  
  18. procedure CabezalALaPrimeraCelda(){
  19. CabezalALaPrimeraColumna()
  20. CabezalALaPrimeraFila()
  21. }
  22. /* ************Procesar Elemento Actual************* */
  23.  
  24. procedure SacarN(color, cant){
  25. repeatWith indice in 1..nroBolitas(color)
  26. {Sacar(color)}
  27. }
  28.  
  29. procedure SacarTodas(color){
  30. SacarN(color, nroBolitas(color))
  31. }
  32.  
  33.  
  34. procedure PonerX(col, cantidad){
  35. repeatWith i in 1..cantidad
  36. {Poner(col)}
  37. }
  38.  
  39. /*Proposito: establece el numero de bolitas de la
  40. celda actual sin importar las que habia*/
  41.  
  42. procedure Establecer(col, cantidad) {
  43. SacarTodas(col)
  44. PonerX(col, cantidad)
  45. }
  46.  
  47. /*Proposito: establece el numero de bolitas de dos colores
  48. al mismo tiempo.*/
  49. procedure EstablecerDos(col1, cantidadCol1, col2, cantidadCol2){
  50. Establecer(col1, cantidadCol1)
  51. Establecer(col2, cantidadCol2)
  52. }
  53.  
  54. procedure IntercambiarColores(col2, col1) {
  55. EstablecerDos(col1, nroBolitas(col2), col2, nroBolitas(col1))
  56. }
  57.  
  58. procedure InvertirCelda() {
  59. IntercambiarColores( Azul, Rojo)
  60. IntercambiarColores( Verde, Negro)
  61. }
  62.  
  63. /* *********Pasar Al Siguiente********* */
  64. /* **********PROCESAMOS COLUMNA********** */
  65. function llegoALaBase(){
  66. return (puedeMover(Sur)==False)
  67. }
  68.  
  69. procedure InvertirColumna(){
  70. CabezalALaPrimeraFila()
  71. while (not llegoALaBase())
  72. {
  73. InvertirCelda()
  74. Mover(Sur)
  75. }
  76. InvertirCelda()
  77. }
  78. /* **********PROCESAMOS TABLERO********** */
  79.  
  80. function llegoAlBorde(){
  81. return (puedeMover(Oeste)==False)
  82. }
  83.  
  84. procedure InvertirTablero(){
  85. CabezalALaPrimeraColumna()
  86. while (not llegoAlBorde())
  87. {
  88. InvertirColumna()
  89. Mover(Oeste)
  90. }
  91. InvertirColumna()
  92. }
  93.  
  94. procedure Main(){
  95.  
  96. InvertirTablero()
  97. }
Add Comment
Please, Sign In to add comment