Saltar al contenido

juego de serpientes y escaleras en el ejemplo de código de Python

Ejemplo: serpientes pitón y escaleras

#Heres a snakes and ladders game I made, felt the need to share it so others could play it tooimport tkinter as tk
from time import sleep
from random import randint

root = tk.Tk()

Grid =[]for i inrange(8):
  GridRow =[]for j inrange(8):
    GridRow.append("Empty")
  Grid.append(GridRow)
Grid[0][0]="End"
Grid[7][0]="Start"#Snakes
Grid[0][3]=[2,1,"S"]
Grid[0][6]=[2,7,"S"]
Grid[2][6]=[5,2,"S"]
Grid[3][1]=[4,0,"S"]
Grid[3][5]=[5,6,"S"]
Grid[6][2]=[6,5,"S"]#Ladders
Grid[2][0]=[0,0,"L"]
Grid[1][7]=[0,7,"L"]
Grid[2][4]=[1,5,"L"]
Grid[5][5]=[1,2,"L"]
Grid[7][2]=[5,0,"L"]
Grid[7][5]=[5,7,"L"]#[Row,Collumn]
player1 =[7,0]
player2 =[7,0]

LabelGrid =[]defupdateGrid():global player1
  global player2
  global LabelGrid
  global Grid
  for i in LabelGrid:
    i.grid_forget()for i inrange(8):for j inrange(8):
      root.grid_rowconfigure(i,weight=1,minsize=64)
      root.grid_columnconfigure(j,weight=1,minsize=64)
      Label = tk.Label(root)
      Label.grid(column=j,row=i,sticky="nsew")
      LabelGrid.append(Label)if(i+j)%2==0:
        Label.configure(bg="Black")if Grid[i][j]=="Empty":
        Label.configure(text="")elif Grid[i][j]=="Start":
        Label.configure(text="Start",bg="Sky Blue")elif Grid[i][j]=="End":
        Label.configure(text="End",bg="Gold")else:
        LabelText ="Leads tonCollumn "+str(Grid[i][j][1])+"nRow "+str(Grid[i][j][0])
        Label.configure(text=LabelText,bg="Red"if Grid[i][j][2]=="S"else"Green")
  
  p1 = tk.Label(root,text="Player 1",bg="Yellow")
  p1.grid(column=player1[1],row=player1[0],sticky="n")
  LabelGrid.append(p1)  
  p2 = tk.Label(root,text="Player 2",bg="Blue")
  p2.grid(column=player2[1],row=player2[0],sticky="s")
  LabelGrid.append(p2)
  root.update()defmovePlayer(player,spaces):global Grid
  endSpace = player
  for i inrange(spaces):if endSpace ==[0,0]:return endSpace
    if endSpace[0]%2==1:if endSpace[1]==7:
        endSpace[0]-=1else:
        endSpace[1]+=1else:if endSpace[1]==0:
        endSpace[0]-=1else:
        endSpace[1]-=1iftype(Grid[endSpace[0]][endSpace[1]])==list:return[Grid[endSpace[0]][endSpace[1]][0],Grid[endSpace[0]][endSpace[1]][1]]return endSpace

Turn =1
Winner =""

Text = tk.Label(root,text="Loading")
WaitVariable = tk.IntVar()
Button = tk.Button(root,text="Roll",command=lambda: WaitVariable.set(1))
Text.grid(column=0,row=8,columnspan=8,sticky="nsew")
Button.grid(column=0,row=9,columnspan=8,sticky="nsew")

root.grid_rowconfigure(8,weight=1,minsize=32)
root.grid_rowconfigure(9,weight=1,minsize=32)

updateGrid()whileTrue:
  Text.configure(text="Player "+("1"if Turn%2==1else"2")+"'s turn")
  Button.wait_variable(WaitVariable)
  roll = randint(1,6)
  Text.configure(text="Rolled a "+str(roll))if Turn%2==1:
    player1 = movePlayer(player1,roll)if player1 ==[0,0]:
      Winner ="Player 1"breakelse:
    player2 = movePlayer(player2,roll)if player2 ==[0,0]:
      Winner ="Player 1"break
  Turn +=1
  updateGrid()
  sleep(1)

Text.configure(text=Winner+" wins!")
updateGrid()

Si te sientes suscitado, eres capaz de dejar una crónica acerca de qué te ha gustado de este tutorial.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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