Initial commit

This commit is contained in:
BarsTigerMeowcat
2020-01-26 12:49:01 +02:00
commit 8bed7171c2
125 changed files with 3212 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
from mcpi.minecraft import Minecraft
mc = Minecraft.create()
import mcpi.block as block
import minecraftstuff as minecraftstuff
import time
horseBlocks = [
minecraftstuff.ShapeBlock(0,0,0,block.WOOD_PLANKS.id),
minecraftstuff.ShapeBlock(-1,0,0,block.WOOD_PLANKS.id),
minecraftstuff.ShapeBlock(1,0,0,block.WOOD_PLANKS.id),
minecraftstuff.ShapeBlock(-1,-1,0,block.WOOD_PLANKS.id),
minecraftstuff.ShapeBlock(1,-1,0,block . WOOD_PLANKS.id),
minecraftstuff.ShapeBlock(1,1,0,block.WOOD_PLANKS.id),
minecraftstuff.ShapeBlock(2,1,0,block.WOOD_PLANKS.id)]
horsePos = mc.player.getTilePos()
horsePos.z = horsePos.z + 1
horsePos.y = horsePos.y + 1
horseShape = minecraftstuff.MinecraftShape(mc,horsePos,horseBlocks)
for count in range(1,10):
horseShape = minecraftstuff.MinecraftShape(mc, horsePos, horseBlocks)
time.sleep(1)
horseShape.moveBy(1,0,0)
horseShape.clear()

150
secondBook/labirint.py Normal file
View File

