rendered paste bodyimport time
import random
bone = " - "
btwo = " - "
bthree = " - "
bfour = " - "
bfive = " - "
bsix = " - "
bseven = " - "
beight = " - "
bnine = " - "
randno = random.choice([" 2 "," 2 "," 2 "," 4 "])
#Here we set the basics for the game, and each variable represents a different formation of the board, where a random number can be placed.
slotone = (str(randno) + " " + str(btwo) + " " + str(bthree) + '''
''' + str(bfour) + " " + str(bfive) + " " + str(bsix) + '''
''' + str(bseven) + " " + str(beight) + " " + str(bnine))
slottwo = (str(bone) + " " + (str(randno) + " " + str(bthree) + '''
''' + str(bfour) + " " + str(bfive) + " " + str(bsix) + '''
''' + str(bseven) + " " + str(beight) + " " + str(bnine)))
slotthree = (str(bone) + " " + str(btwo) + " " + (str(randno)) + '''
''' + str(bfour) + " " + str(bfive) + " " + str(bsix) + '''
''' + str(bseven) + " " + str(beight) + " " + str(bnine))
slotfour = (str(bone) + " " + str(btwo) + " " + str(bthree) + '''
''' + (str(randno) + " " + str(bfive) + " " + str(bsix) + '''
''' + str(bseven) + " " + str(beight) + " " + str(bnine)))
slotfive = (str(bone) + " " + str(btwo) + " " + str(bthree) + '''
''' + str(bfour) + " " + (str(randno) + " " + str(bsix) + '''
''' + str(bseven) + " " + str(beight) + " " + str(bnine)))
slotsix = (str(bone) + " " + str(btwo) + " " + str(bthree) + '''
''' + str(bfour) + " " + str(bfive) + " " + (str(randno)) + '''
''' + str(bseven) + " " + str(beight) + " " + str(bnine))
slotseven = (str(bone) + " " + str(btwo) + " " + str(bthree) + '''
''' + str(bfour) + " " + str(bfive) + " " + str(bsix) + '''
''' + (str(randno) + " " + str(beight) + " " + str(bnine)))
sloteight = (str(bone) + " " + str(btwo) + " " + str(bthree) + '''
''' + str(bfour) + " " + str(bfive) + " " + str(bsix) + '''
''' + str(bseven) + " " + (str(randno) + " " + str(bnine)))
slotnine = (str(bone) + " " + str(btwo) + " " + str(bthree) + '''
''' + str(bfour) + " " + str(bfive) + " " + str(bsix) + '''
''' + str(bseven) + " " + str(beight) + " " + (str(randno)))
#set some variable for the tutorial only
firstleft = False
firstright = False
firstup = False
firstdown = False
randno = random.choice([2,4])
if randno == 2 or 4:
#Start
welcome = input("Welcome to 2048! Would you like to take the tutorial?(y/n) ")
if welcome == "y":
time.sleep(2)
print("Here's how the game works. You have a board, which will be represented by")
print("A series of numbers. There are 9 spaces on this board. It will look like this:")
time.sleep(4)
print("- - -")
print("2 - -")
print("- - -")
print()
print("Notice there are blank spaces, shown as '-', and full spaces, shown as numbers.")
print("To move the board, type 'left', 'right', 'up' or 'down', respectively.")
time.sleep(5)
print("Try this now.")
#First Move (It's basically linear, except for the random number. Which appears in the same place every time. Oops.)
firstmove = input()
if firstmove == "left":
print("- - " + str(randno))
print("2 - -")
print("- - -")
print("You'll notice the board didn't move. That's because you can't move a 2")
print("into a wall. Funny that.")
if firstmove == "right":
firstright = True
print("- - " + str(randno))
print("- - 2")
print("- - -")
print("You'll notice the 2 moved to the other side of the board.")
print("You did that, congrats.")
if firstmove == "up":
firstup = True
print("2 - " + str(randno))
print("- - -")
print("- - -")
print("You'll notice the 2 moved to the top of the first column")
print("You did that, congrats.")
if firstmove == "down":
firstdown = True
print("- - " + str(randno))
print("- - -")
print("2 - -")
print("You'll notice the 2 moved to the bottom of the first column")
print("You did that, congrats.")
#More talking, sorry.
print("But hold on! What's that other number doing there??")
print("You see, whenever you make a move, a number appears.")
time.sleep(3)
print("Your objective is to make the number 16.")
print("You do this by moving the board so that pairs of")
print("numbers are joined together, to create a double.")
print("E.g 2 joined with 2 = 4")
time.sleep(2)
print("Time to start the real game. Good luck!")
#Set up default slots. "sone" stands for slot one, et cetera. Remember, each one of these variables is a slot on the board. I'm sure there is an easier way to do
#this, but I am yet to think of it. I think I've done an okay job, as it is.
sone = " - "
stwo = " - "
sthree = " - "
sfour = " - "
sfive = " - "
ssix = " - "
sseven = " - "
seight = " - "
snine = " - "
two = "2"
four = "4"
randno = random.choice([ two, two, two, four])
print("Begin - Now!")
#Now, we print the default board, with a single random number, determined by the little equation underneath. It also picks which slot the number will be in.
whichslot = random.randint(1,9)
if whichslot == 1:
print(slotone)
if whichslot == 2:
print(slottwo)
if whichslot == 3:
print(slotthree)
if whichslot == 4:
print(slotfour)
if whichslot == 5:
print(slotfive)
if whichslot == 6:
print(slotsix)
if whichslot == 7:
print(slotseven)
if whichslot == 8:
print(sloteight)
if whichslot == 9:
print(slotnine)
#These are the functions of the movements. We'll start with the Left function
def moveleft():
#adding functions
if bone == btwo:
bone * 2
if bthree == " - ":
btwo = " - "
else:
if bone ==" - " and btwo == randno:
bone = btwo
if bfour == bfive:
bfour * 2
if bsix == " - ":
bfive = " - "
else:
if bfour == " - " and bfive == randno:
bfour = bfive
if bseven == beight:
bseven * 2
if bnine == " - ":
beight = " - "
else:
if bseven == " - " and beight == randno:
bseven = beight
#movement & addition if the other slot is empty
if btwo == bthree and bone == " - ":
bone = btwo * 2
btwo = " - "
bthree = " - "
#next horizontal column (4 through 6)
#movement & addition if the other slot is empty
if bfive == bsix and bfour == " - ":
bfour = bfive * 2
bfive = " - "
bsix = " - "
#next horizontal column (7 through 9)
#movement & addition if the other slot is empty
if beight == bnine and bseven == " - ":
bseven = beight * 2
beight = " - "
bnine = " - "
#input
moveme = input()
if moveme == "left":
moveleft()
print("yes")