1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Makovka662 [10]
3 years ago
12

n a particular board game, there is exactly one row and it comprises N spaces, numbered 0 through N - 1 from left to right. Ther

e are also N marbles, numbered 0 through N - 1, initially placed in some arbitrary order. After that, there are two moves available that only can be done one at a time: Switch: Switch the marbles in positions 0 and 1. Rotate: Move the marble in position 0 to position N - 1, and move all other marbles one space to the left (one index lower). The objective is to arrange the marbles in order, with each marble i in position i. 1. Write a class, MarblesBoard, to represent the game above. The class should be initialized with a particular sequence of Marbles. Write an __init__ function that takes a starting sequence of marbles (the number of each marble listed in the positions from 0 to N - 1). (Notice in the sequence all the marbles are different numbers and are sequential numbered but not in order!) Next, write switch() and rotate() methods to simulate the player's moves as described above. Write a method, is_solved(), that returns True if the marbles are in the correct order, False otherwise. Additionally, write __str__ and __repr__ methods to display the current state of the board. Your class should behave like the following example: >>> board
Computers and Technology
1 answer:
Ganezh [65]3 years ago
3 0

Answer:

class MarblesBoard(object):

   def __init__(self, seq):

        self.seq = list(seq)

   def switch(self):

       temp = self.seq[0]

       self.seq[0] = self.seq[1]

       self.seq[1] = temp

   def rotate(self):

       temp = self.seq[0]

       for i in range(1, len(self.seq)):

           self.seq[i-1] = self.seq[i]

       self.seq[-1] = temp

   def is_solved(self):

       for i in range(len(self.seq)):

           if i != self.seq[i]:

               return False

       return True

   def __str__(self):  

       return ' '.join(list(map(str,self.seq)))

   def __repr__(self):

       return ' '.join(list(map(str,self.seq)))

class Solver(object):  

   def __init__(self, board):

       self.board = board

   def solve(self):      

       steps = 0

       while not self.board.is_solved():        

           if self.board.seq[0] > self.board.seq[1] and self.board.seq[0] != len(self.board.seq) - 1:

               self.board.switch()

           else:

               self.board.rotate()

           print(self.board)

           steps += 1

       print('Total steps:', steps)

Explanation:

The Python class MarblesBoard creates an object of the board game used in the Solver class object instance and it holds data or attributes of the player piece movement and the magic methods (__str__ and __repr__). The Solver object gets the switch and rotate movementt of the player and displays the total steps at the end of the game.

You might be interested in
Create a program to calculate the wage. Assume people are paid double time for hours over 60 a week. Therefore they get paid for
Rus_ich [418]

Answer:

Written in Python

name = input("Name: ")

wageHours = int(input("Hours: "))

regPay = float(input("Wages: "))

if wageHours >= 60:

->total = (wageHours - 60) * 2 * regPay + 20 * 1.5 * regPay + regPay * 40

else:

->total = wageHours * regPay

print(name)

print(wageHours)

print(regPay)

print(total)

Explanation:

The program is self-explanatory.

However,

On line 4, the program checks if wageHours is greater than 60.

If yes, the corresponding wage is calculated.

On line 6, if workHours is not up to 60, the total wages is calculated by multiplying workHours by regPay, since there's no provision for how to calculate total wages for hours less than 60

The required details is printed afterwards

Note that -> represents indentation

4 0
3 years ago
Sketch a 3-view orthographic projection of the object shown
vichka [17]

Answer:

Explanation:

/|_/]

6 0
3 years ago
Under normal operations, cisco recommends that you configure switch ports on which vlan
larisa86 [58]

 

You can configure switch ports on default VLAN under normal operations. Cisco switches always have VLAN 1 as the default VLAN, which is required for many decorum communications between switches like spanning-tree protocol for example. It is obligatory not to delete or even change the default VLAN.

 

 





3 0
3 years ago
Drag the tiles to the correct boxes to complete the pairs.
sertanlavr [38]

Answer:

Explanation:

IaaS - storage and network devices

SaaS - software upgrades and patches

MaaS - monitoring tools

PaaS - virtual computing platform

7 0
3 years ago
Nancy needs to find the average of two numbers in the middle from an even count of numbers arranged in descending order. which s
Rus_ich [418]

i would say e. the median

7 0
3 years ago
Read 2 more answers
Other questions:
  • What is the core of an operating system that manages memory and devices, maintains the computer’s clock, starts programs, and as
    7·1 answer
  • Which of the following should you NOT do when using CSS3 properties to create text columns for an article element? a. make the c
    12·2 answers
  • To use an ArrayList in your program, you must import:1. the java.collections package2. the java.awt package3. Nothing; the class
    6·1 answer
  • 14.18 Lab 5d - Nested Looping Write a program that:
    10·1 answer
  • What is the difference between cout and cerr?
    14·2 answers
  • Int [] val = { 3, 10, 44 };
    13·1 answer
  • While reviewing the Quick Access toolbar, Sarah notices that the Redo button is not there. This is because the Redo button only
    12·1 answer
  • Activity #2
    13·1 answer
  • It is most commonly used for self-running presentations.
    8·1 answer
  • give the tightest asymptotic bounds you can for the following recurrences and provide a short explanation for your solution. you
    10·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!