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