Python minecraft level 3 chiều thứ 7

huyhuy17

Link buổi demo

Địa chỉ  minecraft server : 103.237.147.88:25568

Server minecraft mcpi

ip : 103.237.147.88

port : 4714

https://repl.it/@Quang_HuyHuy/TechnicalBrownScriptinglanguages

Xây dựng công trình sau bằng code

Code bài ngày 18-05-2019

https://repl.it/@Quang_HuyHuy/CheerfulRevolvingMeasurements


from mcpi import minecraft
import time
mc = minecraft.Minecraft.create('103.237.147.88', 4714)

playerName = 'huyhuy17'
playerId = mc.getPlayerEntityId(playerName)
x,y,z  = mc.entity.getTilePos(playerId)
#BƯớc chân kì diệu
#NGười chơi đi đến đâu thì dưới chân sẽ là 1 cục vàng 
def gold_beside_player():
  for i in range(100): 
    time.sleep(0.5)
    x,y,z  = mc.entity.getTilePos(playerId)
    mc.setBlock(x,y-1,z, 41)
# gold_beside_player()

def survival_run():
  for i in range(100): 
    time.sleep(1)
    mc.postToChat("{} run now, or you die".format(playerName))
    time.sleep(1)
    x,y,z  = mc.entity.getTilePos(playerId)
    mc.setBlock(x,y-1,z, 10)
# survival_run()
# https://minecraft-ids.grahamedgecombe.com/
# MỞ  rộng ra thành 
# - lời nguyền của lửa, người chơi không được đứng một chỗ quá lâu , nếu sau 2 s mà không di chuyển thì dưới chân sẽ hóa thành dung nham

#căn phòng đặc biệt
def special_room():
  x1,y1,z1 = 375,5,183
  mc.setBlocks( x1,y1,z1, x1+5,y1+5 ,z1+5 ,20)
  mc.setBlocks( x1 + 1,y1+ 1,z1 + 1 ,x1+4,y1+4,z1+4, 0)
  mc.entity.setPos(playerId,x1+2,y1+2,z1+2)
  while True: 
    time.sleep(1)
    x,y,z  = mc.entity.getTilePos(playerId)
    if not (x1<=x <=x1+ 5) or not(y1<=y <=y1+ 5) or not (z1<= z <=z1+ 5):
      mc.postToChat("Ban da roi khoi can phong")
      break
  # nếu rời khỏi căn phòng sẽ chuyển sang chế độ survival
  survival_run()
# # special_room()


Python
Bài tập về nhà
1. tạo 1 căn phòng kích thước 20*20*20 bằng code tại vị trí tùy chọn:
– Căn phòng có bao quanh bằng kính ,
– Nền và mái bằng kim cương
– Có 1 lối đi ra ngoài mà không cần đập block
2. Nêu đi ra khỏi căn phòng
– Nhận được tin nhắn : “You has go out safe region, prepare for danger”
– Tạo ra dưới chân người chơi 1 block ngẫu nhiên trong những block sau :tnt, lava, gold, lime ,ice sau mỗi 1 giây
3 (nâng cao) :
– Xây dựng căn phòng đẹp và có nhiều chi tiết
– Báo cho người chơi về block họ sẽ nhận được
– Khi người chơi về căn phòng, thì sẽ lại an toàn
 
Ngay 25-05-2019
https://repl.it/@Quang_HuyHuy/FirsthandCuteCleaninstall
Ứng dụng xây dựng cánh cổng di chuyển tức thời
Và nhà tắm tự động

from mcpi import minecraft
import random
import time
mc = minecraft.Minecraft.create('103.237.147.88', 4714)
playername = "huyhuy17"
plid = mc.getPlayerEntityId(playername)