@@ -0,0 +1,150 @@
from mcpi.minecraft import Minecraft as minecraft
mc = minecraft.create()
import mcpi.block as block
import minecraftstuff
import time
import random
import _thread
deltype = int(input("вы на земле или в воздухе? если на земле-введите 1, если в воздухе - 2 "))
ARENAX = 10
ARENAZ = 20
ARENAY = 3
def createArena(pos):
mc.setBlocks(pos.x - 1 , pos.y, pos.z - 1,pos.x + ARENAX + 1, pos.y - 3, pos.z + ARENAZ + 1, block.GRASS.id)
mc.setBlocks(pos.x - 1, pos.y + 1, pos.z - 1,pos.x + ARENAX + 1, pos.y + ARENAY, pos.z + ARENAZ + 1,block.GLASS.id)
mc.setBlocks(pos.x, pos.y + 1, pos.z,pos.x + ARENAX, pos.y + ARENAY, pos.z + ARENAZ, block.AIR.id)
def delArena2(pos):
mc.setBlocks(pos.x - 1 , pos.y, pos.z - 1,pos.x + ARENAX + 1, pos.y - 3, pos.z + ARENAZ + 1, block.AIR.id)
mc.setBlocks(pos.x - 1, pos.y + 1, pos.z - 1,pos.x + ARENAX + 1, pos.y + ARENAY, pos.z + ARENAZ + 1,block.AIR.id)
mc.setBlocks(pos.x, pos.y + 1, pos.z,pos.x + ARENAX, pos.y + ARENAY, pos.z + ARENAZ, block.AIR.id)
def delArena1(pos):
mc.setBlocks(pos.x - 1, pos.y, pos.z - 1, pos.x + ARENAX + 1, pos.y - 3, pos.z + ARENAZ + 1, block.GRASS.id)
mc.setBlocks(pos.x - 1, pos.y, pos.z - 1,pos.x + ARENAX + 1, pos.y + ARENAY, pos.z + ARENAZ + 1,block.AIR.id)
mc.setBlocks(pos.x, pos.y + 1, pos.z,pos.x + ARENAX, pos.y + ARENAY, pos.z + ARENAZ, block.AIR.id)
def theWall(arenaPos, wallZPos):
wallPos = mc.Vec3(arenaPos.x, arenaPos.y + 1, arenaPos.z + wallZPos)
wallBlocks = []
for x in range(0, ARENAX + 1):
for y in range(1, ARENAY):
wallBlocks.append(minecraftstuff.ShapeBlock(x, y, 0, block.BRICK_BLOCK.id))
wallShape = minecraftstuff.MinecraftShape(mc, wallPos, wallBlocks)
while not gameOver:
wallShape.moveBy(0,1,0)
time.sleep(1)
wallShape.moveBy(0,-1,0)
time.sleep(1)
def theRiver(arenaPos, riverZPos):
RIVERWIDTH = 4
BRIDGEWIDTH = 2
mc.setBlocks(arenaPos.x, arenaPos.y - 2, arenaPos.z + riverZPos,arenaPos.x + ARENAX, arenaPos.y,arenaPos.z + riverZPos + RIVERWIDTH - 1, block.AIR.id)
mc.setBlocks(arenaPos.x, arenaPos.y - 2, arenaPos.z + riverZPos,arenaPos.x + ARENAX, arenaPos.y - 2,arenaPos.z + riverZPos + RIVERWIDTH - 1, block.WATER.id)
bridgePos = mc.Vec3(arenaPos.x, arenaPos.y, arenaPos.z + riverZPos + 1)
bridgeBlocks = []
for x in range(0, BRIDGEWIDTH):
for z in range(0, RIVERWIDTH - 2):
bridgeBlocks.append(minecraftstuff.ShapeBlock(x, 0, z, block.WOOD_PLANKS.id))
bridgeShape = minecraftstuff.MinecraftShape(mc, bridgePos, bridgeBlocks)
steps = ARENAX - BRIDGEWIDTH
while not gameOver:
for left in range(0, steps):
bridgeShape.moveBy(1,0,0)
time.sleep(1)
for right in range(0, steps):
bridgeShape.moveBy(-1,0,0)
time.sleep(1)
def theHoles(arenaPos, holesZPos):
HOLES = 15
HOLESWIDTH = 3
while not gameOver:
holes = []
for count in range(0,HOLES):
x = random.randint(arenaPos.x, arenaPos.x + ARENAX)
z = random.randint(arenaPos.z + holesZPos,arenaPos.z + holesZPos + HOLESWIDTH)
holes.append(mc.Vec3(x, arenaPos.y, z))
for hole in holes:
mc.setBlock(hole.x, hole.y, hole.z, block.WOOL.id, 15)
time.sleep(0.25)
for hole in holes:
mc.setBlocks(hole.x, hole.y, hole.z,
hole.x, hole.y - 2, hole.z, block.AIR.id)
time.sleep(2)
for hole in holes:
mc.setBlocks(hole.x, hole.y, hole.z,hole.x, hole.y - 2, hole.z, block.GRASS.id)
time.sleep(0.25)
def createDiamonds(arenaPos, number):
for diamond in range(0, number):
x = random.randint(arenaPos.x, arenaPos.x + ARENAX)
z = random.randint(arenaPos.z, arenaPos.z + ARENAZ)
mc.setBlock(x, arenaPos.y + 1, z, block.DIAMOND_BLOCK.id)
gameOver = False
arenaPos = mc.player.getTilePos()
createArena(arenaPos)
WALLZ = 10
_thread.start_new_thread(theWall, (arenaPos, WALLZ))
RIVERZ = 4
_thread.start_new_thread(theRiver, (arenaPos, RIVERZ))
HOLESZ = 15
_thread.start_new_thread(theHoles, (arenaPos, HOLESZ))
LEVELS = 3
DIAMONDS = [3,5,9]
TIMEOUTS = [30,25,20]
level = 0
points = 0
while not gameOver:
createDiamonds(arenaPos, DIAMONDS[level])
diamondsLeft = DIAMONDS[level]
mc.player.setPos(arenaPos.x + 1, arenaPos.y + 1, arenaPos.z + 1)
start = time.time()
levelComplete = False
while not gameOver and not levelComplete:
time.sleep(0.1)
hits = mc.events.pollBlockHits()
for hit in hits:
blockHitType = mc.getBlock(hit.pos.x, hit.pos.y, hit.pos.z)
if blockHitType == block.DIAMOND_BLOCK.id:
mc.setBlock(hit.pos.x,hit.pos.y, hit.pos.z, block.AIR.id)
diamondsLeft = diamondsLeft - 1
pos = mc.player.getTilePos()
if pos.y < arenaPos.y:
mc.player.setPos(arenaPos.x + 1, arenaPos.y + 1, arenaPos.z + 1)
if pos.z == arenaPos.z + ARENAZ and diamondsLeft == 0:
levelComplete = True
secondsLeft = TIMEOUTS[level] - (time.time() - start)
if secondsLeft < 0:
gameOver = True
mc.postToChat("Vrema vislo...")
if levelComplete:
points = points + (DIAMONDS[level] * int(secondsLeft))
mc.postToChat("Uroven proyden! Ochki - " + str(points))
level = level + 1
if level == LEVELS:
gameOver = True
mc.postToChat("Super! Ti proshol vse urovni")
mc.postToChat("Igra okonchena. Ochki - " + str(points))
time.sleep(1)
if deltype == 1:
delArena1(arenaPos)
else:
delArena2(arenaPos)

