void putOnIce(MatchTime mt) {
		// put players onto ice
		assert (home != null && away != null);
		LineUp homeLineUp = home.getLineUp();
		LineUp awayLineUp = away.getLineUp();
		int block;
		int strength1 = 0;
		int strength2 = 0;
		int strength3 = 0;
		Tactics.BlockSelection homeBlockSelection = home.getTactics()
				.getBlockSelection();
		Tactics.BlockSelection awayBlockSelection = away.getTactics()
				.getBlockSelection();

		// NYI use homeBlockSelection and awayBlockSelection

		// put players onto ice
		int nofHomeFieldPlayers = 5 - penBox.homePlayer.GetNofPlayers();
		if (nofHomeFieldPlayers < 3) {
			// at least 3 field players
			nofHomeFieldPlayers = 3;
		}
		int nofAwayFieldPlayers = 5 - penBox.awayPlayer.GetNofPlayers();
		if (nofAwayFieldPlayers < 3) {
			// at least 3 field players
			nofAwayFieldPlayers = 3;
		}
		this.onIce.homePlayer.RemoveAllPlayers();
		this.onIce.awayPlayer.RemoveAllPlayers();

		// goalies
		Player goalie = homeLineUp.getG().goal1;
		if (goalie == null || goalie.getHealth().getInjury() > 0) {
			goalie = homeLineUp.getG().goal2;
		}
		this.onIce.homePlayer.InsertPlayer(goalie);
		goalie = awayLineUp.getG().goal1;
		if (goalie == null || goalie.getHealth().getInjury() > 0) {
			goalie = awayLineUp.getG().goal2;
		}
		this.onIce.awayPlayer.InsertPlayer(goalie);

		// even play / powerplay ?
		if (nofHomeFieldPlayers == nofAwayFieldPlayers) {
			// even play
			if (nofHomeFieldPlayers == 5) {
				// away put on ice
				if (awayBlockSelection == Tactics.BlockSelection.STRONGER) {
					strength1 = getPlayerStrength(awayLineUp.getE55().d11)
							+ getPlayerStrength(awayLineUp.getE55().d12)
							+ getPlayerStrength(awayLineUp.getE55().lw1)
							+ getPlayerStrength(awayLineUp.getE55().c1)
							+ getPlayerStrength(awayLineUp.getE55().rw1);
					strength2 = getPlayerStrength(awayLineUp.getE55().d21)
							+ getPlayerStrength(awayLineUp.getE55().d22)
							+ getPlayerStrength(awayLineUp.getE55().lw2)
							+ getPlayerStrength(awayLineUp.getE55().c2)
							+ getPlayerStrength(awayLineUp.getE55().rw2);
					strength3 = getPlayerStrength(awayLineUp.getE55().d31)
							+ getPlayerStrength(awayLineUp.getE55().d32)
							+ getPlayerStrength(awayLineUp.getE55().lw3)
							+ getPlayerStrength(awayLineUp.getE55().c3)
							+ getPlayerStrength(awayLineUp.getE55().rw3);
				} else if (awayBlockSelection == Tactics.BlockSelection.LESSTIRED) {
					strength1 = getPlayerEnergy(awayLineUp.getE55().d11)
							+ getPlayerEnergy(awayLineUp.getE55().d12)
							+ getPlayerEnergy(awayLineUp.getE55().lw1)
							+ getPlayerEnergy(awayLineUp.getE55().c1)
							+ getPlayerEnergy(awayLineUp.getE55().rw1);
					strength2 = getPlayerEnergy(awayLineUp.getE55().d21)
							+ getPlayerEnergy(awayLineUp.getE55().d22)
							+ getPlayerEnergy(awayLineUp.getE55().lw2)
							+ getPlayerEnergy(awayLineUp.getE55().c2)
							+ getPlayerEnergy(awayLineUp.getE55().rw2);
					strength3 = getPlayerEnergy(awayLineUp.getE55().d31)
							+ getPlayerEnergy(awayLineUp.getE55().d32)
							+ getPlayerEnergy(awayLineUp.getE55().lw3)
							+ getPlayerEnergy(awayLineUp.getE55().c3)
							+ getPlayerEnergy(awayLineUp.getE55().rw3);
				} else {
					assert (false); // away team cannot do SAME/AGAINST
				}
				block = Util.random(6); // 0..5
				if (strength1 >= strength2 && strength1 >= strength3) {
					if (strength2 >= strength3) {
						// 1,2,3
						if (block > 2) {
							block = 1;
						} else if (block > 0) {
							block = 2;
						} else {
							block = 3;
						}
					} else {
						// 1,3,2
						if (block > 2) {
							block = 1;
						} else if (block > 0) {
							block = 3;
						} else {
							block = 2;
						}
					}
				} else if (strength2 >= strength3 && strength2 > strength1) {
					if (strength1 >= strength3) {
						// 2,1,3
						if (block > 2) {
							block = 2;
						} else if (block > 0) {
							block = 1;
						} else {
							block = 3;
						}
					} else {
						// 2,3,1
						if (block > 2) {
							block = 2;
						} else if (block > 0) {
							block = 3;
						} else {
							block = 1;
						}
					}
				} else {
					assert (strength3 > strength2 && strength3 > strength1);
					if (strength1 >= strength2) {
						// 3,1,2
						if (block > 2) {
							block = 3;
						} else if (block > 0) {
							block = 1;
						} else {
							block = 2;
						}
					} else {
						// 3,2,1
						if (block > 2) {
							block = 3;
						} else if (block > 0) {
							block = 2;
						} else {
							block = 1;
						}
					}
				}
				// don't take incomplete blocks
				if (block == 1
						&& (awayLineUp.getE55().d11 == null
								|| awayLineUp.getE55().d12 == null
								|| awayLineUp.getE55().lw1 == null
								|| awayLineUp.getE55().c1 == null || awayLineUp.getE55().rw1 == null)) {
					block = 2;
				}
				if (block == 2
						&& (awayLineUp.getE55().d21 == null
								|| awayLineUp.getE55().d22 == null
								|| awayLineUp.getE55().lw2 == null
								|| awayLineUp.getE55().c2 == null || awayLineUp.getE55().rw2 == null)) {
					block = 3;
				}
				if (block == 3
						&& (awayLineUp.getE55().d31 == null
								|| awayLineUp.getE55().d32 == null
								|| awayLineUp.getE55().lw3 == null
								|| awayLineUp.getE55().c3 == null || awayLineUp.getE55().rw3 == null)) {
					block = 1;
				}
				switch (block) {
				case 1:
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE55().d11);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE55().d12);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE55().lw1);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE55().c1);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE55().rw1);
					break;
				case 2:
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE55().d21);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE55().d22);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE55().lw2);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE55().c2);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE55().rw2);
					break;
				case 3:
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE55().d31);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE55().d32);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE55().lw3);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE55().c3);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE55().rw3);
					break;
				default:
					assert (false);
				}

				// home put on ice
				if (homeBlockSelection == Tactics.BlockSelection.AGAINST) {
					if (block == 1) {
						block = 2;
					} else if (block == 2) {
						block = 1;
					}

					// NYI 4th block

				} else if (homeBlockSelection == Tactics.BlockSelection.SAME) {
					// do nothing ("block" remains the same)
				} else {
					if (homeBlockSelection == Tactics.BlockSelection.STRONGER) {
						strength1 = getPlayerStrength(homeLineUp.getE55().d11)
								+ getPlayerStrength(homeLineUp.getE55().d12)
								+ getPlayerStrength(homeLineUp.getE55().lw1)
								+ getPlayerStrength(homeLineUp.getE55().c1)
								+ getPlayerStrength(homeLineUp.getE55().rw1);
						strength2 = getPlayerStrength(homeLineUp.getE55().d21)
								+ getPlayerStrength(homeLineUp.getE55().d22)
								+ getPlayerStrength(homeLineUp.getE55().lw2)
								+ getPlayerStrength(homeLineUp.getE55().c2)
								+ getPlayerStrength(homeLineUp.getE55().rw2);
						strength3 = getPlayerStrength(homeLineUp.getE55().d31)
								+ getPlayerStrength(homeLineUp.getE55().d32)
								+ getPlayerStrength(homeLineUp.getE55().lw3)
								+ getPlayerStrength(homeLineUp.getE55().c3)
								+ getPlayerStrength(homeLineUp.getE55().rw3);
					} else if (homeBlockSelection == Tactics.BlockSelection.LESSTIRED) {
						strength1 = getPlayerEnergy(homeLineUp.getE55().d11)
								+ getPlayerEnergy(homeLineUp.getE55().d12)
								+ getPlayerEnergy(homeLineUp.getE55().lw1)
								+ getPlayerEnergy(homeLineUp.getE55().c1)
								+ getPlayerEnergy(homeLineUp.getE55().rw1);
						strength2 = getPlayerEnergy(homeLineUp.getE55().d21)
								+ getPlayerEnergy(homeLineUp.getE55().d22)
								+ getPlayerEnergy(homeLineUp.getE55().lw2)
								+ getPlayerEnergy(homeLineUp.getE55().c2)
								+ getPlayerEnergy(homeLineUp.getE55().rw2);
						strength3 = getPlayerEnergy(homeLineUp.getE55().d31)
								+ getPlayerEnergy(homeLineUp.getE55().d32)
								+ getPlayerEnergy(homeLineUp.getE55().lw3)
								+ getPlayerEnergy(homeLineUp.getE55().c3)
								+ getPlayerEnergy(homeLineUp.getE55().rw3);
					}
					block = Util.random(6); // 0..5
					if (strength1 >= strength2 && strength1 >= strength3) {
						if (strength2 >= strength3) {
							// 1,2,3
							if (block > 2) {
								block = 1;
							} else if (block > 0) {
								block = 2;
							} else {
								block = 3;
							}
						} else {
							// 1,3,2
							if (block > 2) {
								block = 1;
							} else if (block > 0) {
								block = 3;
							} else {
								block = 2;
							}
						}
					} else if (strength2 >= strength3 && strength2 > strength1) {
						if (strength1 >= strength3) {
							// 2,1,3
							if (block > 2) {
								block = 2;
							} else if (block > 0) {
								block = 1;
							} else {
								block = 3;
							}
						} else {
							// 2,3,1
							if (block > 2) {
								block = 2;
							} else if (block > 0) {
								block = 3;
							} else {
								block = 1;
							}
						}
					} else {
						assert (strength3 > strength2 && strength3 > strength1);
						if (strength1 >= strength2) {
							// 3,1,2
							if (block > 2) {
								block = 3;
							} else if (block > 0) {
								block = 1;
							} else {
								block = 2;
							}
						} else {
							// 3,2,1
							if (block > 2) {
								block = 3;
							} else if (block > 0) {
								block = 2;
							} else {
								block = 1;
							}
						}
					}
				}
				// don't take incomplete blocks
				if (block == 1
						&& (homeLineUp.getE55().d11 == null
								|| homeLineUp.getE55().d12 == null
								|| homeLineUp.getE55().lw1 == null
								|| homeLineUp.getE55().c1 == null || homeLineUp.getE55().rw1 == null)) {
					block = 2;
				}
				if (block == 2
						&& (homeLineUp.getE55().d21 == null
								|| homeLineUp.getE55().d22 == null
								|| homeLineUp.getE55().lw2 == null
								|| homeLineUp.getE55().c2 == null || homeLineUp.getE55().rw2 == null)) {
					block = 3;
				}
				if (block == 3
						&& (homeLineUp.getE55().d31 == null
								|| homeLineUp.getE55().d32 == null
								|| homeLineUp.getE55().lw3 == null
								|| homeLineUp.getE55().c3 == null || homeLineUp.getE55().rw3 == null)) {
					block = 1;
				}
				switch (block) {
				case 1:
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE55().d11);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE55().d12);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE55().lw1);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE55().c1);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE55().rw1);
					break;
				case 2:
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE55().d21);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE55().d22);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE55().lw2);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE55().c2);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE55().rw2);
					break;
				case 3:
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE55().d31);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE55().d32);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE55().lw3);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE55().c3);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE55().rw3);
					break;
				default:
					assert (false);
				}
			} else if (nofHomeFieldPlayers == 4) {
				// away put on ice
				if (awayBlockSelection == Tactics.BlockSelection.STRONGER) {
					strength1 = getPlayerStrength(awayLineUp.getE44().d11)
							+ getPlayerStrength(awayLineUp.getE44().d12)
							+ getPlayerStrength(awayLineUp.getE44().f11)
							+ getPlayerStrength(awayLineUp.getE44().f12);
					strength2 = getPlayerStrength(awayLineUp.getE44().d21)
							+ getPlayerStrength(awayLineUp.getE44().d22)
							+ getPlayerStrength(awayLineUp.getE44().f21)
							+ getPlayerStrength(awayLineUp.getE44().f22);
				} else if (awayBlockSelection == Tactics.BlockSelection.LESSTIRED) {
					strength1 = getPlayerEnergy(awayLineUp.getE44().d11)
							+ getPlayerEnergy(awayLineUp.getE44().d12)
							+ getPlayerEnergy(awayLineUp.getE44().f11)
							+ getPlayerEnergy(awayLineUp.getE44().f12);
					strength2 = getPlayerEnergy(awayLineUp.getE44().d21)
							+ getPlayerEnergy(awayLineUp.getE44().d22)
							+ getPlayerEnergy(awayLineUp.getE44().f21)
							+ getPlayerEnergy(awayLineUp.getE44().f22);
				} else {
					assert (false); // away team cannot do SAME/AGAINST
				}
				block = Util.random(3); // 0..2
				if (strength1 >= strength2) {
					// 1,2
					if (block > 1) {
						block = 2;
					} else {
						block = 1;
					}
				} else {
					// 2, 1
					if (block > 1) {
						block = 1;
					} else {
						block = 2;
					}
				}
				// don't take incomplete blocks
				if (block == 1
						&& (awayLineUp.getE44().d11 == null
								|| awayLineUp.getE44().d12 == null
								|| awayLineUp.getE44().f11 == null || awayLineUp.getE44().f12 == null)) {
					block = 2;
				}
				if (block == 2
						&& (awayLineUp.getE44().d21 == null
								|| awayLineUp.getE44().d22 == null
								|| awayLineUp.getE44().f21 == null || awayLineUp.getE44().f22 == null)) {
					block = 1;
				}
				if (block == 1) {
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE44().d11);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE44().d12);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE44().f11);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE44().f12);
				} else {
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE44().d21);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE44().d22);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE44().f21);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE44().f22);
				}
				// home put on ice
				if (homeBlockSelection == Tactics.BlockSelection.AGAINST) {
					if (block == 1) {
						block = 2;
					} else if (block == 2) {
						block = 1;
					}
				} else if (homeBlockSelection == Tactics.BlockSelection.SAME) {
					// do nothing ("block" remains the same)
				} else {
					if (homeBlockSelection == Tactics.BlockSelection.STRONGER) {
						strength1 = getPlayerStrength(homeLineUp.getE44().d11)
								+ getPlayerStrength(homeLineUp.getE44().d12)
								+ getPlayerStrength(homeLineUp.getE44().f11)
								+ getPlayerStrength(homeLineUp.getE44().f12);
						strength2 = getPlayerStrength(homeLineUp.getE44().d21)
								+ getPlayerStrength(homeLineUp.getE44().d22)
								+ getPlayerStrength(homeLineUp.getE44().f21)
								+ getPlayerStrength(homeLineUp.getE44().f22);
					} else if (homeBlockSelection == Tactics.BlockSelection.LESSTIRED) {
						strength1 = getPlayerEnergy(homeLineUp.getE44().d11)
								+ getPlayerEnergy(homeLineUp.getE44().d12)
								+ getPlayerEnergy(homeLineUp.getE44().f11)
								+ getPlayerEnergy(homeLineUp.getE44().f12);
						strength2 = getPlayerEnergy(homeLineUp.getE44().d21)
								+ getPlayerEnergy(homeLineUp.getE44().d22)
								+ getPlayerEnergy(homeLineUp.getE44().f21)
								+ getPlayerEnergy(homeLineUp.getE44().f22);
					}
					block = Util.random(3); // 0..2
					if (strength1 >= strength2) {
						// 1,2
						if (block > 1) {
							block = 2;
						} else {
							block = 1;
						}
					} else {
						// 2, 1
						if (block > 1) {
							block = 1;
						} else {
							block = 2;
						}
					}
				}
				// don't take incomplete blocks
				if (block == 1
						&& (homeLineUp.getE44().d11 == null
								|| homeLineUp.getE44().d12 == null
								|| homeLineUp.getE44().f11 == null || homeLineUp.getE44().f12 == null)) {
					block = 2;
				}
				if (block == 2
						&& (homeLineUp.getE44().d21 == null
								|| homeLineUp.getE44().d22 == null
								|| homeLineUp.getE44().f21 == null || homeLineUp.getE44().f22 == null)) {
					block = 1;
				}
				if (block == 1) {
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE44().d11);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE44().d12);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE44().f11);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE44().f12);
				} else {
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE44().d21);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE44().d22);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE44().f21);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE44().f22);
				}
			} else {
				assert (nofHomeFieldPlayers == 3);
				// away put on ice
				if (awayBlockSelection == Tactics.BlockSelection.STRONGER) {
					strength1 = getPlayerStrength(awayLineUp.getE33().d11)
							+ getPlayerStrength(awayLineUp.getE33().d12)
							+ getPlayerStrength(awayLineUp.getE33().f1);
					strength2 = getPlayerStrength(awayLineUp.getE33().d21)
							+ getPlayerStrength(awayLineUp.getE33().d22)
							+ getPlayerStrength(awayLineUp.getE33().f2);
				} else if (awayBlockSelection == Tactics.BlockSelection.LESSTIRED) {
					strength1 = getPlayerEnergy(awayLineUp.getE33().d11)
							+ getPlayerEnergy(awayLineUp.getE33().d12)
							+ getPlayerEnergy(awayLineUp.getE33().f1);
					strength2 = getPlayerEnergy(awayLineUp.getE33().d21)
							+ getPlayerEnergy(awayLineUp.getE33().d22)
							+ getPlayerEnergy(awayLineUp.getE33().f2);
				} else {
					assert (false); // away team cannot do SAME/AGAINST
				}
				block = Util.random(3); // 0..2
				if (strength1 >= strength2) {
					// 1,2
					if (block > 1) {
						block = 2;
					} else {
						block = 1;
					}
				} else {
					// 2, 1
					if (block > 1) {
						block = 1;
					} else {
						block = 2;
					}
				}
				// don't take incomplete blocks
				if (block == 1
						&& (awayLineUp.getE33().d11 == null
								|| awayLineUp.getE33().d12 == null || awayLineUp.getE33().f1 == null)) {
					block = 2;
				}
				if (block == 2
						&& (awayLineUp.getE33().d21 == null
								|| awayLineUp.getE33().d22 == null || awayLineUp.getE33().f2 == null)) {
					block = 1;
				}
				if (block == 1) {
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE33().d11);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE33().d12);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE33().f1);
				} else {
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE33().d21);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE33().d22);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getE33().f2);
				}
				// home put on ice
				if (homeBlockSelection == Tactics.BlockSelection.AGAINST) {
					if (block == 1) {
						block = 2;
					} else if (block == 2) {
						block = 1;
					}
				} else if (homeBlockSelection == Tactics.BlockSelection.SAME) {
					// do nothing ("block" remains the same)
				} else {
					if (homeBlockSelection == Tactics.BlockSelection.STRONGER) {
						strength1 = getPlayerStrength(homeLineUp.getE33().d11)
								+ getPlayerStrength(homeLineUp.getE33().d12)
								+ getPlayerStrength(homeLineUp.getE33().f1);
						strength2 = getPlayerStrength(homeLineUp.getE33().d21)
								+ getPlayerStrength(homeLineUp.getE33().d22)
								+ getPlayerStrength(homeLineUp.getE33().f2);
					} else if (homeBlockSelection == Tactics.BlockSelection.LESSTIRED) {
						strength1 = getPlayerEnergy(homeLineUp.getE33().d11)
								+ getPlayerEnergy(homeLineUp.getE33().d12)
								+ getPlayerEnergy(homeLineUp.getE33().f1);
						strength2 = getPlayerEnergy(homeLineUp.getE33().d21)
								+ getPlayerEnergy(homeLineUp.getE33().d22)
								+ getPlayerEnergy(homeLineUp.getE33().f2);
					}
					block = Util.random(3); // 0..2
					if (strength1 >= strength2) {
						// 1,2
						if (block > 1) {
							block = 2;
						} else {
							block = 1;
						}
					} else {
						// 2, 1
						if (block > 1) {
							block = 1;
						} else {
							block = 2;
						}
					}
				}
				// don't take incomplete blocks
				if (block == 1
						&& (homeLineUp.getE33().d11 == null
								|| homeLineUp.getE33().d12 == null || homeLineUp.getE33().f1 == null)) {
					block = 2;
				}
				if (block == 2
						&& (homeLineUp.getE33().d21 == null
								|| homeLineUp.getE33().d22 == null || homeLineUp.getE33().f2 == null)) {
					block = 1;
				}
				if (block == 1) {
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE33().d11);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE33().d12);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE33().f1);
				} else {
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE33().d21);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE33().d22);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getE33().f2);
				}
			}
		} else if (nofHomeFieldPlayers > nofAwayFieldPlayers) {
			// powerplay home
			if (nofHomeFieldPlayers == 5) {
				// away put on ice
				if (nofAwayFieldPlayers == 4) {
					if (awayBlockSelection == Tactics.BlockSelection.STRONGER) {
						strength1 = getPlayerStrength(awayLineUp.getPk4().d11)
								+ getPlayerStrength(awayLineUp.getPk4().d12)
								+ getPlayerStrength(awayLineUp.getPk4().f11)
								+ getPlayerStrength(awayLineUp.getPk4().f12);
						strength2 = getPlayerStrength(awayLineUp.getPk4().d21)
								+ getPlayerStrength(awayLineUp.getPk4().d22)
								+ getPlayerStrength(awayLineUp.getPk4().f21)
								+ getPlayerStrength(awayLineUp.getPk4().f22);
					} else if (awayBlockSelection == Tactics.BlockSelection.LESSTIRED) {
						strength1 = getPlayerEnergy(awayLineUp.getPk4().d11)
								+ getPlayerEnergy(awayLineUp.getPk4().d12)
								+ getPlayerEnergy(awayLineUp.getPk4().f11)
								+ getPlayerEnergy(awayLineUp.getPk4().f12);
						strength2 = getPlayerEnergy(awayLineUp.getPk4().d21)
								+ getPlayerEnergy(awayLineUp.getPk4().d22)
								+ getPlayerEnergy(awayLineUp.getPk4().f21)
								+ getPlayerEnergy(awayLineUp.getPk4().f22);
					} else {
						assert (false); // away team cannot do SAME/AGAINST
					}
					block = Util.random(3); // 0..2
					if (strength1 >= strength2) {
						// 1,2
						if (block > 1) {
							block = 2;
						} else {
							block = 1;
						}
					} else {
						// 2, 1
						if (block > 1) {
							block = 1;
						} else {
							block = 2;
						}
					}
					// don't take incomplete blocks
					if (block == 1
							&& (awayLineUp.getPk4().d11 == null
									|| awayLineUp.getPk4().d12 == null
									|| awayLineUp.getPk4().f11 == null || awayLineUp.getPk4().f12 == null)) {
						block = 2;
					}
					if (block == 2
							&& (awayLineUp.getPk4().d21 == null
									|| awayLineUp.getPk4().d22 == null
									|| awayLineUp.getPk4().f21 == null || awayLineUp.getPk4().f22 == null)) {
						block = 1;
					}
					if (block == 1) {
						this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPk4().d11);
						this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPk4().d12);
						this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPk4().f11);
						this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPk4().f12);
					} else {
						this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPk4().d21);
						this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPk4().d22);
						this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPk4().f21);
						this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPk4().f22);
					}
				} else {
					assert (nofAwayFieldPlayers == 3);
					if (awayBlockSelection == Tactics.BlockSelection.STRONGER) {
						strength1 = getPlayerStrength(awayLineUp.getPk3().d11)
								+ getPlayerStrength(awayLineUp.getPk3().d12)
								+ getPlayerStrength(awayLineUp.getPk3().f1);
						strength2 = getPlayerStrength(awayLineUp.getPk3().d21)
								+ getPlayerStrength(awayLineUp.getPk3().d22)
								+ getPlayerStrength(awayLineUp.getPk3().f2);
					} else if (awayBlockSelection == Tactics.BlockSelection.LESSTIRED) {
						strength1 = getPlayerEnergy(awayLineUp.getPk3().d11)
								+ getPlayerEnergy(awayLineUp.getPk3().d12)
								+ getPlayerEnergy(awayLineUp.getPk3().f1);
						strength2 = getPlayerEnergy(awayLineUp.getPk3().d21)
								+ getPlayerEnergy(awayLineUp.getPk3().d22)
								+ getPlayerEnergy(awayLineUp.getPk3().f2);
					} else {
						assert (false); // away team cannot do SAME/AGAINST
					}
					block = Util.random(3); // 0..2
					if (strength1 >= strength2) {
						// 1,2
						if (block > 1) {
							block = 2;
						} else {
							block = 1;
						}
					} else {
						// 2, 1
						if (block > 1) {
							block = 1;
						} else {
							block = 2;
						}
					}
					// don't take incomplete blocks
					if (block == 1
							&& (awayLineUp.getPk3().d11 == null
									|| awayLineUp.getPk3().d12 == null || awayLineUp.getPk3().f1 == null)) {
						block = 2;
					}
					if (block == 2
							&& (awayLineUp.getPk3().d21 == null
									|| awayLineUp.getPk3().d22 == null || awayLineUp.getPk3().f2 == null)) {
						block = 1;
					}
					if (block == 1) {
						this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPk3().d11);
						this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPk3().d12);
						this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPk3().f1);
					} else {
						this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPk3().d21);
						this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPk3().d22);
						this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPk3().f2);
					}
				}
				// home put on ice
				if (homeBlockSelection == Tactics.BlockSelection.AGAINST) {
					if (block == 1) {
						block = 2;
					} else if (block == 2) {
						block = 1;
					}
				} else if (homeBlockSelection == Tactics.BlockSelection.SAME) {
					// do nothing ("block" remains the same)
				} else {
					if (homeBlockSelection == Tactics.BlockSelection.STRONGER) {
						strength1 = getPlayerStrength(homeLineUp.getPp5().d11)
								+ getPlayerStrength(homeLineUp.getPp5().d12)
								+ getPlayerStrength(homeLineUp.getPp5().lw1)
								+ getPlayerStrength(homeLineUp.getPp5().c1)
								+ getPlayerStrength(homeLineUp.getPp5().rw1);
						strength2 = getPlayerStrength(homeLineUp.getPp5().d21)
								+ getPlayerStrength(homeLineUp.getPp5().d22)
								+ getPlayerStrength(homeLineUp.getPp5().lw2)
								+ getPlayerStrength(homeLineUp.getPp5().c2)
								+ getPlayerStrength(homeLineUp.getPp5().rw2);
					} else if (homeBlockSelection == Tactics.BlockSelection.LESSTIRED) {
						strength1 = getPlayerEnergy(homeLineUp.getPp5().d11)
								+ getPlayerEnergy(homeLineUp.getPp5().d12)
								+ getPlayerEnergy(homeLineUp.getPp5().lw1)
								+ getPlayerEnergy(homeLineUp.getPp5().c1)
								+ getPlayerEnergy(homeLineUp.getPp5().rw1);
						strength2 = getPlayerEnergy(homeLineUp.getPp5().d21)
								+ getPlayerEnergy(homeLineUp.getPp5().d22)
								+ getPlayerEnergy(homeLineUp.getPp5().lw2)
								+ getPlayerEnergy(homeLineUp.getPp5().c2)
								+ getPlayerEnergy(homeLineUp.getPp5().rw2);
					}
					block = Util.random(3); // 0..2
					if (strength1 >= strength2) {
						// 1,2
						if (block > 1) {
							block = 2;
						} else {
							block = 1;
						}
					} else {
						// 2, 1
						if (block > 1) {
							block = 1;
						} else {
							block = 2;
						}
					}
				}
				// don't take incomplete blocks
				if (block == 1
						&& (homeLineUp.getPp5().d11 == null
								|| homeLineUp.getPp5().d12 == null
								|| homeLineUp.getPp5().lw1 == null
								|| homeLineUp.getPp5().c1 == null || homeLineUp.getPp5().rw1 == null)) {
					block = 2;
				}
				if (block == 2
						&& (homeLineUp.getPp5().d21 == null
								|| homeLineUp.getPp5().d22 == null
								|| homeLineUp.getPp5().lw2 == null
								|| homeLineUp.getPp5().c2 == null || homeLineUp.getPp5().rw2 == null)) {
					block = 1;
				}
				if (block == 1) {
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getPp5().d11);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getPp5().d12);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getPp5().lw1);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getPp5().c1);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getPp5().rw1);
				} else {
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getPp5().d21);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getPp5().d22);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getPp5().lw2);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getPp5().c2);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getPp5().rw2);
				}
			} else {
				assert (nofHomeFieldPlayers == 4);
				assert (nofAwayFieldPlayers == 3);
				// away put on ice
				if (awayBlockSelection == Tactics.BlockSelection.STRONGER) {
					strength1 = getPlayerStrength(awayLineUp.getPk3().d11)
							+ getPlayerStrength(awayLineUp.getPk3().d12)
							+ getPlayerStrength(awayLineUp.getPk3().f1);
					strength2 = getPlayerStrength(awayLineUp.getPk3().d21)
							+ getPlayerStrength(awayLineUp.getPk3().d22)
							+ getPlayerStrength(awayLineUp.getPk3().f2);
				} else if (awayBlockSelection == Tactics.BlockSelection.LESSTIRED) {
					strength1 = getPlayerEnergy(awayLineUp.getPk3().d11)
							+ getPlayerEnergy(awayLineUp.getPk3().d12)
							+ getPlayerEnergy(awayLineUp.getPk3().f1);
					strength2 = getPlayerEnergy(awayLineUp.getPk3().d21)
							+ getPlayerEnergy(awayLineUp.getPk3().d22)
							+ getPlayerEnergy(awayLineUp.getPk3().f2);
				} else {
					assert (false); // away team cannot do SAME/AGAINST
				}
				block = Util.random(3); // 0..2
				if (strength1 >= strength2) {
					// 1,2
					if (block > 1) {
						block = 2;
					} else {
						block = 1;
					}
				} else {
					// 2, 1
					if (block > 1) {
						block = 1;
					} else {
						block = 2;
					}
				}
				// don't take incomplete blocks
				if (block == 1
						&& (awayLineUp.getPk3().d11 == null
								|| awayLineUp.getPk3().d12 == null || awayLineUp.getPk3().f1 == null)) {
					block = 2;
				}
				if (block == 2
						&& (awayLineUp.getPk3().d21 == null
								|| awayLineUp.getPk3().d22 == null || awayLineUp.getPk3().f2 == null)) {
					block = 1;
				}
				if (block == 1) {
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPk3().d11);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPk3().d12);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPk3().f1);
				} else {
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPk3().d21);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPk3().d22);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPk3().f2);
				}
				// home put on ice
				if (homeBlockSelection == Tactics.BlockSelection.AGAINST) {
					if (block == 1) {
						block = 2;
					} else if (block == 2) {
						block = 1;
					}
				} else if (homeBlockSelection == Tactics.BlockSelection.SAME) {
					// do nothing ("block" remains the same)
				} else {
					if (homeBlockSelection == Tactics.BlockSelection.STRONGER) {
						strength1 = getPlayerStrength(homeLineUp.getPp4().d11)
								+ getPlayerStrength(homeLineUp.getPp4().d12)
								+ getPlayerStrength(homeLineUp.getPp4().f11)
								+ getPlayerStrength(homeLineUp.getPp4().f12);
						strength2 = getPlayerStrength(homeLineUp.getPp4().d21)
								+ getPlayerStrength(homeLineUp.getPp4().d22)
								+ getPlayerStrength(homeLineUp.getPp4().f21)
								+ getPlayerStrength(homeLineUp.getPp4().f22);
					} else if (homeBlockSelection == Tactics.BlockSelection.LESSTIRED) {
						strength1 = getPlayerEnergy(homeLineUp.getPp4().d11)
								+ getPlayerEnergy(homeLineUp.getPp4().d12)
								+ getPlayerEnergy(homeLineUp.getPp4().f11)
								+ getPlayerEnergy(homeLineUp.getPp4().f12);
						strength2 = getPlayerEnergy(homeLineUp.getPp4().d21)
								+ getPlayerEnergy(homeLineUp.getPp4().d22)
								+ getPlayerEnergy(homeLineUp.getPp4().f21)
								+ getPlayerEnergy(homeLineUp.getPp4().f22);
					}
					block = Util.random(3); // 0..2
					if (strength1 >= strength2) {
						// 1,2
						if (block > 1) {
							block = 2;
						} else {
							block = 1;
						}
					} else {
						// 2, 1
						if (block > 1) {
							block = 1;
						} else {
							block = 2;
						}
					}
				}
				// don't take incomplete blocks
				if (block == 1
						&& (homeLineUp.getPp4().d11 == null
								|| homeLineUp.getPp4().d12 == null
								|| homeLineUp.getPp4().f11 == null || homeLineUp.getPp4().f12 == null)) {
					block = 2;
				}
				if (block == 2
						&& (homeLineUp.getPp4().d21 == null
								|| homeLineUp.getPp4().d22 == null
								|| homeLineUp.getPp4().f21 == null || homeLineUp.getPp4().f22 == null)) {
					block = 1;
				}
				if (block == 1) {
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getPp4().d11);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getPp4().d12);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getPp4().f11);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getPp4().f12);
				} else {
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getPp4().d21);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getPp4().d22);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getPp4().f21);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getPp4().f22);
				}
			}
		} else {
			// powerplay away
			assert (nofHomeFieldPlayers < nofAwayFieldPlayers);
			if (nofAwayFieldPlayers == 5) {
				// away put on ice
				if (awayBlockSelection == Tactics.BlockSelection.STRONGER) {
					strength1 = getPlayerStrength(awayLineUp.getPp5().d11)
							+ getPlayerStrength(awayLineUp.getPp5().d12)
							+ getPlayerStrength(awayLineUp.getPp5().lw1)
							+ getPlayerStrength(awayLineUp.getPp5().c1)
							+ getPlayerStrength(awayLineUp.getPp5().rw1);
					strength2 = getPlayerStrength(awayLineUp.getPp5().d21)
							+ getPlayerStrength(awayLineUp.getPp5().d22)
							+ getPlayerStrength(awayLineUp.getPp5().lw2)
							+ getPlayerStrength(awayLineUp.getPp5().c2)
							+ getPlayerStrength(awayLineUp.getPp5().rw2);
				} else if (awayBlockSelection == Tactics.BlockSelection.LESSTIRED) {
					strength1 = getPlayerEnergy(awayLineUp.getPp5().d11)
							+ getPlayerEnergy(awayLineUp.getPp5().d12)
							+ getPlayerEnergy(awayLineUp.getPp5().lw1)
							+ getPlayerEnergy(awayLineUp.getPp5().c1)
							+ getPlayerEnergy(awayLineUp.getPp5().rw1);
					strength2 = getPlayerEnergy(awayLineUp.getPp5().d21)
							+ getPlayerEnergy(awayLineUp.getPp5().d22)
							+ getPlayerEnergy(awayLineUp.getPp5().lw2)
							+ getPlayerEnergy(awayLineUp.getPp5().c2)
							+ getPlayerEnergy(awayLineUp.getPp5().rw2);
				} else {
					assert (false); // away team cannot do SAME/AGAINST
				}
				block = Util.random(3); // 0..2
				if (strength1 >= strength2) {
					// 1,2
					if (block > 1) {
						block = 2;
					} else {
						block = 1;
					}
				} else {
					// 2, 1
					if (block > 1) {
						block = 1;
					} else {
						block = 2;
					}
				}
				// don't take incomplete blocks
				if (block == 1
						&& (awayLineUp.getPp5().d11 == null
								|| awayLineUp.getPp5().d12 == null
								|| awayLineUp.getPp5().lw1 == null
								|| awayLineUp.getPp5().c1 == null || awayLineUp.getPp5().rw1 == null)) {
					block = 2;
				}
				if (block == 2
						&& (awayLineUp.getPp5().d21 == null
								|| awayLineUp.getPp5().d22 == null
								|| awayLineUp.getPp5().lw2 == null
								|| awayLineUp.getPp5().c2 == null || awayLineUp.getPp5().rw2 == null)) {
					block = 1;
				}
				if (block == 1) {
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPp5().d11);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPp5().d12);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPp5().lw1);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPp5().c1);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPp5().rw1);
				} else {
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPp5().d21);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPp5().d22);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPp5().lw2);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPp5().c2);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPp5().rw2);
				}
				// home put on ice
				if (nofHomeFieldPlayers == 4) {
					if (homeBlockSelection == Tactics.BlockSelection.AGAINST) {
						if (block == 1) {
							block = 2;
						} else if (block == 2) {
							block = 1;
						}
					} else if (homeBlockSelection == Tactics.BlockSelection.SAME) {
						// do nothing ("block" remains the same)
					} else {
						if (homeBlockSelection == Tactics.BlockSelection.STRONGER) {
							strength1 = getPlayerStrength(homeLineUp.getPk4().d11)
									+ getPlayerStrength(homeLineUp.getPk4().d12)
									+ getPlayerStrength(homeLineUp.getPk4().f11)
									+ getPlayerStrength(homeLineUp.getPk4().f12);
							strength2 = getPlayerStrength(homeLineUp.getPk4().d21)
									+ getPlayerStrength(homeLineUp.getPk4().d22)
									+ getPlayerStrength(homeLineUp.getPk4().f21)
									+ getPlayerStrength(homeLineUp.getPk4().f22);
						} else if (homeBlockSelection == Tactics.BlockSelection.LESSTIRED) {
							strength1 = getPlayerEnergy(homeLineUp.getPk4().d11)
									+ getPlayerEnergy(homeLineUp.getPk4().d12)
									+ getPlayerEnergy(homeLineUp.getPk4().f11)
									+ getPlayerEnergy(homeLineUp.getPk4().f12);
							strength2 = getPlayerEnergy(homeLineUp.getPk4().d21)
									+ getPlayerEnergy(homeLineUp.getPk4().d22)
									+ getPlayerEnergy(homeLineUp.getPk4().f21)
									+ getPlayerEnergy(homeLineUp.getPk4().f22);
						}
						block = Util.random(3); // 0..2
						if (strength1 >= strength2) {
							// 1,2
							if (block > 1) {
								block = 2;
							} else {
								block = 1;
							}
						} else {
							// 2, 1
							if (block > 1) {
								block = 1;
							} else {
								block = 2;
							}
						}
					}
					// don't take incomplete blocks
					if (block == 1
							&& (homeLineUp.getPk4().d11 == null
									|| homeLineUp.getPk4().d12 == null
									|| homeLineUp.getPk4().f11 == null || homeLineUp.getPk4().f12 == null)) {
						block = 2;
					}
					if (block == 2
							&& (homeLineUp.getPk4().d21 == null
									|| homeLineUp.getPk4().d22 == null
									|| homeLineUp.getPk4().f21 == null || homeLineUp.getPk4().f22 == null)) {
						block = 1;
					}
					if (block == 1) {
						this.onIce.homePlayer.InsertPlayer(homeLineUp.getPk4().d11);
						this.onIce.homePlayer.InsertPlayer(homeLineUp.getPk4().d12);
						this.onIce.homePlayer.InsertPlayer(homeLineUp.getPk4().f11);
						this.onIce.homePlayer.InsertPlayer(homeLineUp.getPk4().f12);
					} else {
						this.onIce.homePlayer.InsertPlayer(homeLineUp.getPk4().d21);
						this.onIce.homePlayer.InsertPlayer(homeLineUp.getPk4().d22);
						this.onIce.homePlayer.InsertPlayer(homeLineUp.getPk4().f21);
						this.onIce.homePlayer.InsertPlayer(homeLineUp.getPk4().f22);
					}
				} else {
					assert (nofHomeFieldPlayers == 3);
					if (homeBlockSelection == Tactics.BlockSelection.AGAINST) {
						if (block == 1) {
							block = 2;
						} else if (block == 2) {
							block = 1;
						}
					} else if (homeBlockSelection == Tactics.BlockSelection.SAME) {
						// do nothing ("block" remains the same)
					} else {
						if (homeBlockSelection == Tactics.BlockSelection.STRONGER) {
							strength1 = getPlayerStrength(homeLineUp.getPk3().d11)
									+ getPlayerStrength(homeLineUp.getPk3().d12)
									+ getPlayerStrength(homeLineUp.getPk3().f1);
							strength2 = getPlayerStrength(homeLineUp.getPk3().d21)
									+ getPlayerStrength(homeLineUp.getPk3().d22)
									+ getPlayerStrength(homeLineUp.getPk3().f2);
						} else if (homeBlockSelection == Tactics.BlockSelection.LESSTIRED) {
							strength1 = getPlayerEnergy(homeLineUp.getPk3().d11)
									+ getPlayerEnergy(homeLineUp.getPk3().d12)
									+ getPlayerEnergy(homeLineUp.getPk3().f1);
							strength2 = getPlayerEnergy(homeLineUp.getPk3().d21)
									+ getPlayerEnergy(homeLineUp.getPk3().d22)
									+ getPlayerEnergy(homeLineUp.getPk3().f2);
						}
						block = Util.random(3); // 0..2
						if (strength1 >= strength2) {
							// 1,2
							if (block > 1) {
								block = 2;
							} else {
								block = 1;
							}
						} else {
							// 2, 1
							if (block > 1) {
								block = 1;
							} else {
								block = 2;
							}
						}
					}
					// don't take incomplete blocks
					if (block == 1
							&& (homeLineUp.getPk3().d11 == null
									|| homeLineUp.getPk3().d12 == null || homeLineUp.getPk3().f1 == null)) {
						block = 2;
					}
					if (block == 2
							&& (homeLineUp.getPk3().d21 == null
									|| homeLineUp.getPk3().d22 == null || homeLineUp.getPk3().f2 == null)) {
						block = 1;
					}
					if (block == 1) {
						this.onIce.homePlayer.InsertPlayer(homeLineUp.getPk3().d11);
						this.onIce.homePlayer.InsertPlayer(homeLineUp.getPk3().d12);
						this.onIce.homePlayer.InsertPlayer(homeLineUp.getPk3().f1);
					} else {
						this.onIce.homePlayer.InsertPlayer(homeLineUp.getPk3().d21);
						this.onIce.homePlayer.InsertPlayer(homeLineUp.getPk3().d22);
						this.onIce.homePlayer.InsertPlayer(homeLineUp.getPk3().f2);
					}
				}
			} else {
				assert (nofHomeFieldPlayers == 3);
				assert (nofAwayFieldPlayers == 4);
				// away put on ice
				if (awayBlockSelection == Tactics.BlockSelection.STRONGER) {
					strength1 = getPlayerStrength(awayLineUp.getPp4().d11)
							+ getPlayerStrength(awayLineUp.getPp4().d12)
							+ getPlayerStrength(awayLineUp.getPp4().f11)
							+ getPlayerStrength(awayLineUp.getPp4().f12);
					strength2 = getPlayerStrength(awayLineUp.getPp4().d21)
							+ getPlayerStrength(awayLineUp.getPp4().d22)
							+ getPlayerStrength(awayLineUp.getPp4().f21)
							+ getPlayerStrength(awayLineUp.getPp4().f22);
				} else if (awayBlockSelection == Tactics.BlockSelection.LESSTIRED) {
					strength1 = getPlayerEnergy(awayLineUp.getPp4().d11)
							+ getPlayerEnergy(awayLineUp.getPp4().d12)
							+ getPlayerEnergy(awayLineUp.getPp4().f11)
							+ getPlayerEnergy(awayLineUp.getPp4().f12);
					strength2 = getPlayerEnergy(awayLineUp.getPp4().d21)
							+ getPlayerEnergy(awayLineUp.getPp4().d22)
							+ getPlayerEnergy(awayLineUp.getPp4().f21)
							+ getPlayerEnergy(awayLineUp.getPp4().f22);
				}
				block = Util.random(3); // 0..2
				if (strength1 >= strength2) {
					// 1,2
					if (block > 1) {
						block = 2;
					} else {
						block = 1;
					}
				} else {
					// 2, 1
					if (block > 1) {
						block = 1;
					} else {
						block = 2;
					}
				}
				// don't take incomplete blocks
				if (block == 1
						&& (awayLineUp.getPp4().d11 == null
								|| awayLineUp.getPp4().d12 == null
								|| awayLineUp.getPp4().f11 == null || awayLineUp.getPp4().f12 == null)) {
					block = 2;
				}
				if (block == 2
						&& (awayLineUp.getPp4().d21 == null
								|| awayLineUp.getPp4().d22 == null
								|| awayLineUp.getPp4().f21 == null || awayLineUp.getPp4().f22 == null)) {
					block = 1;
				}
				if (block == 1) {
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPp4().d11);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPp4().d12);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPp4().f11);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPp4().f12);
				} else {
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPp4().d21);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPp4().d22);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPp4().f21);
					this.onIce.awayPlayer.InsertPlayer(awayLineUp.getPp4().f22);
				}
				// home put on ice
				if (homeBlockSelection == Tactics.BlockSelection.AGAINST) {
					if (block == 1) {
						block = 2;
					} else if (block == 2) {
						block = 1;
					}
				} else if (homeBlockSelection == Tactics.BlockSelection.SAME) {
					// do nothing ("block" remains the same)
				} else {
					if (homeBlockSelection == Tactics.BlockSelection.STRONGER) {
						strength1 = getPlayerStrength(homeLineUp.getPk3().d11)
								+ getPlayerStrength(homeLineUp.getPk3().d12)
								+ getPlayerStrength(homeLineUp.getPk3().f1);
						strength2 = getPlayerStrength(homeLineUp.getPk3().d21)
								+ getPlayerStrength(homeLineUp.getPk3().d22)
								+ getPlayerStrength(homeLineUp.getPk3().f2);
					} else if (homeBlockSelection == Tactics.BlockSelection.LESSTIRED) {
						strength1 = getPlayerEnergy(homeLineUp.getPk3().d11)
								+ getPlayerEnergy(homeLineUp.getPk3().d12)
								+ getPlayerEnergy(homeLineUp.getPk3().f1);
						strength2 = getPlayerEnergy(homeLineUp.getPk3().d21)
								+ getPlayerEnergy(homeLineUp.getPk3().d22)
								+ getPlayerEnergy(homeLineUp.getPk3().f2);
					}
					block = Util.random(3); // 0..2
					if (strength1 >= strength2) {
						// 1,2
						if (block > 1) {
							block = 2;
						} else {
							block = 1;
						}
					} else {
						// 2, 1
						if (block > 1) {
							block = 1;
						} else {
							block = 2;
						}
					}
				}
				// don't take incomplete blocks
				if (block == 1
						&& (homeLineUp.getPk3().d11 == null
								|| homeLineUp.getPk3().d12 == null || homeLineUp.getPk3().f1 == null)) {
					block = 2;
				}
				if (block == 2
						&& (homeLineUp.getPk3().d21 == null
								|| homeLineUp.getPk3().d22 == null || homeLineUp.getPk3().f2 == null)) {
					block = 1;
				}
				if (block == 1) {
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getPk3().d11);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getPk3().d12);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getPk3().f1);
				} else {
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getPk3().d21);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getPk3().d22);
					this.onIce.homePlayer.InsertPlayer(homeLineUp.getPk3().f2);
				}
			}
		}
		// if player in penbox or injured, remove from ice and replace with
		// other player
		int i = 0;
		while (i < onIce.homePlayer.GetNofPlayers()) {
			Player player = onIce.homePlayer.GetPlayer(i);
			if (penBox.homePlayer.GetIdPlayer(player.getId()) != null
					|| player.getHealth().getInjury() > 0 // there are no injured players on ice !
			) {
				onIce.homePlayer.RemovePlayer(player);
				// TODO get least tired player from the lineups
				player = homeLineUp.getE55().c4;
				if (player == null
						|| player.getHealth().getInjury() > 0
						|| penBox.homePlayer.GetIdPlayer(player.getId()) != null
						|| onIce.homePlayer.GetIdPlayer(player.getId()) != null) {
					player = homeLineUp.getE55().lw4;
					if (player == null
							|| player.getHealth().getInjury() > 0
							|| penBox.homePlayer.GetIdPlayer(player.getId()) != null
							|| onIce.homePlayer.GetIdPlayer(player.getId()) != null) {
						player = homeLineUp.getE55().rw4;
						if (player == null
								|| player.getHealth().getInjury() > 0
								|| penBox.homePlayer
										.GetIdPlayer(player.getId()) != null
								|| onIce.homePlayer.GetIdPlayer(player.getId()) != null) {
							player = homeLineUp.getG().goal2;
							if (player == null
									|| player.getHealth().getInjury() > 0
									|| penBox.homePlayer.GetIdPlayer(player
											.getId()) != null
									|| onIce.homePlayer.GetIdPlayer(player
											.getId()) != null) {
								player = null;
							}

							// NYI

						}
					}
				}
				if (player != null) {
					onIce.homePlayer.InsertPlayer(player);
				}
				i = 0;
			} else {
				i++;
			}
		}
		i = 0;
		while (i < onIce.awayPlayer.GetNofPlayers()) {
			Player player = onIce.awayPlayer.GetPlayer(i);
			if (penBox.awayPlayer.GetIdPlayer(player.getId()) != null
					|| player.getHealth().getInjury() > 0 // there are no injured players on ice !
			) {
				onIce.awayPlayer.RemovePlayer(player);
				// NYI get least tired player from the lineups
				player = awayLineUp.getE55().c4;
				if (player == null
						|| player.getHealth().getInjury() > 0
						|| penBox.awayPlayer.GetIdPlayer(player.getId()) != null
						|| onIce.awayPlayer.GetIdPlayer(player.getId()) != null) {
					player = awayLineUp.getE55().lw4;
					if (player == null
							|| player.getHealth().getInjury() > 0
							|| penBox.awayPlayer.GetIdPlayer(player.getId()) != null
							|| onIce.awayPlayer.GetIdPlayer(player.getId()) != null) {
						player = awayLineUp.getE55().rw4;
						if (player == null
								|| player.getHealth().getInjury() > 0
								|| penBox.awayPlayer
										.GetIdPlayer(player.getId()) != null
								|| onIce.awayPlayer.GetIdPlayer(player.getId()) != null) {
							player = awayLineUp.getG().goal2;
							if (player == null
									|| player.getHealth().getInjury() > 0
									|| penBox.awayPlayer.GetIdPlayer(player
											.getId()) != null
									|| onIce.awayPlayer.GetIdPlayer(player
											.getId()) != null) {
								player = null;
							}

							// NYI

						}
					}
				}
				if (player != null) {
					onIce.awayPlayer.InsertPlayer(player);
				}
				i = 0;
			} else {
				i++;
			}
		}

		if (mt.getTotalSec() > 3540 && currHomeScore + 1 == currAwayScore
				|| mt.getTotalSec() > 3480 && mt.getTotalSec() <= 3540
				&& currHomeScore + 2 == currAwayScore) {
			// pull/push goalie
			// pull goalie
			Player player = onIce.homePlayer.GetPlayer(0);
			onIce.homePlayer.RemovePlayer(player);
			// NYI get least tired player from the lineups
			player = homeLineUp.getE55().c4;
			if (player == null || player.getHealth().getInjury() > 0
					|| penBox.homePlayer.GetIdPlayer(player.getId()) != null
					|| onIce.homePlayer.GetIdPlayer(player.getId()) != null) {
				player = homeLineUp.getE55().lw4;
				if (player == null
						|| player.getHealth().getInjury() > 0
						|| penBox.homePlayer.GetIdPlayer(player.getId()) != null
						|| onIce.homePlayer.GetIdPlayer(player.getId()) != null) {
					player = homeLineUp.getE55().rw4;
					if (player == null
							|| player.getHealth().getInjury() > 0
							|| penBox.homePlayer.GetIdPlayer(player.getId()) != null
							|| onIce.homePlayer.GetIdPlayer(player.getId()) != null) {
						player = homeLineUp.getG().goal2;
						if (player == null
								|| player.getHealth().getInjury() > 0
								|| penBox.homePlayer
										.GetIdPlayer(player.getId()) != null
								|| onIce.homePlayer.GetIdPlayer(player.getId()) != null) {
							player = null;
						}

						// NYI

					}
				}
			}
			if (player != null) {
				onIce.homePlayer.InsertPlayer(player);
			}
		}
		if (mt.getTotalSec() > 3540 && currAwayScore + 1 == currHomeScore
				|| mt.getTotalSec() > 3480 && mt.getTotalSec() <= 3540
				&& currAwayScore + 2 == currHomeScore) {
			// pull goalie
			Player player = onIce.awayPlayer.GetPlayer(0);
			onIce.awayPlayer.RemovePlayer(player);
			// NYI get least tired player from the lineups
			player = awayLineUp.getE55().c4;
			if (player == null || player.getHealth().getInjury() > 0
					|| penBox.awayPlayer.GetIdPlayer(player.getId()) != null
					|| onIce.awayPlayer.GetIdPlayer(player.getId()) != null) {
				player = awayLineUp.getE55().lw4;
				if (player == null
						|| player.getHealth().getInjury() > 0
						|| penBox.awayPlayer.GetIdPlayer(player.getId()) != null
						|| onIce.awayPlayer.GetIdPlayer(player.getId()) != null) {
					player = awayLineUp.getE55().rw4;
					if (player == null
							|| player.getHealth().getInjury() > 0
							|| penBox.awayPlayer.GetIdPlayer(player.getId()) != null
							|| onIce.awayPlayer.GetIdPlayer(player.getId()) != null) {
						player = awayLineUp.getG().goal2;
						if (player == null
								|| player.getHealth().getInjury() > 0
								|| penBox.homePlayer
										.GetIdPlayer(player.getId()) != null
								|| onIce.homePlayer.GetIdPlayer(player.getId()) != null) {
							player = null;
						}

						// NYI

					}
				}
			}
			if (player != null) {
				onIce.awayPlayer.InsertPlayer(player);
			}
		}

	}