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
A for loop
MAVERICK [17]

Answer:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Explanation:

i feel that i remmeber it from a test

8 0
3 years ago
Hello! Please Answer This One Question!<br><br>Write a 50-word summary about Digital Citizenship
zloy xaker [14]

Answer:

The term digital citizenship, also known as e-citizenship or cyber-citizenship, refers to the use of Information and Communication Technologies (ICT), and the principles that guide them, for the understanding of the political, cultural and social issues of a nation.

More Content by Concept

In other words, it is about citizen participation through digital or electronic environments and interfaces, through the Internet and Social Networks.

Digital citizenship is part of the electronic government system or digital democracy, which precisely consists of the administration of State resources through new ICTs and all their potential, to make life easier for citizens.

In this way, a digital citizen has the right to access information online in a safe, transparent and private way, in addition to the social and political participation that 2.0 media allows.

Explanation:

6 0
3 years ago
In a multiprogramming and time-sharing environment, several users share the system simultaneously. This situation can result in
kap26 [50]

<u>Explanation:</u>

a.

  • One user can read the private data of another user-privacy.
  • One user can prevent another user from getting anything done-denial of service.

Indeed, in any multiprogramming and time-sharing environment since the computers of users are networked together, then it is very possible for a bad actor to read the private data of another user, or even prevent another user from accessing their computer by employing a denial of service attack on the network. In other words, the network would be unable to handle the request of users since has been overloaded by another user.

b. a. Yes - if we can ensure that the operating system prevents any sharing of data between users, either for reading or writing and fairly shares the computer, then we can achieve the same level of security.

7 0
3 years ago
D. DROP
just olya [345]

Answer:

The correct answer is B. BLOB.

6 0
3 years ago
A time-saving strategy that helps define unfamiliar words involves using
yuradex [85]

The correct answer is A. Familiar words for clues

Explanation:

Finding unfamiliar words is common while reading, especially in texts that belong to a specific field such as medicine, technology, etc. This can be handled through multiple strategies such as using a dictionary, guessing the meaning of the word based on its parts, and using context clues.

In this context, one of the easiest and most time-saving strategy is the use of context clues that implies using the familiar words as clues to guess the meaning of an unfamiliar word. This is effective because in most cases the meaning of an unknown word can be determined using the context of the word or words around the unknown word. Also, this strategy takes little time because you only need to analyze the sentence or paragraph where the unknown word is. Thus, the time-saving strategy to define unfamiliar words involves using familiar words for clues.

6 0
3 years ago
Read 2 more answers
Other questions:
  • HELP PLEASE! Match each feature of e-publishing as an advantage, a disadvantage, a threat, or an opportunity.
    12·1 answer
  • Yesterday you installed a new game on your computer. When you ran the computer, you noticed that the application was running ver
    15·1 answer
  • Which kinds of Internet content do you think you need permission to use? Check all that apply.
    8·2 answers
  • Write a class called Line that represents a line segment between two Points. Your Line objects should have the following methods
    8·1 answer
  • (Help please I don't know what to choose because it's both text and email but I can only pick one. HELP!!!!!!!!!!)
    6·2 answers
  • Problem # 1 [End of chapter problem] The following character encoding is used in a data link protocol: A: 01100111 B: 11110011 F
    14·1 answer
  • CAN YOU PLEASE HELP WITH THIS DUE IN 10 MINUTES
    8·1 answer
  • How do I make someone "Brainiest". <br> First person to reply will get "Brainiest"
    8·2 answers
  • Which statement is true about hacking?
    11·2 answers
  • What are the two different types of dns requests?
    5·2 answers
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!