1.  

How To Make A Tic-Tac-Toe Game In Notepad!

Discussion in 'Source Code & Tutorial Database' started by Jon, May 3, 2011 with 18 replies and 66,821 views.

  1. Jon

    Jon Banned

    Messages:
    2,291
    Likes Received:
    293
    This tutorial features how to make a Tic-Tac-Toe game only using notepad!

    [1]First off, launch Notepad

    [2]Type this into the notepad
    -
    Code:
    @echo off
    
    title Banzai's Tic Tac Toe
    
    title Noughts and Crosses
    
    setlocal enabledelayedexpansion
    
    ::~ ^^^ Stops all commands appearing on screen, sets the title and enables the use of ! for environment variable
    
    :menu
    
    cls
    
    echo Main Menu
    
    echo To Play A 1-Player Game, Enter 1
    
    echo To Play A 2-Player Game, Enter 2
    
    echo To Exit, Enter 3
    
    set /p menu=
    
    if not defined menu goto menu
    
    if /i %menu% equ 1 (
    
    set menu=
    
    cls
    
    goto 1p
    
    )
    
    if /i %menu% equ 2 (
    
    set menu=
    
    cls
    
    goto 2p
    
    )
    
    if /i %menu% equ 3 (
    
    goto end
    
    )
    
    set menu=
    
    goto menu
    
    ::~ ^^ The menu system, gives all the options, allows the user to input a number using "set /p menu="
    
    :~ If the user didn't enter a value, it 'goto's back to ask again.
    
    ::~ Checks the Menu variable, tests to see if it matches 1, 2 or 3, then 'goto's the appropriate place.
    
    :1p
    
    set turns=0
    
    set x1=0
    
    set x2=0
    
    set x3=0
    
    set x4=0
    
    set x5=0
    
    
    
    set x6=0
    
    
    
    set x7=0
    
    
    
    set x8=0
    
    
    
    set x9=0
    
    
    
    set o1=0
    
    
    
    set o2=0
    
    
    
    set o3=0
    
    
    
    set o4=0
    
    
    
    set o5=0
    
    
    
    set o6=0
    
    
    
    set o7=0
    
    
    
    set o8=0
    
    
    
    set o9=0
    
    
    
    
    
    
    
    
    
    ::~ Sets the number of turns taken so far to 0
    
    
    
    ::~ Sets all the places on the noughts and crosses grid to 0
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    set d1=1
    
    
    
    set d2=2
    
    
    
    set d3=3
    
    
    
    set d4=4
    
    
    
    set d5=5
    
    
    
    set d6=6
    
    
    
    set d7=7
    
    
    
    set d8=8
    
    
    
    set d9=9
    
    
    
    
    
    
    
    
    
    ::~ Sets the display characters for game to their appropriate number
    
    
    
    
    
    
    
    
    
    set rnumber=%random%
    
    
    
    set rnumber2=%rnumber%
    
    
    
    set /a rnumber= %rnumber% / 2
    
    
    
    set /a rnumber= %rnumber% * 2
    
    
    
    
    
    
    
    
    
    ::~ Sets a variable "rnumber" to a random number
    
    
    
    ::~ Sets a variable "rnumber2" to the same number as "rnumber"
    
    
    
    ::~ Divides "rnumber" by two, then multiplies by two.
    
    
    
    ::~ If the number was even, it would be equal to "rnumber2", if it was odd it would end up one less than "rnumber2"
    
    
    
    ::~ This is the method I use to create a 50% chance, as there's a 50% that a random number will be odd or even
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    if %rnumber%==%rnumber2% (
    
    
    
    echo Crosses go first
    
    
    
    echo You are noughts
    
    
    
    pause>nul
    
    
    
    set rnumber=
    
    
    
    set rnumber2=
    
    
    
    set go=1xgame
    
    
    
    goto 1display
    
    
    
    ) else (
    
    
    
    echo Noughts go first
    
    
    
    echo You are noughts
    
    
    
    pause>nul
    
    
    
    set rnumber=
    
    
    
    set rnumber2=
    
    
    
    set go=1ogame
    
    
    
    goto 1display
    
    
    
    )
    
    
    
    
    
    
    
    
    
    ::~ This tests to see if the numbers are equal, then sets the "go" variable to whichever possibility came out and deletes the "rnumber" variables
    
    
    
    ::~ Then 'Goto's the display
    
    
    
    
    
    
    
    
    
    :1display
    
    
    
    cls
    
    
    
    echo %d1% %d2% %d3%
    
    
    
    echo %d4% %d5% %d6%
    
    
    
    echo %d7% %d8% %d9%
    
    
    
    if /i %turns% equ 9 (goto draw)
    
    
    
    echo.
    
    
    
    echo Your Turn
    
    
    
    echo.
    
    
    
    goto %go%
    
    
    
    
    
    
    
    
    
    ::~ ^^ Displays the current status of each place in the grid. At the start these will all just be numbers.
    
    
    
    ::~ Checks that the turns hasn't reach nine. If it has, all the spaces on the grid have been used up and nobody has won, so the game is a draw.
    
    
    
    
    
    
    
    
    
    :1ogame
    
    
    
    echo Choose the number of the space you'd like to choose
    
    
    
    set guess=
    
    
    
    set /p guess=
    
    
    
    if not defined guess goto 1display
    
    
    
    set guess=%guess:~0,1%
    
    
    
    if /i not %guess% leq 9 goto 1display
    
    
    
    if /i not %guess% gtr 0 goto 1display
    
    
    
    if /i !d%guess%! neq %guess% goto 1display
    
    
    
    goto 1o%guess%
    
    
    
    
    
    
    
    
    
    ::~ Asks the user to input the number of the space they want to choose and allows them to using "Set /p"
    
    
    
    ::~ If the user didn't input or entered something that wasn't a number between 1 and 9, it 'goto's back, to ask again
    
    
    
    ::~ Checks that the number hasn't been already chosen by checking that !d%guess%! is equal to guess. This works becauseif the user guesses 1, d1 should equal 1.
    
    
    
    ::~ If it has already been chosen, d1 would be a O or a X, so it would not be equal.
    
    
    
    ::~ 'Goto's the number chosen.
    
    
    
    
    
    
    
    
    
    :1o1
    
    
    
    set o1=1
    
    
    
    set x1=1000
    
    
    
    set d1=O
    
    
    
    goto 1oprocess
    
    
    
    :1o2
    
    
    
    set o2=10
    
    
    
    set x2=1000
    
    
    
    set d2=O
    
    
    
    goto 1oprocess
    
    
    
    :1o3
    
    
    
    set o3=100
    
    
    
    set x3=1000
    
    
    
    set d3=O
    
    
    
    goto 1oprocess
    
    
    
    :1o4
    
    
    
    set o4=1
    
    
    
    set x4=1000
    
    
    
    set d4=O
    
    
    
    goto 1oprocess
    
    
    
    :1o5
    
    
    
    set o5=10
    
    
    
    set x5=1000
    
    
    
    set d5=O
    
    
    
    goto 1oprocess
    
    
    
    :1o6
    
    
    
    set o6=100
    
    
    
    set x6=1000
    
    
    
    set d6=O
    
    
    
    goto 1oprocess
    
    
    
    :1o7
    
    
    
    set o7=1
    
    
    
    set x7=1000
    
    
    
    set d7=O
    
    
    
    goto 1oprocess
    
    
    
    :1o8
    
    
    
    set o8=10
    
    
    
    set x8=1000
    
    
    
    set d8=O
    
    
    
    goto 1oprocess
    
    
    
    :1o9
    
    
    
    set o9=100
    
    
    
    set x9=1000
    
    
    
    set d9=O
    
    
    
    goto 1oprocess
    
    
    
    
    
    
    
    
    
    ::~ The space of the number chosen on the display grid is changed to the correct letter (X or O) and a number is added to the %x-% grid and the %o-% grid.
    
    
    
    ::~ These two grids are used to work out whether someone has won, and allows the computer to work out which place to go next.
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    :1oprocess
    
    
    
    set /a line1= %o1% + %o2% + %o3%
    
    
    
    if /i %line1% equ 111 (goto owin)
    
    
    
    
    
    
    
    
    
    set /a line2= %o4% + %o5% + %o6%
    
    
    
    if /i %line2% equ 111 (goto owin)
    
    
    
    
    
    
    
    
    
    set /a line3= %o7% + %o8% + %o9%
    
    
    
    if /i %line3% equ 111 (goto owin)
    
    
    
    
    
    
    
    
    
    set /a line4= %o1% + %o5% + %o9%
    
    
    
    if /i %line4% equ 111 (goto owin)
    
    
    
    
    
    
    
    
    
    set /a line5= %o3% + %o5% + %o7%
    
    
    
    if /i %line5% equ 111 (goto owin)
    
    
    
    
    
    
    
    
    
    set /a line6= %o1% + %o4% + %o7%
    
    
    
    if /i %line6% equ 3 (goto owin)
    
    
    
    
    
    
    
    
    
    set /a line7= %o2% + %o5% + %o8%
    
    
    
    if /i %line7% equ 30 (goto owin)
    
    
    
    
    
    
    
    
    
    set /a line8= %o3% + %o6% + %o9%
    
    
    
    if /i %line8% equ 300 (goto owin)
    
    
    
    
    
    
    
    
    
    ::~ This section of code adds up all of the possible winning combinations on the %o-% grid i.e. each row, column and diagional, to check if the player has got three Os in a row. If so 'goto's the owin section.
    
    
    
    
    
    
    
    
    
    set go=1xgame
    
    
    
    set guess=
    
    
    
    set /a turns= %turns% + 1
    
    
    
    goto 1display
    
    
    
    
    
    
    
    
    
    ::~ Sets the go to the computer's and adds one to the number of turns taken
    
    
    
    ::~ 'Goto's the display.
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    :1xgame
    
    
    
    
    
    
    
    
    
    set /a line1= %x1% + %x2% + %x3%
    
    
    
    if /i %line1% equ 11 (
    
    
    
    set guess=3
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %x1% + %x2% + %x3%
    
    
    
    if /i %line1% equ 101 (
    
    
    
    set guess=2
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %x1% + %x2% + %x3%
    
    
    
    if /i %line1% equ 110 (
    
    
    
    set guess=1
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    set /a line1= %x4% + %x5% + %x6%
    
    
    
    if /i %line1% equ 11 (
    
    
    
    set guess=6
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %x4% + %x5% + %x6%
    
    
    
    if /i %line1% equ 101 (
    
    
    
    set guess=5
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %x4% + %x5% + %x6%
    
    
    
    if /i %line1% equ 110 (
    
    
    
    set guess=4
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %x7% + %x8% + %x9%
    
    
    
    if /i %line1% equ 11 (
    
    
    
    set guess=9
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %x7% + %x8% + %x9%
    
    
    
    if /i %line1% equ 101 (
    
    
    
    set guess=8
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %x7% + %x8% + %x9%
    
    
    
    if /i %line1% equ 110 (
    
    
    
    set guess=7
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %x1% + %x5% + %x9%
    
    
    
    if /i %line1% equ 11 (
    
    
    
    set guess=9
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %x1% + %x5% + %x9%
    
    
    
    if /i %line1% equ 101 (
    
    
    
    set guess=5
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %x1% + %x5% + %x9%
    
    
    
    if /i %line1% equ 110 (
    
    
    
    set guess=1
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %x3% + %x5% + %x7%
    
    
    
    if /i %line1% equ 11 (
    
    
    
    set guess=3
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %x3% + %x5% + %x7%
    
    
    
    if /i %line1% equ 101 (
    
    
    
    set guess=5
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %x3% + %x5% + %x7%
    
    
    
    if /i %line1% equ 110 (
    
    
    
    set guess=7
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %x1% + %x4% + %x7%
    
    
    
    if /i %line1% equ 2 (
    
    
    
    if /i %d1% equ 1 (
    
    
    
    set guess=1
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    if /i %d4% equ 4 (
    
    
    
    set guess=4
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    if /i %d7% equ 7 (
    
    
    
    set guess=7
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %x2% + %x5% + %x8%
    
    
    
    if /i %line1% equ 20 (
    
    
    
    if /i %d2% equ 2 (
    
    
    
    set guess=2
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    if /i %d5% equ 5 (
    
    
    
    set guess=5
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    if /i %d8% equ 8 (
    
    
    
    set guess=8
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %x3% + %x6% + %x9%
    
    
    
    if /i %line1% equ 200 (
    
    
    
    if /i %d3% equ 3 (
    
    
    
    set guess=3
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    if /i %d6% equ 6 (
    
    
    
    set guess=6
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    if /i %d9% equ 9 (
    
    
    
    set guess=9
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    )
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    ::~ ^^^ These sections add up all the %x-% grid and checks to see if there is a way the computer can win this turn.
    
    
    
    ::~  If so, it sets the guess to the correct number and 'goto's the 1ac section.
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    set /a line1= %o1% + %o2% + %o3%
    
    
    
    if /i %line1% equ 11 (
    
    
    
    set guess=3
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %o1% + %o2% + %o3%
    
    
    
    if /i %line1% equ 101 (
    
    
    
    set guess=2
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %o1% + %o2% + %o3%
    
    
    
    if /i %line1% equ 110 (
    
    
    
    set guess=1
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    set /a line1= %o4% + %o5% + %o6%
    
    
    
    if /i %line1% equ 11 (
    
    
    
    set guess=6
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %o4% + %o5% + %o6%
    
    
    
    if /i %line1% equ 101 (
    
    
    
    set guess=5
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %o4% + %o5% + %o6%
    
    
    
    if /i %line1% equ 110 (
    
    
    
    set guess=4
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %o7% + %o8% + %o9%
    
    
    
    if /i %line1% equ 11 (
    
    
    
    set guess=9
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %o7% + %o8% + %o9%
    
    
    
    if /i %line1% equ 101 (
    
    
    
    set guess=8
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %o7% + %o8% + %o9%
    
    
    
    if /i %line1% equ 110 (
    
    
    
    set guess=7
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %o1% + %o5% + %o9%
    
    
    
    if /i %line1% equ 11 (
    
    
    
    set guess=9
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %o1% + %o5% + %o9%
    
    
    
    if /i %line1% equ 101 (
    
    
    
    set guess=5
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %o1% + %o5% + %o9%
    
    
    
    if /i %line1% equ 110 (
    
    
    
    set guess=1
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %o3% + %o5% + %o7%
    
    
    
    if /i %line1% equ 11 (
    
    
    
    set guess=3
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %o3% + %o5% + %o7%
    
    
    
    if /i %line1% equ 101 (
    
    
    
    set guess=5
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %o3% + %o5% + %o7%
    
    
    
    if /i %line1% equ 110 (
    
    
    
    set guess=7
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %o1% + %o4% + %o7%
    
    
    
    if /i %line1% equ 2 (
    
    
    
    if /i %d1% equ 1 (
    
    
    
    set guess=1
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    if /i %d4% equ 4 (
    
    
    
    set guess=4
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    if /i %d7% equ 7 (
    
    
    
    set guess=7
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %o2% + %o5% + %o8%
    
    
    
    if /i %line1% equ 20 (
    
    
    
    if /i %d2% equ 2 (
    
    
    
    set guess=2
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    if /i %d5% equ 5 (
    
    
    
    set guess=5
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    if /i %d8% equ 8 (
    
    
    
    set guess=8
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    )
    
    
    
    
    
    
    
    
    
    set /a line1= %o3% + %o6% + %o9%
    
    
    
    if /i %line1% equ 200 (
    
    
    
    if /i %d3% equ 3 (
    
    
    
    set guess=3
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    if /i %d6% equ 6 (
    
    
    
    set guess=6
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    if /i %d9% equ 9 (
    
    
    
    set guess=9
    
    
    
    goto 1ac
    
    
    
    )
    
    
    
    )
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    ::~ This section checks that there is no way the noughts can win next turn by adding up the %o-% grid. If so it sets the guess to the right number and 'goto's 1ac.
    
    
    
    
    
    
    
    
    
    set guess=%time:~9,1%
    
    
    
    
    
    
    
    
    
    ::~ If there is no way that the computer OR the player can win next turn, the computer chooses a random number as its guess. The random number I use is the millisecond digit of the clock.
    
    
    
    
    
    
    
    
    
    :1ac
    
    
    
    if /i %guess% equ 0 goto 1display
    
    
    
    echo !d%guess%!
    
    
    
    if /i NOT !d%guess%!==%guess% goto 1display
    
    
    
    goto 1x%guess%
    
    
    
    
    
    
    
    
    
    ::~ Checks that the place hasn't already been taken (as explained above) and 'goto's the corresponding place below.
    
    
    
    
    
    
    
    
    
    :1x1
    
    
    
    set x1=1
    
    
    
    set o1=1000
    
    
    
    set d1=X
    
    
    
    goto 1xprocess
    
    
    
    :1x2
    
    
    
    set x2=10
    
    
    
    set o2=1000
    
    
    
    set d2=X
    
    
    
    goto 1xprocess
    
    
    
    :1x3
    
    
    
    set x3=100
    
    
    
    set o3=1000
    
    
    
    set d3=X
    
    
    
    goto 1xprocess
    
    
    
    :1x4
    
    
    
    set x4=1
    
    
    
    set o4=1000
    
    
    
    set d4=X
    
    
    
    goto 1xprocess
    
    
    
    :1x5
    
    
    
    set x5=10
    
    
    
    set o5=1000
    
    
    
    set d5=X
    
    
    
    goto 1xprocess
    
    
    
    :1x6
    
    
    
    set x6=100
    
    
    
    set o6=1000
    
    
    
    set d6=X
    
    
    
    goto 1xprocess
    
    
    
    :1x7
    
    
    
    set x7=1
    
    
    
    set o7=1000
    
    
    
    set d7=X
    
    
    
    goto 1xprocess
    
    
    
    :1x8
    
    
    
    set x8=10
    
    
    
    set o8=1000
    
    
    
    set d8=X
    
    
    
    goto 1xprocess
    
    
    
    :1x9
    
    
    
    set x9=100
    
    
    
    set o9=1000
    
    
    
    set d9=X
    
    
    
    goto 1xprocess
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    ::~ This section, as for the noughts, changes the display character of the chosen place, and adds numbers to the %x-% grid.
    
    
    
    
    
    
    
    
    
    :1xprocess
    
    
    
    set /a line1= %x1% + %x2% + %x3%
    
    
    
    if /i %line1% equ 111 (goto xwin)
    
    
    
    
    
    
    
    
    
    set /a line2= %x4% + %x5% + %x6%
    
    
    
    if /i %line2% equ 111 (goto xwin)
    
    
    
    
    
    
    
    
    
    set /a line3= %x7% + %x8% + %x9%
    
    
    
    if /i %line3% equ 111 (goto xwin)
    
    
    
    
    
    
    
    
    
    set /a line4= %x1% + %x5% + %x9%
    
    
    
    if /i %line4% equ 111 (goto xwin)
    
    
    
    
    
    
    
    
    
    set /a line5= %x3% + %x5% + %x7%
    
    
    
    if /i %line5% equ 111 (goto xwin)
    
    
    
    
    
    
    
    
    
    set /a line6= %x1% + %x4% + %x7%
    
    
    
    if /i %line6% equ 3 (goto xwin)
    
    
    
    
    
    
    
    
    
    set /a line7= %x2% + %x5% + %x8%
    
    
    
    if /i %line7% equ 30 (goto xwin)
    
    
    
    
    
    
    
    
    
    set /a line8= %x3% + %x6% + %x9%
    
    
    
    if /i %line8% equ 300 (goto xwin)
    
    
    
    
    
    
    
    
    
    set go=1ogame
    
    
    
    set /a turns= %turns% + 1
    
    
    
    goto 1display
    
    
    
    
    
    
    
    
    
    ::~  Sets the turn to the player, increases the turns variable by one. 'Goto's the display.
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    ::#######################################################
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    ::~ Two player is exactly the same as one player, apart from the computer is replaced by a second player, the code is otherwise identical and does not need explaining again.
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    :2p
    
    set turns=0
    
    set x1=0
    
    set x2=0
    
    set x3=0
    
    set x4=0
    
    set x5=0
    
    set x6=0
    
    set x7=0
    
    set x8=0
    
    set x9=0
    
    set o1=0
    
    set o2=0
    
    set o3=0
    
    set o4=0
    
    set o5=0
    
    set o6=0
    
    set o7=0
    
    set o8=0
    
    set o9=0
    
    set d1=1
    
    set d2=2
    
    set d3=3
    
    set d4=4
    
    set d5=5
    
    set d6=6
    
    set d7=7
    
    set d8=8
    
    set d9=9
    
    set rnumber=%random%
    
    set rnumber2=rnumber
    
    set /a rnumber= %rnumber% / 2
    
    set /a rnumber= %rnumber% * 2
    
    if %rnumber%==%rnumber2% (
    
    
    
    echo Crosses go first
    
    
    
    pause>nul
    
    
    
    set rnumber=
    
    
    
    set rnumber2=
    
    
    
    set go=2xgame
    
    
    
    goto 2display
    
    ) else (
    
    echo Noughts go first
    
    pause>nul
    
    set rnumber=
    
    set rnumber2=
    
    set go=2ogame
    
    goto 2display
    
    )
    
    :2display
    
    cls
    
    echo %d1% %d2% %d3%
    
    echo %d4% %d5% %d6%
    
    echo %d7% %d8% %d9%
    
    if /i %turns% equ 9 (goto draw)
    
    echo.
    
    if /i "%go%"=="2ogame" (
    
    echo Nought's Turn
    
    ) ELSE (
    
    echo Cross's Turn
    
    )
    
    echo.
    
    
    
    goto %go%
    
    
    
    
    
    
    
    
    
    :2ogame
    
    
    
    echo Choose the number of the space you'd like to choose
    
    
    
    set guess=
    
    
    
    set /p guess=
    
    
    
    if not defined guess goto 2display
    
    
    
    set guess=%guess:~0,1%
    
    
    
    if /i not %guess% leq 9 goto 2display
    
    
    
    if /i not %guess% gtr 0 goto 2display
    
    
    
    if /i !d%guess%! neq %guess% goto 2display
    
    
    
    goto 2o%guess%
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    :2o1
    
    
    
    set o1=1
    
    
    
    set d1=O
    
    
    
    goto 2oprocess
    
    
    
    :2o2
    
    
    
    set o2=10
    
    
    
    set d2=O
    
    
    
    goto 2oprocess
    
    
    
    :2o3
    
    
    
    set o3=100
    
    
    
    set d3=O
    
    
    
    goto 2oprocess
    
    
    
    :2o4
    
    set o4=1
    
    set d4=O
    
    goto 2oprocess
    
    :2o5
    
    
    
    set o5=10
    
    
    
    set d5=O
    
    
    
    goto 2oprocess
    
    
    
    :2o6
    
    
    
    set o6=100
    
    
    
    set d6=O
    
    
    
    goto 2oprocess
    
    
    
    :2o7
    
    
    
    set o7=1
    
    
    
    set d7=O
    
    
    
    goto 2oprocess
    
    
    
    :2o8
    
    
    
    set o8=10
    
    
    
    set d8=O
    
    
    
    goto 2oprocess
    
    
    
    :2o9
    
    
    
    set o9=100
    
    
    
    set d9=O
    
    
    
    goto 2oprocess
    
    
    
    
    
    
    
    
    
    :2oprocess
    
    
    
    set /a line1= %o1% + %o2% + %o3%
    
    
    
    if /i %line1% equ 111 (goto owin)
    
    
    
    
    
    
    
    
    
    set /a line2= %o4% + %o5% + %o6%
    
    
    
    if /i %line2% equ 111 (goto owin)
    
    
    
    
    
    
    
    
    
    set /a line3= %o7% + %o8% + %o9%
    
    
    
    if /i %line3% equ 111 (goto owin)
    
    
    
    
    
    
    
    
    
    set /a line4= %o1% + %o5% + %o9%
    
    
    
    if /i %line4% equ 111 (goto owin)
    
    
    
    
    
    
    
    
    
    set /a line5= %o3% + %o5% + %o7%
    
    
    
    if /i %line5% equ 111 (goto owin)
    
    
    
    
    
    
    
    
    
    set /a line6= %o1% + %o4% + %o7%
    
    
    
    if /i %line6% equ 3 (goto owin)
    
    
    
    
    
    
    
    
    
    set /a line7= %o2% + %o5% + %o8%
    
    
    
    if /i %line7% equ 30 (goto owin)
    
    
    
    
    
    
    
    
    
    set /a line8= %o3% + %o6% + %o9%
    
    
    
    if /i %line8% equ 300 (goto owin)
    
    
    
    
    
    
    
    
    
    set go=2xgame
    
    
    
    set guess=
    
    
    
    set /a turns= %turns% + 1
    
    
    
    goto 2display
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    :2xgame
    
    
    
    echo Choose the number of the space you'd like to choose
    
    
    
    set guess=
    
    
    
    set /p guess=
    
    
    
    if not defined guess goto 2display
    
    
    
    set guess=%guess:~0,1%
    
    
    
    if /i not %guess% leq 9 goto 2display
    
    
    
    if /i not %guess% gtr 0 goto 2display
    
    
    
    if /i !d%guess%! neq %guess% goto 2display
    
    
    
    goto 2x%guess%
    
    :2x1
    
    set x1=1
    
    set d1=X
    
    goto 2xprocess
    
    :2x2
    
    set x2=10
    
    set d2=X
    
    goto 2xprocess
    
    :2x3
    
    set x3=100
    
    set d3=X
    
    goto 2xprocess
    
    :2x4
    
    set x4=1
    
    set d4=X
    
    goto 2xprocess
    
    :2x5
    
    set x5=10
    
    set d5=X
    
    goto 2xprocess
    
    :2x6
    
    set x6=100
    
    set d6=X
    
    goto 2xprocess
    
    :2x7
    
    set x7=1
    
    set d7=X
    
    goto 2xprocess
    
    :2x8
    
    set x8=10
    
    set d8=X
    
    goto 2xprocess
    
    :2x9
    
    set x9=100
    
    set d9=X
    
    goto 2xprocess
    
    :2xprocess
    
    set /a line1= %x1% + %x2% + %x3%
    
    if /i %line1% equ 111 (goto xwin)
    
    set /a line2= %x4% + %x5% + %x6%
    
    if /i %line2% equ 111 (goto xwin)
    
    set /a line3= %x7% + %x8% + %x9%
    
    if /i %line3% equ 111 (goto xwin)
    
    set /a line4= %x1% + %x5% + %x9%
    
    if /i %line4% equ 111 (goto xwin)
    
    set /a line5= %x3% + %x5% + %x7%
    
    if /i %line5% equ 111 (goto xwin)
    
    set /a line6= %x1% + %x4% + %x7%
    
    if /i %line6% equ 3 (goto xwin)
    
    set /a line7= %x2% + %x5% + %x8%
    
    if /i %line7% equ 30 (goto xwin)
    
    set /a line8= %x3% + %x6% + %x9%
    
    if /i %line8% equ 300 (goto xwin)
    
    set go=2ogame
    
    set /a turns= %turns% + 1
    
    goto 2display
    
    :draw
    
    echo.
    
    Echo It's A Draw!
    
    pause>nul
    
    goto menu
    
    :owin
    
    cls
    
    echo %d1% %d2% %d3%
    
    echo %d4% %d5% %d6%
    
    echo %d7% %d8% %d9%
    
    Echo Noughts Win!
    
    pause>nul
    
    goto menu
    
    :xwin
    
    cls
    
    echo %d1% %d2% %d3%
    
    echo %d4% %d5% %d6%
    
    echo %d7% %d8% %d9%
    
    Echo Crosses Win!
    
    Pause>nul
    
    goto menu
    
    :end
    
    set d1=
    
    set d2=
    
    set d3=
    
    set d4=
    
    set d5=
    
    set d6=
    
    set d7=
    
    set d8=
    
    set d9=
    
    set o1=
    
    set o2=
    
    set o3=
    
    set o4=
    
    set o5=
    
    set o6=
    
    set o7=
    
    set o8=
    
    set o9=
    
    set x1=
    
    set x2=
    
    set x3=
    
    set x4=
    
    set x5=
    
    set x6=
    
    set x7=
    
    set x8=
    
    set x9=
    
    set guess=
    
    set turns=
    
    set line1=
    
    set line2=
    
    set line3=
    
    set line4=
    
    set line5=
    
    set line6=
    
    set line7=
    
    set line8=

    [3] Save the document and make sure for the name you put .bat,otherwise it won't work

    [4] Enjoy your new game!

    ~Credits go to -Goku71807 - that's the youtube user that created the video on how to do it but im sure someone else created how to do it.\

    ~Also, where I have "Banzai" you could change it to anything you want it to say like your name! It just adds another level of customization.

    As seen on vSauce here.
    5 people like this.
  2. Corn on the Cob

    Corn on the Cob Getting There

    Messages:
    1,405
    Likes Received:
    171
    Holy cow!!!! ME GUSTA. Thanks for this :p
  3. Jon

    Jon Banned

    Messages:
    2,291
    Likes Received:
    293
    Yea,sorry about the 1000 lines of text.I was going to put it into spoilers but I forgot to_Oh and your welcome.
  4. Charles

    Charles Getting There

    Messages:
    714
    Likes Received:
    211
    Great tutorial! :D
  5. Lewie4

    Lewie4 Getting There

    Messages:
    1,310
    Likes Received:
    91
    Nice. Thats a whole lot of code to make in notepad. +rep
  6. z6a

    z6a Enthusiast

    Messages:
    175
    Likes Received:
    8
    That's awesome :eek:

    Good how people find these things out.

    I didn't even know it was possible in Notepad. :p
  7. Saxo321

    Saxo321 Enthusiast

    Messages:
    702
    Likes Received:
    106
    thanks this worked but a bit stupid
  8. Glitch100

    Glitch100 Enthusiast

    Messages:
    1,332
    Likes Received:
    124
    Of course it worked; and it's not stupid, the game it self may be simple but the LOC required is quite a lot. Credit to the maker, lets see you try and make something you perceive to be stupid.
    Triiistan likes this.
  9. ModsBABY HD

    ModsBABY HD Experienced Member

    Messages:
    3,710
    Likes Received:
    527
    Dude that's ****ing sweet! Would you mind putting it in a spoiler o:)
  10. Jon

    Jon Banned

    Messages:
    2,291
    Likes Received:
    293
    I'll put it in right now.
  11. Josh

    Josh Seasoned Member

    Messages:
    5,093
    Likes Received:
    678
    vSauce?
    Zyp likes this.
  12. 0wl

    0wl Enthusiast

    Messages:
    40
    Likes Received:
    5
    hahaha works! Kept my attention for around 12 seconds.
  13. Jon

    Jon Banned

    Messages:
    2,291
    Likes Received:
    293
    Well hope you enjoyed it for the 10 seconds,
  14. FrostByte

    FrostByte The Dude

    Messages:
    1,442
    Likes Received:
    281
    vsauce sent me here, good stuff man ;).
  15. Jon

    Jon Banned

    Messages:
    2,291
    Likes Received:
    293
    Thanks.
  16. ner0

    ner0 Contributor

    Messages:
    3,880
    Likes Received:
    452
    This is quite neat
  17. Jon

    Jon Banned

    Messages:
    2,291
    Likes Received:
    293
    It is and it is a ton of fun!
  18. Triiistan

    Triiistan Contributor

    Messages:
    1,628
    Likes Received:
    313
    That was a fun game! Of course, ~Draw.
  19. TheChillerCraft

    TheChillerCraft Enthusiast

    Messages:
    483
    Likes Received:
    55
    Your sig is wrong you only have 91 rep...