def teleport():
  def make_door(x, y, z):
      mc.setBlocks(x, y, z, x + 2, y + 3, z, 1)
      mc.setBlocks(x + 1, y, z, x + 1, y + 2, z, 0)

  make_door(225,4,231)
  make_door(228,4,216)

  x1,y1,z1= 229,4,216
  x2,y2,z2= 226,4,231
  #teleport to near the door
  for plid in mc.getPlayerEntityIds():
    mc.entity.setTilePos(plid, 228,4,210)

  while True : 
    for plid in mc.getPlayerEntityIds():
      x,y,z = mc.entity.getTilePos(plid)
      if x == x1 and z ==z1:
        mc.entity.setPos(plid, x2,y2,z2+1)
      if x == x2 and z ==z2:
        mc.entity.setPos(plid, x1,y1,z1+1)
    time.sleep(1)  
def smart_bathroom():
  #xay nha tam
  x,y,z = 216,4,192
  mc.setBlocks(x,y,z, x+ 5 ,y+5,z+5, 1)
  mc.setBlocks(x+1,y,z+1, x+4,y+4,z+4,0)
  mc.setBlocks(x + 2, y,z, x+2,y+1,z,0)
  mc.setBlock(x+2,y+4,z+2,169)
  while True : 
    x1,y1,z1 = mc.entity.getTilePos(plid)
    if  x<=x1<=x + 5 and y<=y1<=y + 5 and z<=z1<=z + 5 :
      mc.setBlock(x+1,y+4,z+1,9)
      mc.postToChat("Smart bathroom turn on")
      break
# smart_bathroom()  
Python

Bài tập về nhà Viết 1 hàm xây nhà theo yêu cầu sau – tham chiếu là x,y,z là tọa độ của căn nhà – Kích thước tối thiểu 20x10x20 – Có cửa vào – Có cửa sổ bằng kính – Có bàn và giường, ghế – Có bóng đèn – Trong nhà có cây cảnh – Nhà đẹp và có thẩm mỹ

Buổi 5

Code buổi học

Buổi 6

Code buổi học 

Chia team

Team 1: Mạnh Linh, Hoàng Minh, Thu Trang :

Ý tưởng : Parkour, dead run, kho báu

Team 2: Tuệ Anh, Trung Đức, Minh Đăng

Ý tưởng arena

    Bài tập về nhà

Mỗi bạn viết 1 đoạn văn ngắn 10 câu để mô tả ý tưởng, sản phẩm tương ứng của mình :

  • Trình bày được lý do lựa chọn ý tưởng
  • Trình bày được cách chương trình hoạt động
  • Các tính năng chính của chương trình

Buổi 8

Tuệ Anh + Trung Đức + Hoàng Minh

– Arena :
Mô tả :
– Chế độ survival mode
– Tất cả các người chơi được teleport đến arena
– Chiến đấu với nhau trong 1 thời cho phép
– Ai còn sống sẽ chiến thắng
– Có cạm bẫy
– Có đường bo
– Có quái vật
1. Mô hình arena :
– Sân arena theo kiểu trung cổ
– Sân arena hầm mộ
– Sân arena ngoài đảo
– Arena núi lửa
– Arena siêu thị
2. Tính năng đặc biệt:
– Có tính năng tham chiến
– Có bảng tính điểm
– Đồ rơi trên trời xuống
– Có barrier cạm bẫy , nơi trú ẩn
– Chế độ về đích : ai về đích thì sẽ thắng
– Chế độ solo : Khi chỉ còn lại một người chơi

=====
Việc cần làm :
1. Chọn một mô hình arena
arena – hầm mộ
2. Dùng code dựng arena:
– Vẽ ra các công trình bằng code
– Xây dựng các cạm bẫy
– Xây dựng điểm đặc biệt và về đích
3. Viết code tele người chơi đến vị trí chỉ định
4. Viết code chạy trò chơi :
Tính thời gian
5. Viết code cho người dùng chat để xem thông tin:
– Số lượng người tham gia arena
– Bật chế độ chơi solo

****

Triển khai

  • Thông tin
    • Cổng vào : -1402,67,-445
    •  

Hoàng Minh + Trang + Mạnh Linh

Xây dựng mê cung

https://repl.it/@Quang_HuyHuy/KnownVillainousContent


from mcpi import minecraft
import time
from random import shuffle, randrange
 
