Ping Pong Game

INSTRUCCIONS BÀSIQUES

S’ha de dissenyar un jos de pingpong per a 2 jugadors que s’acabi quan un dels dos arribi a 5 punts. Les pales s’han de moure amb les tecles que volgueu del teclat i el moviment de la bola ha de ser constant i continu.

Necessitarem:

  • 3 personatges:
    • bola (on hi haurà el programa “gros”)
    • pala del player 1 (posició inicial i moviment)
    • pala del player 2 (posició inicial i moviment)
  • Background amb els límits laterals pintats de colorspingpoong

PROGRAMACIÓ DE LA BOLA

Necessitarem 3 programes dins de la bola perquè volem que diverses accions s’executin a la vegada per sempre.

  1. Programa bàsic
    • Creem els comptadors i els assignem inicialment a 0.
    • Posició inicial de la bola.
    • Moviment de la bola a l’atzar inicial.
    • Què passa quan la bola toca una pala.
    • Moviment continu de la bola (mai pot parar quieta!)
    • Què passa quan la bola xoqui contra els marges superiors i inferiors.
  2. Programa suma-punts
    • Quant es suma un punt?
    • Tornar a la bola a la posició inicial
    • Moviment de la bola a l’atzar inicial.
    • Esperar 2 segons per a tenir temps per a reaccionar
    • Final del joc: quan un jugador arribi a 5 punts, que s’acabi la partida i surti un missatge felicitant-lo.
  3. Reinici de la bola
    • Retornar la bola a la seva posició inicial quan volguem.

TEORIA NECESSÀRIA

Control

Els blocs de control, anomenats “control de flux” a lego EV3, serveixen per a modificar l’ordre de les accions d’un programa, que normalment van de dalt a baix. Tenim bucles (repeteix X vegades, per sempre…) condicionals (si x llavors, si x llavors si no…) i breaks (atura x).

Es pot colocar un bloc de control a dins d’un altre bloc de control. Per exemple, si volem que una condició passi sempre, posarem un “si llavors” dins d’un “per sempre“.

control

Per al nostre joc necessitarem el bloc “atura tot“, ja que nosaltres volem que quan un jugador arribi a 5 punts, s’acabi la partida:

atura

Variables

Una variable és un espai dins d’un programa on emmagatzemen unes dades. Aquestes dades es poden modificar al llarg del programa i es poden utilitzar per a fer operacions de tot tipus.

Per a crear una variable amb Scratch, vés al menú “Dades” i fés clic a “Crea una Variable“.

variable

Escriu el nom de la variable, en aquest cas “Player 1” i assenyala si la voldràs fer servir només per a un personatge o per a tots. Un cop tinguis les variables creades, veuràs que t’apareixen a la barra dels blocs i com ja hi han blocs que ens permeten fer fàcilment comptadors per a la partida de ping pong.

A l’inici del joc, voldrem que els comptadors estiguin a zero, així que caldrà arrossegar aquests blocs només començar.

iniciSensors

T’hauràs fixat que dins d’alguns blocs de control apareixen uns hexàgons irregulars, que és l’espai on podem posar la nostra condició o acció. Dins d’aquest espai cal col·locar un sensor o un operador (explicats més avall).

Per a fer el joc del ping pong farem servir com a condicionant els diferents colors amb els que treballarem (mínim amb els marges contraris) per a que, quan la bola toqui la pala o una paret passi una acció (o reboti o que sumi un punt al jugador corresponent).

pales

Operadors 

Els operadors serveixen per a fer càlculs matemàtics, comparar nombres, posar condicions i generar números random.

Un número random és una xifra qualsevol, aleatòria, que podem dir-li al programa que calculi entre certa quantitat de números. Aquesta funció ens serà molt útil al joc per a que la pilota giri de manera aleatòria i no sapiguem mai cap on es dirigirà a continuació.

random

També caldran fer servir els operadors per a comparar la puntuació de cada jugador amb el número 5, per tal de que la partida acabi quan un dels dos hagi fet 5 punts. No només es poden comparar xifres, també es poden comparar variables (amb valor numèric) amb una xifra i utilitzar-ho tot en un condicional. Per exemple:

operador

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.