16
secondBook/maze1.csv Normal file
View File

@@ -0,0 +1,16 @@
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,1
1,0,0,1,0,0,0,0,1,0,1,0,1,0,0,1
1,1,0,1,0,1,1,0,0,0,0,0,1,0,1,1
1,1,0,1,0,1,1,1,1,1,1,1,1,0,1,1
1,1,0,0,0,1,1,1,1,1,0,0,0,0,1,1
1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1
1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1
1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1
1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1
1,0,1,0,1,1,1,1,0,1,1,1,1,1,0,1
1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1
1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
3 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1
4 1 0 0 1 0 0 0 0 1 0 1 0 1 0 0 1
5 1 1 0 1 0 1 1 0 0 0 0 0 1 0 1 1
6 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1
7 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1
8 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1
9 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1
10 1 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1
11 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
12 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1
13 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1
14 1 0 1 0 1 1 1 1 0 1 1 1 1 1 0 1
15 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1
16 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1

54
secondBook/megaChasi.py Normal file
View File

@@ -0,0 +1,54 @@
from mcpi.minecraft import Minecraft
mc = Minecraft.create()
import mcpi.block as block
import minecraftstuff
import time
import datetime
import math
mcdrawing = minecraftstuff.MinecraftDrawing(mc)
pos = mc.player.getTilePos()
def findPointOnCircle(cx, су, radius, angle ) :
x = cx + math. sin(math . radians(angle) ) * radius
y = су + math .cos(math . radians(angle) ) * radius
x = int(round(x, 0 ) )
y = int(round(y, 0 ) )
return (x,y)
clockMiddle = pos
clockMiddle .y = clockMiddle . y + 25
CLOCK_RADIUS = 20
HOUR_HAND_LENGTH = 10
MIN_HAND_LENGTH = 18
SEC_HAND_LENGTH = 20
mcdrawing.drawCircle(clockMiddle.x, clockMiddle.y,clockMiddle.z, CLOCK_RADIUS, block.DIAMOND_BLOCK.id)
while True:
timeNow = datetime.datetime.now()
hours = timeNow.hour
if hours >= 12:
hours = timeNow.hour - 12
minutes = timeNow.minute
seconds = timeNow.second
hourHandAngle = (360 / 12) * hours
hourHandX, hourHandY = findPointOnCircle(clockMiddle.x, clockMiddle.y, HOUR_HAND_LENGTH, hourHandAngle)
mcdrawing.drawLine(clockMiddle.x, clockMiddle.y, clockMiddle.z, hourHandX, hourHandY, clockMiddle.z, block.DIRT.id)
minHandAngle = (360 / 60) * minutes
minHandX, minHandY = findPointOnCircle(clockMiddle.x, clockMiddle.y,MIN_HAND_LENGTH, minHandAngle)
mcdrawing.drawLine(clockMiddle.x, clockMiddle.y, clockMiddle.z - 1,minHandX, minHandY, clockMiddle.z - 1,block.WOOD_PLANKS.id)
secHandAngle = (360 / 60) * seconds
secHandX, secHandY = findPointOnCircle(clockMiddle.x, clockMiddle.y,SEC_HAND_LENGTH, secHandAngle)
mcdrawing.drawLine(clockMiddle.x, clockMiddle.y, clockMiddle.z + 1,secHandX, secHandY, clockMiddle.z + 1, block.STONE.id)
time.sleep(1)
mcdrawing.drawLine(
clockMiddle.x, clockMiddle.y, clockMiddle.z,hourHandX, hourHandY, clockMiddle.z,block.AIR.id )
mcdrawing.drawLine(
clockMiddle.x, clockMiddle.y, clockMiddle.z - 1,
minHandX, minHandY, clockMiddle.z - 1,block.AIR.id)
mcdrawing.drawLine(clockMiddle.x, clockMiddle.y, clockMiddle.z + 1,secHandX, secHandY, clockMiddle.z + 1,block.AIR.id)

31
secondBook/object1.csv Normal file
View File

