ModderDojo Week 5: Continuing to Build Complex Structure Mods in Minecraft

2013-11-10_10.45.39

This week, we continued to work on our structure mods in ScriptCraftJS. Our plan is to build a whole set of mods that between them can be used to create a town/city.

Meanwhile, Eli in the group is working on Java-based modding and will help everyone else get started with it when we all move onto that topic later.

Some of the structures people in the group are working on:

  • A block of apartments
  • A street with skyscrapers
  • A castle
  • An iron house
  • A stable
  • A tennis court / soccer pitch
  • A subway
  • A giant face!

The picture with this week’s post shows a Wizard’s Tower built by Conor in the ModderDojo group.

Along the way, we will get practice of:

  • Turning ideas into designs and turning designs into code
  • Debugging programs when the result doesn’t match the design
  • Using variables, calculations, decisions and loops
  • Sharing code for others to download and reuse

Practical notes:

  • During development and testing, you can end up with lots of incomplete structures that slow down your CraftBukkit server. A simple fix is to delete your world:
    • Stop your CraftBukkit server
    • Open the CraftBukkit folder on your computer: in it you will see folders called world and possibly world_nether and world_the_end delete them all
    • While you are at it, edit server.properties in the CraftBukkit folder to make your new world superflat, write level-type=flat and you could also change other properties such as spawn-monsters=false
    • Restart your CraftBukkit folder to create a new, empty world
    • Re-run your scripts to recreate structures that you want
  • Read the ScriptCraftJS API reference to see what commands you can use for your structures: https://github.com/walterhiggins/ScriptCraft/blob/master/docs/api.md

Our Mods:

We have started to post mods here: https://cdathenry.wordpress.com/2013/11/10/modderdojo-athenry-our-scriptcraftjs-minecraft-mods/

We will add more as our modders finish them and make them available for posting. Stay tuned!

Python Beginners- Week 5: Adventure Game and Comparing Python Functions to Scratch Blocks

Today we finished our adventure game. Here is the source for it.

</pre>
#This is my adventure game

import time

def scene1():
 print('You are standing on a trail in a forrest')
 print('Before you the trail splits in two')
 print('Which way will you go right or left?''\n')
def makeChoice():
 choice = ''
 while choice != '1' and choice != '2':
 print('Press 1 followed by enter to choose the first option')
 print('Press 2 followed by enter to choose the second option')
 choice = input()
 return choice

def scene2A():
 print('\n''You come to a stream with bridge')
 print('You can cross and follow the trail that leads from the bridge')
 print('or follow the trail that leads along the nearside of the river''\n')

def scene2B():
 print('\n''you come to a steep hill')
 print('you can climb over the hill')
 print('or you can follow the trail which leads around it','\n')

def goodEnd():
 print('You travel along until you hear people''\n')
 time.sleep(1)
 print('They sound like they are having fun''\n')
 time.sleep(1)
 print('You suddenly see them and realise it\'s your friends having a picnic')
 print ('they share their food and drinks with you and you have a great time')

def badEnd():
 print('You travel along''\n')
 time.sleep(1)
 print ('on and on''\n')
 time.sleep(1)
 print('you have no idea where you are''\n')
 time.sleep(1)
 print('suddenly you realise you are back where you started')
#main program starts here
playAgain = 'yes'
while playAgain == 'yes' or playAgain == 'y':

scene1()

#use the makeChoice function to get
 #the player to decide which way to go
 firstChoice = makeChoice()

#this if else statement will show the next
 #scene based on the players choice
 if firstChoice == '1':
 scene2A()
 else:
 scene2B()

secondChoice = makeChoice()

#this if else statement will show the next
 #scene based on the players choice
 if secondChoice == '1':
 goodEnd()
 else:
 badEnd()

print('Do you want to play again? (yes or no)')
 playAgain = input()

We also took a look at Snap which is an extended re-implementation of Scratch that allows us to build our own blocks. Snap is available at http://snap.berkeley.edu/. We compared our Python code to a similar Snap script.

Capture4

We compared Python functions to Scratch blocks and made a few blocks of our own using Snap. Here are my slides from today. python session5

Scratch Beginners – Week 4, Animation

In this session we improved on our previous Ghostcatcher game by adding animation.

bigideas

We did this by switching between costumes. Rather than using sprites with various costumes already created, we drew our own.

animation

For the first time, we used the broadcast block, to communicate between different parts of the code.

broadcast

A PDF version of the notes from this weeks session can be found here: CDA-S3-Challenge04-BetterGhostCatcher.pdf

Python Beginners – Week 4: Adventure Game

This week we looked at creating a game from the beginning and at the steps we might go through to complete it. We looked at flowcharts and pseudocode and then we broke down the program into bite size pieces and wrote functions for these. We got about half way through this and hopefully we’ll complete it next week. Here is a screenshot of what we have completed so far.

screenshotHere are my slides from this week. python session4