def make_maze(w = 16, h = 8):
    vis = [[0] * w + [1] for _ in range(h)] + [[1] * (w + 1)]
    ver = [["|  "] * w + ['|'] for _ in range(h)] + [[]]
    hor = [["+--"] * w + ['+'] for _ in range(h + 1)]
 
    def walk(x, y):
        vis[y][x] = 1
 
        d = [(x - 1, y), (x, y + 1), (x + 1, y), (x, y - 1)]
        shuffle(d)
        for (xx, yy) in d:
            if vis[yy][xx]: continue
            if xx == x: hor[max(y, yy)][x] = "+  "
            if yy == y: ver[y][max(x, xx)] = "   "
            walk(xx, yy)
 
    walk(randrange(w), randrange(h))
 
    s = ""
    for (a, b) in zip(hor, ver):
        s += ''.join(a + ['\n'] + b + ['\n'])
    return s
 
def main():
  mc = minecraft.Minecraft.create('103.237.147.88', 4714)
  playername = "huyhuy171"
  plid = mc.getPlayerEntityId(playername)
  mazedata = """
  +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
  |                       |                   |                       |           |
  +---+   +---+   +---+---+   +---+   +---+---+   +---+   +---+---+   +   +---+   +
  |       |   |   |           |   |           |       |   |   |       |       |   |
  +   +---+   +   +   +---+---+   +---+---+   +   +---+   +   +   +---+---+---+   +
  |       |       |   |                   |       |       |       |               |
  +   +   +   +---+   +---+   +   +---+   +---+---+   +---+---+   +---+   +---+   +
  |   |   |   |   |       |   |   |       |       |   |       |           |       |
  +---+   +   +   +---+   +---+   +   +---+---+   +   +   +   +---+---+---+   +---+
  |       |       |       |       |               |       |   |       |       |   |
  +   +   +---+---+   +---+   +---+---+---+---+   +---+---+   +---+   +   +---+   +
  |   |   |       |   |           |           |   |       |       |   |   |       |
  +   +---+   +   +   +---+---+   +---+   +   +   +   +   +---+   +   +   +   +   +
  |   |       |       |       |       |   |   |   |   |       |   |   |       |   |
  +   +   +---+---+---+   +   +---+   +   +   +   +---+---+   +   +   +---+---+   +
  |   |   |               |           |   |   |               |   |               |
  +   +   +---+---+---+   +---+---+---+   +   +---+---+---+   +   +---+---+   +---+
  |       |               |   |           |           |       |   |       |       |
  +   +---+   +---+---+---+   +   +---+---+---+---+   +   +---+   +   +   +---+   +
  |   |       |           |   |   |       |       |   |   |   |       |   |       |
  +   +   +   +   +---+   +   +   +   +   +   +   +   +   +   +---+---+   +   +---+
  |       |   |       |   |           |   |   |   |   |   |           |   |       |
  +   +---+---+---+   +   +---+---+---+   +   +   +   +   +   +---+   +   +---+   +
  |   |               |           |   |       |   |           |   |   |       |   |
  +---+   +---+---+---+---+---+   +   +---+   +---+---+---+---+   +   +---+   +   +
  |   |   |       |           |   |       |   |           |       |       |   |   |
  +   +   +   +---+   +---+   +   +---+   +   +   +---+   +---+   +---+   +   +   +
  |   |   |           |       |       |       |   |           |           |   |   |
  +   +   +   +---+---+   +---+---+   +   +---+   +---+---+   +---+---+   +   +---+
  |   |   |   |   |       |           |       |       |   |           |   |       |
  +   +   +   +   +   +---+   +---+---+---+---+---+   +   +---+---+   +   +---+   +
  |       |   |   |           |                       |               |       |   |
  +---+---+   +   +---+---+---+---+   +   +---+---+---+   +---+---+---+---+   +   +
  |       |       |               |   |       |       |           |           |   |
  +   +   +---+   +---+---+   +   +   +---+   +   +   +---+---+   +---+---+---+   +
  |   |       |       |       |   |       |   |   |   |       |           |       |
  +   +   +---+---+   +   +---+   +   +---+   +---+   +   +   +---+---+   +   +---+
  |   |           |   |   |       |   |       |       |   |           |   |       |
  +   +---+   +---+   +   +   +---+---+   +---+   +---+   +---+---+   +   +---+   +
  |       |               |               |                       |               |
  +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
  """
  x,y,z = -1920,68,-525
  count_x =0  
  count_z =0  
  mazedata = mazedata.split("\n")
  for line in mazedata :
    count_x = count_x +1
    for char in line :
      count_z = count_z +1
      if char !=" ":
        mc.setBlocks(x+count_x,y,z+count_z,x+count_x,y+5,z+count_z,1 )
      else : 
        mc.setBlocks(x+count_x,y,z+count_z,x+count_x,y+5,z+count_z,0 )
      mc.setBlocks(x+count_x,y+5,z+count_z,x+count_x,y+10,z+count_z,0 )  

    count_z = 0