@@ -0,0 +1,31 @@
5,5,5
1,1,1,1,1
1,1,1,1,1
1,1,1,1,1
1,1,1,1,1
1,1,1,1,1
1,1,1,1,1
0,0,0,0,1
0,0,0,0,1
0,0,0,0,1
1,1,1,1,1
1,1,1,1,1
0,0,0,0,1
0,0,0,0,1
0,0,0,0,1
1,1,1,1,1
1,1,1,1,1
0,0,0,0,1
0,0,0,0,1
0,0,0,0,1
1,1,1,1,1
1,1,1,1,1
1,1,1,1,1
1,1,1,1,1
1,1,1,1,1
1,1,1,1,1
1 5,5,5
2 1,1,1,1,1
3 1,1,1,1,1
4 1,1,1,1,1
5 1,1,1,1,1
6 1,1,1,1,1
7 1,1,1,1,1
8 0,0,0,0,1
9 0,0,0,0,1
10 0,0,0,0,1
11 1,1,1,1,1
12 1,1,1,1,1
13 0,0,0,0,1
14 0,0,0,0,1
15 0,0,0,0,1
16 1,1,1,1,1
17 1,1,1,1,1
18 0,0,0,0,1
19 0,0,0,0,1
20 0,0,0,0,1
21 1,1,1,1,1
22 1,1,1,1,1
23 1,1,1,1,1
24 1,1,1,1,1
25 1,1,1,1,1
26 1,1,1,1,1

58
secondBook/umniyBlock.py Normal file
View File

@@ -0,0 +1,58 @@
import mcpi.minecraft as minecraft
mc = minecraft.Minecraft.create()
import minecraftstuff
mcdrawing = minecraftstuff.MinecraftDrawing(mc )
import mcpi.block as block
import time
import math
def distanceBetweenPoints(pointl, point2) :
xd = point2.x - pointl.x
yd = point2.y - pointl.y
zd = point2.z - pointl.z
return math.sqrt((xd*xd) + (yd*yd) + (zd*zd))
TOO_FAR_AWAY = 15
blockMood = "happy"
friend = mc.player.getTilePos()
friend.x = friend.x + 5
friend.y = mc.getHeight(friend.x, friend.z)
mc.setBlock(friend.x, friend.y, friend . z, block.DIAMOND_BLOCK.id )
mc.postToChat("<block> Privet, drug :). Da, a almazniy block!")
target = friend.clone()
while True:
pos = mc.player.getTilePos()
distance = distanceBetweenPoints(pos, friend)
if blockMood == "happy":
if distance < TOO_FAR_AWAY:
target = pos.clone()
if distance >= TOO_FAR_AWAY:
blockMood = "sad"
mc.postToChat("<block> Vernis ko mne! Mne grustno:( Obnimi mena!(stan radom so mnoy)")
elif blockMood == "sad":
if distance <= 1:
blockMood = "happy"
mc.postToChat(" <block> Spasibo! Ti takoy klassniy:) Poshli dalshe")
if friend != target:
blocksBetween = mcdrawing.getLine(friend.x, friend.y, friend.z, target.x, target.y, target.z)
for blockBetween in blocksBetween[: -1]:
mc.setBlock(friend.x, friend.y, friend.z, block.AIR.id)
friend = blockBetween.clone()
friend.y = mc.getHeight(friend.x, friend.z)
mc.setBlock(friend.x, friend.y, friend.z,block.DIAMOND_BLOCK.id)
time.sleep(0.25)
target = friend.clone()
time.sleep(0.25)

View File

@@ -0,0 +1,67 @@
import mcpi.minecraft as minecraft
mc = minecraft.Minecraft.create()
import minecraftstuff
mcdrawing = minecraftstuff.MinecraftDrawing(mc )
import mcpi.block as block
import time
import math
import random
def distanceBetweenPoints(pointl, point2) :
xd = point2.x - pointl.x
yd = point2.y - pointl.y
zd = point2.z - pointl.z
return math.sqrt((xd*xd) + (yd*yd) + (zd*zd))
TOO_FAR_AWAY = 15
blockMood = "happy"
friend = mc.player.getTilePos()
friend.x = friend.x + 5
friend.y = mc.getHeight(friend.x, friend.z)
mc.setBlock(friend.x, friend.y, friend . z, block.DIAMOND_BLOCK.id )
mc.postToChat("<block> Privet, drug :). Da, a almazniy block!")
target = friend.clone()
while True:
pos = mc.player.getTilePos()
distance = distanceBetweenPoints(pos, friend)
if blockMood == "happy":
if distance < TOO_FAR_AWAY:
target = pos.clone()
if distance >= TOO_FAR_AWAY:
blockMood = "sad"
mc.postToChat("<block> Vernis ko mne! Mne grustno:( Obnimi mena!(stan radom so mnoy)")
elif blockMood == "sad":
if distance <= 1:
blockMood = "happy"
mc.postToChat(" <block> Spasibo! Ti takoy klassniy:) Poshli dalshe")
if random.randint(1, 100) == 100:
blockMood = "hadenough"
mc.postToChat("<block> Vse, hvatit. Ti mena brosaesh! A uhozhu ot teba! I bolshe ne razgovarivau")
elif blockMood == "hadenough":
if random.randint(1, 50) == 50:
if distance <= 1:
blockMood = "happy"
mc.postToChat(" <block> ladno,spasibo! Ti takoy klassniy:) Poshli dalshe. A proshau vse obidi! ;)")
if friend != target:
blocksBetween = mcdrawing.getLine(friend.x, friend.y, friend.z, target.x, target.y, target.z)
for blockBetween in blocksBetween[: -1]:
mc.setBlock(friend.x, friend.y, friend.z, block.AIR.id)
friend = blockBetween.clone()
friend.y = mc.getHeight(friend.x, friend.z)
mc.setBlock(friend.x, friend.y, friend.z,block.DIAMOND_BLOCK.id)
time.sleep(0.25)
target = friend.clone()
time.sleep(0.25)

