Untitled

mail@pastecode.io avatarunknown
python
a month ago
5.4 kB
4
Indexable
Never
import random
board = [["","",""],["","",""],["","",""]];
def print_board(i,j):
	print("---------");
	print_board_recursive(i,j);
	print("---------");
aux = "";
def print_board_recursive (i,j):
	global aux;
	if(i < len(board)):
		if(j < len(board)):
			aux = aux + board[i][j] + "\t";
			print_board_recursive(i, j + 1);
		else:
			if(i < len(board) - 1):
				print(aux + "\n");
			else:
				print(aux);
			aux = "";
			print_board_recursive(i + 1, 0);
	else:
		return;


def start ():
	print("rules: ")
	print("	You would have to choose if the pieces in a 3x3 board, move like the clockwise or counterclockwise");
	print("	The distribution and number of pieces are random");
	print("	There can not be more than 5 pieces");
	print("	There can not be pieces in the middle space");
	print(" If the next place for a piece is occupied, the piece does not move");
	print("to stop the program, you have to answer stop");
	number_of_pieces = random.randint(2,5);
	place_pieces(number_of_pieces,0);
	move_pieces(number_of_pieces);


def place_pieces (number_of_pieces, pieces_counter):
	if(pieces_counter == number_of_pieces):
		return;
	x = random.randint(0,2);
	y = random.randint(0,2);
	if(board[x][y] != "X"):
		if(x != 1 or y != 1):
			board[x][y] = "X";
			place_pieces(number_of_pieces, pieces_counter + 1);
		else: 
			place_pieces(number_of_pieces, pieces_counter);	
	else:
		place_pieces(number_of_pieces, pieces_counter);	

def move_pieces(number_of_pieces):
	direction = input("Do you want the pieces to move clockwise or counterclockwise? ");
	if(direction == "stop"):
		return;
	else:
		print_board(0,0);
		choose_pieces_recursive(number_of_pieces, 0, 0, 0, direction);	
	move_pieces(number_of_pieces);


def choose_pieces_recursive(number_of_pieces, pieces_counter, row, column, direction):
	counter_pieces = pieces_counter
	if(pieces_counter == number_of_pieces):
		return;
	if(board[row][column] == "X"):
		counter_pieces = counter_pieces + 1;
		move_pieces_effective(row, column, direction);
	if(direction == "clockwise"):
		if(column == 0 and row < 2):
			choose_pieces_recursive(number_of_pieces, counter_pieces, row + 1, column, direction);
		elif(row == 0 and column > 0):
			choose_pieces_recursive(number_of_pieces, counter_pieces, row, column - 1, direction);
		elif(column == 2 and row > 0):
			choose_pieces_recursive(number_of_pieces, counter_pieces, row - 1, column, direction);
		elif(row == 2 and column < 2):
			choose_pieces_recursive(number_of_pieces, counter_pieces, row, column + 1, direction);
	elif(direction == "counterclockwise"):
		if(row == 0 and column < 2):
			choose_pieces_recursive(number_of_pieces, counter_pieces, row, column + 1, direction);
		elif(column == 2 and row < 2):
			choose_pieces_recursive(number_of_pieces, counter_pieces, row + 1, column, direction);
		elif(column == 0 and row > 0):
			choose_pieces_recursive(number_of_pieces, counter_pieces, row - 1, column, direction);
		elif(row == 2 and column > 0):
			choose_pieces_recursive(number_of_pieces, counter_pieces, row, column - 1, direction);

def move_pieces_effective(row, column, direction):
	if(direction == "clockwise"):
		if(row == 0 and column < 2):
			if(board[row][column + 1] == "X"):					
				print_board(0,0);
				print("no moves possible");
				print("\n");
			else:
				board[row][column + 1] = "X";
				board[row][column] = "";
				print_board(0,0);
				print("\n");
		elif(column == 2 and row < 2):
			if(board[row + 1][column] == "X"):					
				print_board(0,0);
				print("no moves possible");
				print("\n");
			else:
				board[row + 1][column] = "X";
				board[row][column] = "";
				print_board(0,0);
				print("\n");
		elif(column == 0 and row > 0):
			if(board[row - 1][column] == "X"):					
				print_board(0,0);
				print("no moves possible");
				print("\n");
			else:			
				board[row - 1][column] = "X";
				board[row][column] = "";
				print_board(0,0);
				print("\n");
		elif(row == 2 and column > 0):
			if(board[row][column - 1] == "X"):					
				print_board(0,0);
				print("no moves possible");
				print("\n");		
			else:		
				board[row][column - 1] = "X";
				board[row][column] = "";
				print_board(0,0);
				print("\n");
	elif(direction == "counterclockwise"):
		if(column == 0 and row < 2):
			if(board[row + 1][column] == "X"):
				print_board(0,0);
				print("no moves possible");
				print("\n");					
			else:
				board[row + 1][column] = "X";
				board[row][column] = "";
				print_board(0,0);
				print("\n");
		elif(row == 0 and column > 0):
			if(board[row][column - 1] == "X"):
				print_board(0,0);
				print("no moves possible");
				print("\n");					
			else:
				board[row][column - 1] = "X";
				board[row][column] = "";	
				print_board(0,0);
				print("\n");
		elif(column == 2 and row > 0):
			if(board[row - 1][column] == "X"):
				print_board(0,0);
				print("no moves possible");
				print("\n");
			else:
				board[row - 1][column] = "X";
				board[row][column] = "";
				print_board(0,0);
				print("\n");
		elif(row == 2 and column < 2):
			if(board[row][column + 1] == "X"):
				print_board(0,0);
				print("no moves possible");
				print("\n");
			else:
				board[row][column + 1] = "X";
				board[row][column] = "";
				print_board(0,0);
				print("\n");



start()