Here's an algorhythm that relates how I would try solving this problem
develop function to check for valid move (so don't overwrite array)
develop function to display pad
develop function to display menu to change pen from draw to no draw, moves available to user, and exit option
in main():
declare pad as 2d array of char
initialize pad to spaces
declare pen to be of type char and initialize it to n
declare player as type char and initialize to + sign
position player in initial position of pad
declare marker as type char--user will choose this; can't be + sign.
declare input to be of type char.
ask user for marker char to be used in current game
display board;
display menu;
ask user for input;
in an unending loop:
use switch statement to determine how to use input
case spacebar
if pen == n
pen = y
else if pen == y
pen = n
case e
exit program
cases w s a d
check if valid move
if valid move then:
store current char in new square in temp variable
change new square to + (player)
change old square to whatever is in temp if pen == n
change old square to marker if pen == y
else if move not valid:
display error message
case default
display error message
end switch statement
after each uiser selection from menu (except exit)
clear screen
display board
display menu
ask user for input
end loop
end main()display board
display menu
ask user for input