Blog: 2024-11-03

From razwiki
Revision as of 23:26, 3 November 2024 by Razzi (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Alright time to wrap👏🏼it👏🏼up and get to bed so I can be ... awake for tomorrow ...

I think it's worth giving the kids a big scratch project like the flappy bird one, printed out, and ask them to make it. Maybe to make a little simpler one first ... nim ? Turn based games are good to explain logic ... most games have too many rules tho.

I have my amoung us text adventure game but it's not done ... it's not that fun but could have some humor and interest

import random

splash = """

                     @@@@@@@@@@@@
                  @@@@@        @@@@@@
                 @@@               @@@@
                @@@       @@@@@@@@@@@@@@
               @@@      @@@@        @@@@@@
              @@@      @@               @@@@
             @@@@     @@@                 @@@
        @@@@@@@@      @@                  @@@
       @@@   @@@      @@@                 @@@
      @@@    @@@      @@@@              @@@@
      @@     @@@        @@@@@      @@@@@@@
      @@     @@           @@@@@@@@@@@@  @@
     @@@     @@                         @@
     @@@     @@                         @@@
      @@     @@                         @@@
      @@    @@@                         @@@
      @@    @@@                         @@@
      @@@   @@@                         @@@
      @@@   @@@                         @@
       @@@  @@@                         @@
        @@@@@@@           @@@@@@@@      @@
             @@           @@  @@       @@@
             @@          @@@  @@       @@@
             @@@         @@@  @@       @@@
             @@@         @@@  @@       @@@
              @@@        @@@  @@@@@@@@@@@
               @@@@@@@@@@@@
"""

def main():
    print(splash)

    print('Welcome to ascii amogus.')

    room = 'cafeteria'
    reported = False

    print(f'You are at the {room}.')

    while True:

        try:
            command = input('What do you do? > ')
        except EOFError:
            break

        if command == 'help':
            commands = ['cafeteria', 'engine', 'storage']

            if room == 'storage' and not reported:
                commands += ['report']

            commands.remove(room)
            available = ', '.join(commands)

            print(f'Available commands: {available}')

        elif command == 'cafeteria':
            room = 'cafeteria'
        elif command == 'engine':
            room = 'engine'
        elif command == 'storage':
            room = 'storage'
        elif command == 'report':
            if room == 'storage':
                print('You reported the body of the red player.')
                print('(todo: add logic for red player reporting here)')
            else:
                print('Nothing to report here.')
        else:
            print('Command not recognized. Try "help".')

        print(f'You are now in the {room}.')

        if room == 'storage' and not reported:
            print('The body of the red player is on the floor.')



if __name__ == '__main__':
    main()

I have my number guessing game:

import random

number = random.randint(1, 10)

guess = int(input('Guess a number between 1 and 10! '))

if guess < number:
    print('Too low!')

elif guess > number:
    print('Too high!')

else:
    print('Got it!')
    exit()

guess = int(input('Guess again! '))

if guess < number:
    print('Too low!')

elif guess > number:
    print('Too high!')

else:
    print('Got it!')
    exit()


guess = int(input('One last try! '))


if guess < number:
    print('Too low!')

elif guess > number:
    print('Too high!')

else:
    print('Got it!')
    exit()

print('The number was ...')
print(number)

The nice thing here is that there are no functions, barely variables.

I have my incomplete flappy bird clone (needs sprites from https://github.com/lordmauve/pgzero/tree/stable/examples/flappybird)

import pgzrun
import random

WIDTH = 400
HEIGHT = 708

GAP = 130
SPEED = 3

FLAP_VELOCITY = -6.5

GRAVITY = 0.3

bird = Actor('bird1', (75, 200))
bird.dead = False
bird.vy = 0
bird.x = 75

pipe_top = Actor('top', anchor=('left', 'bottom'))
pipe_bottom = Actor('bottom', anchor=('left', 'top'))


def reset_pipes():
    pipe_gap_y = random.randint(200, HEIGHT - 200)
    pipe_top.pos = (WIDTH, pipe_gap_y - GAP / 2)
    pipe_bottom.pos = (WIDTH, pipe_gap_y + GAP / 2)


def update_pipes():
    pipe_top.left -= SPEED
    pipe_bottom.left -= SPEED
    if pipe_top.right < 0:
        reset_pipes()



def update_bird():
    bird.vy += GRAVITY
    bird.y += bird.vy

def update():
    update_pipes()
    update_bird()


def draw():
    screen.blit('background', (0, 0))
    pipe_top.draw()
    pipe_bottom.draw()
    bird.draw()

def on_key_down():
    if not bird.dead:
        bird.vy = FLAP_VELOCITY

pgzrun.go()

Pretty good, already interactive, it wants to be coded fully !!

Awesome https://www.youtube.com/watch?v=uyMKWJ5e1kg

Exciting https://www.youtube.com/watch?v=d_hZeheKSVo

Good for me https://www.udemy.com/course/scratch-game-programming/learn/lecture/5338014

Honestly Scratch is probably the most approachable for younger audiences

Now that there's no more https://en.wikipedia.org/wiki/Stagecast_Creator :O

Al Sweigart is giving a lot of stuff away https://inventwithscratch.com/ https://alsweigart.com/ https://inventwithpython.com/pygame/

Also good to consider https://wiki.python.org/moin/BeginnersGuide/NonProgrammers

ok all done