View File

@@ -0,0 +1,76 @@
from mcpi.minecraft import Minecraft
mc = Minecraft.create()
import mcpi.block as block
import minecraftstuff as minecraftstuff
mcdrawing = minecraftstuff.MinecraftDrawing(mc)
import time
import math
import random
def distanceBetweenPoints(point1, point2):
xd = point2.x - point1.x
yd = point2.y - point1.y
zd = point2.z - point1.z
return math.sqrt((xd*xd) + (yd*yd) + (zd*zd))
HOVER_HEIGHT = 15
ALIEN_TAUNTS = ["<àîȉɇĦЅ>Ti ne smozes ubegat veshno",
"<àîȉɇĦЅ>Soprotivlenie bespolzno!",
"<àîȉɇĦЅ>Mi vsevo lish hotim bit druzami"]
alienPos = mc.player.getTilePos()
alienPos.y = alienPos.y + 50
mode = "landing"
alienBlocks = [
minecraftstuff.ShapeBlock(-1,0,0, block.WOOL.id, 5),
minecraftstuff.ShapeBlock(0,0,-1, block.WOOL.id, 5),
minecraftstuff.ShapeBlock(1,0,0, block.WOOL.id, 5),
minecraftstuff.ShapeBlock(0,0,1, block.WOOL.id, 5),
minecraftstuff.ShapeBlock(0,-1,0, block.GLOWSTONE_BLOCK.id),
minecraftstuff . ShapeBlock(0,1,0,block.GLOWSTONE_BLOCK.id)]
alienShape = minecraftstuff.MinecraftShape(mc, alienPos, alienBlocks)
while mode != "missionaccomplished":
playerPos = mc.player.getTilePos()
if mode == "landing":
mc.postToChat("<àîȉɇĦЅ>Mi prishli ne s mirom-pozaluysta, panikuyte!")
alienTarget = playerPos.clone()
alienTarget.y = alienTarget.y + HOVER_HEIGHT
mode = "attack"
elif mode == "attack":
if alienPos.x == playerPos.x and alienPos.z == playerPos.z:
mc.postToChat("<àîȉɇĦЅ>Teper ti nash! ")
mc.setBlocks(0,50,0,6,56,6, block.BEDROCK.id)
mc.setBlocks(1,51,1,5,55,5, block.AIR.id)
mc.setBlock(3,55,3, block.GLOWSTONE_BLOCK.id)
mc.player.setTilePos(3,51,5)
time.sleep(20)
mc.postToChat(" <àîȉɇĦЅ>ne samoe interesboe-otpravit nazad" )
time.sleep(2)
mc.player.setTilePos(playerPos.x, playerPos.y, playerPos.z)
mc.setBlocks(0,50,0,6,56,6, block.AIR.id)
mode = "missionaccomplished"
else:
mc.postToChat(ALIEN_TAUNTS[random.randint(0, len(ALIEN_TAUNTS) - 1)])
alienTarget = playerPos.clone()
alienTarget.y = alienTarget.y + HOVER_HEIGHT
if alienPos != alienTarget:
blocksBetween = mcdrawing.getLine(alienPos.x, alienPos.y, alienPos.z,alienTarget.x, alienTarget.y, alienTarget.z)
for blockBetween in blocksBetween:
alienShape.move(blockBetween.x, blockBetween.y, blockBetween.z)
time.sleep(0.25)
alienPos = alienTarget.clone()
alienShape.clear()