I am having trouble with a problem I am working on. The code works until I get to the next step which is a menu asking if the player wants to play the same game again. I can't seem to get it to loop back to the correct spot.

조회 수: 3 (최근 30일)
|i=1 while i>=1; choice = menu('Do you want to play a game?: ','yes','no') if choice == 2 error('Program will terminate'); elseif choice ==1 games = menu('Select a Game','Dunko','Bouncer','Munchies') end
if games ==1
difficulty = menu('Select desired level of difficulty','Easy','Moderate','Hard')
elseif games ==2
difficulty = menu('Select desired level of difficulty','Easy','Moderate','Hard')
elseif games ==3
difficulty = menu('Select desired level of difficulty','Easy','Moderate','Hard')
end
if games == 1 && difficulty == 1
Dunko = Dunko(1)
elseif games == 1 && difficulty == 2
Dunko = Dunko(2)
elseif games == 1 && difficulty == 3
Dunko = Dunko(3)
elseif games == 2 && difficulty == 1
Bouncer = Bouncer(1)
elseif games == 2 && difficulty == 2
Bouncer = Bouncer(2)
elseif games == 2 && difficulty == 3
Bouncer = Bouncer(3)
elseif games == 3 && difficulty == 1
Munchies = Munchies(1)
elseif games == 3 && difficulty == 2
Munchies = Munchies(2)
elseif games == 3 && difficulty == 3
Munchies = Munchies(3)
end
fprintf = ('Thank you for playing')
replay = menu('Do you wish to repeat the game?','yes','no');
if replay == 1
???????????
end
fprintf = ('Thanks for playing')|
  댓글 수: 5
Adam
Adam 2016년 4월 12일
You probably want a
while true
external loop though. Yours is using i >= 1, but for the code you have shown you never increment i and unless you are going to use i in some way there is no need to have it there for what is effectively an infinite loop until a break condition is met.
Antonia Davis
Antonia Davis 2016년 4월 12일
i=1
while i>=1;
choice = menu('Do you want to play a game?: ','yes','no')
if choice == 2
error('Program will terminate');
elseif choice ==1
games = menu('Select a Game','Dunko','Bouncer','Munchies')
end
if games ==1
difficulty = menu('Select desired level of difficulty','Easy','Moderate','Hard')
elseif games ==2
difficulty = menu('Select desired level of difficulty','Easy','Moderate','Hard')
elseif games ==3
difficulty = menu('Select desired level of difficulty','Easy','Moderate','Hard')
end
while true
if games == 1 && difficulty == 1
Dunko = Dunko(1)
elseif games == 1 && difficulty == 2
Dunko = Dunko(2)
elseif games == 1 && difficulty == 3
Dunko = Dunko(3)
elseif games == 2 && difficulty == 1
Bouncer = Bouncer(1)
elseif games == 2 && difficulty == 2
Bouncer = Bouncer(2)
elseif games == 2 && difficulty == 3
Bouncer = Bouncer(3)
elseif games == 3 && difficulty == 1
Munchies = Munchies(1)
elseif games == 3 && difficulty == 2
Munchies = Munchies(2)
elseif games == 3 && difficulty == 3
Munchies = Munchies(3)
end
fprintf = ('Thank you for playing')
replay = menu('Do you wish to repeat the game?','yes','no');
if replay ==0
break;
end
end
end fprintf = ('Thanks for playing')

댓글을 달려면 로그인하십시오.

답변 (1개)

Adam
Adam 2016년 4월 12일
편집: Adam 2016년 4월 12일
You should just be able to do something like:
while true
difficulty = menu('Select desired level of difficulty','Easy','Moderate','Hard')
if games == 1 && difficulty == 1
...
end
fprintf = ('Thank you for playing')
replay = menu('Do you wish to repeat the game?','yes','no');
if replay == 0
break;
end
end
end
editing your existing code in the obvious places to add the new components. This is assuming you mean you want to play the same game and difficulty on answering yes to the question.
  댓글 수: 2
Antonia Davis
Antonia Davis 2016년 4월 12일
Adam,
I added the code above and the menu pops up but no matter if you press yes or no it asks the same "Do you wish to repeat the game?". If you press yes (1) it should go to the difficulty menu. If you press no (2) it should ask the first menu "choice".
Thank you so much for your help with this
Adam
Adam 2016년 4월 12일
I edited my answer. The first part should be handled just by moving the difficulty menu call inside this inner while loop as my edited answer shows.
If the user chooses 'No' then this inner while loop exits and you are returned to the outer while loop which will do whatever it does next.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Strategy & Logic에 대해 자세히 알아보기

태그

아직 태그를 입력하지 않았습니다.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by