main()
Python

Các việc cần làm

TODO Kịch bản code bản mê cung [Mạnh Linh, Hoàng Minh, Tuệ Anh]:

  • Địa điểm khởi tạo mê cung
  • Xây dựng mê cung bằng code
  • viết code giới thiệu trò chơi và luật chơi
  • Viết code tele tất cả người chơi đến cổng mê cung
  • Viết code xác định người chơi chiến thắng
  • Trang trí mê cung đẹp hơn. bằng code hoặc bằng tay
  • Tạo cổng chào đến với mê cung
  • Tạo chế độ chơi time run: người chơi phải vượt qua mê cung trong thời gian yêu cầu

TODO Kịch bản arena [Minh Đăng, Trung Đức, Tuệ Anh]:

  • Teleport người chơi tới vị trí cổng arena
  • Chat giới thiệu arena
  • Cho phép người chơi chat “start” và tele người chơi đến vị trí ngẫu nhiên trong arena
  • Khi người chơi bị chết, rời khỏi vị trí của arena, báo có 1 người chơi thua cuộc
  • Tạo ra bộ đếm thời gian, khi hết thời gian, những người nào còn sống sẽ được teleport đến sàn đấu cuối cùng
  • Khi còn một người chơi, trò chơi kết thúc, và thông báo có người thắng cuộc

#Di chuyển đến vị trí ngẫu nhiên
from mcpi import minecraft
import random
import time
mc = minecraft.Minecraft.create('103.237.147.88', 4714)
mc.postToChat("Huyhuy171 conected programing")

savePos = [
[-1393, 57 , -390],
[-1372, 57 , -388],
[-1367, 57 , -423],
[-1402, 57 , -416],
[-1369, 57 , -380],
[-1400, 57 , -388],
[-1386, 57 , -380],
[-1410, 57 , -403],
[-1358, 57 , -418],
[-1351, 54 , -400],
  ]
while True:
    chatEvents = mc.events.pollChatPosts()
    for chat in chatEvents:
      if "start" == chat.message:
        location = random.choice(savePos)
        x = location[0]
        y = location[1]
        z = location[2]
        mc.entity.setPos(chat.entityId, x,y,z)
        mc.events.clearAll()
      
        
    time.sleep(0.5)



Buổi 10 : Phân việc thuyết trình

Đôi 1: Team MVP

  • Trang : Giới thiệu team và chương trình
  • Hoàng Minh: Thuyết trình về sản phẩm, tính năng , code
  • Mạnh Linh : Demo chương trình

Đôi 2: Arena

  • Trung Đức : Giới thiệu team và chương trình
  • Minh Đăng: Thuyết trình về sản phẩm, tính năng , code
  • Tuệ Anh : Demo chương trình

Buổi 11

https://docs.google.com/spreadsheets/d/1x9X604TmqZx0JHFYfbid5wZ4wxMAyaR9xbmG9Fr01MA/edit?usp=sharing

2 Replies to “Python minecraft level 3 chiều thứ 7”

  1. thầy ơi, thầy gửi cho con cái code hôm qua chỉnh ạ( thầy gửi cho con vào gmail)

Trả lời