Thread: Another hard C problem

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Registered User
    Join Date
    Nov 2010
    Location
    London, UK
    Posts
    18

    Smile Another hard C problem

    Another C programming problem I don't understand, any help please ?




    Question 2: Die Tipping NB: Die is the singular of dice
    A normal die is a cube where the faces are numbered 1 through 6 and the numbers are arranged so that
    opposite faces add up to 7. In this question we will move a die on an 11 by 11 grid. Each square on this
    grid is the same size as the faces of the die; i.e. the die fits exactly onto each square on the grid.
    Imagine the die is placed on the grid so that the number 1 is uppermost and 6 is touching the grid. The
    die is now rotated so that 2 is towards the top of the grid and 5 is towards the bottom. This question uses
    a die that has 3 on the left and 4 on the right. We will call this the default orientation of the die.
    A move is made by tipping the die over one of the edges of the face that touches the grid. This will move
    the die one square on the grid and change the face that touches the grid. If the die is tipped off the left
    side of the grid it should be placed at the corresponding position (i.e. with the same y co-ordinate) on the
    right side of the grid, and vice versa. Similarly for the top and bottom of the grid (with the x co-ordinate
    staying the same).
    For example, suppose the die is in its default orientation in the middle of the grid. It now tips over the
    edge towards the bottom of the grid. The die moves one square closer to the bottom of the grid, and 5
    now touches the grid. 1 is now towards the bottom of the grid, 6 the top, 2 will be uppermost and 3 and
    4 will remain on the left and right respectively.
    The die also has a heading, which is the direction on the grid it last moved.
    The rules for moving the die are as follows:
    1. Each square on the grid contains a number (1, 2, 3, 4, 5 or 6). Add the number on the current square
    to the value that is uppermost on the die. If this sum is greater than 6, subtract 6 from the sum.
    2. Replace the number on the grid with this new value.
    3. Depending on this value perform one of the following actions:
    • 1 or 6 move
    one square according to the heading;
    • 2 move
    one square in the direction 90° clockwise to the heading;
    • 3 or 4 move
    one square in the opposite direction to the heading;
    • 5 move
    one square in the direction 90° anti-clockwise to the heading.

    Write a program that models the die moving on the grid.
    Your program should first read in a 3!3 grid, which will be in the form of three lines
    of three integers (between 1 and 6 inclusive). This 3!3 grid should be used as the
    centre section of the 11!11 grid for the simulation. The remaining squares of the grid
    will start with the value 1.
    In each case the die begins in the centre of the 11!11 grid, in the default orientation,
    with a heading towards the top of the grid.
    Until your program terminates you should repeatedly input an integer, and then:
    • If you receive a positive integer n (1 " n " 100) you should make n moves.
    • If you receive the number 0 your program should terminate immediately.
    • Ignore any other input.
    After each positive integer you should output the 3!3 grid surrounding the die. For
    each square on this grid that is outside the 11!11 grid you should output an X.



    Sample Run example :
    1 3 5
    1 6 5
    1 1 5
    1

    111
    135
    115

    1

    111
    251
    151


    3

    221
    161
    131


    0
    Last edited by alexbcg; 11-22-2010 at 03:20 PM.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Laptop Problem
    By Boomba in forum Tech Board
    Replies: 1
    Last Post: 03-07-2006, 06:24 PM
  2. small reference problem
    By DavidP in forum C++ Programming
    Replies: 6
    Last Post: 06-21-2004, 07:29 PM
  3. Problem with destructors.
    By Hulag in forum C++ Programming
    Replies: 7
    Last Post: 06-11-2004, 12:30 PM
  4. beginner problem
    By The_Nymph in forum C Programming
    Replies: 4
    Last Post: 03-05-2002, 05:46 PM
  5. problem with output
    By Garfield in forum C Programming
    Replies: 2
    Last Post: 11-18-2001, 08:34 PM

Tags for this Thread