import random
import numpy as np
import matplotlib.pyplot as plt

def descartes(ax, ran_x, ran_y, ax_title,x_label = "x", y_label = "y"):
    ax.set_xlabel(x_label, fontsize = 12)
    ax.set_ylabel(y_label, fontsize = 12)
    ax.set_xlim(ran_x[0], ran_x[1])
    ax.set_ylim(ran_y[0], ran_y[1])
    ax.set_title(ax_title, fontsize = 14)
    ax.grid()
    ax.axhline(0, color = "black")
    ax.axvline(0, color = "black")
    
point=[]
def symmetry(point,swt):
    [a,b]=point
    if swt=='x':
        return [a,-b]
    elif swt=='y':
        return [-a,b]
    elif swt=='yx':
        return [b,a]
    elif swt=='y-x':
        return [-b,-a]
    else:
        return [a,b]


fig = plt.figure(figsize = (5, 5))
ax = fig.add_subplot(111)

title1 = "Tokyo University 2024 Math qu.3 NO1"
descartes(ax, [-3, 3], [-3, 3],title1)

random.seed(42)
a1=[2,1]
an=a1
for i in range(100):
    dd=random.randint(1,6)
    if dd==1 or dd==2:
        swt='x'
    elif dd==3 or dd==4:
        swt='y'
    elif dd==5:
        swt='yx'
    else:
        swt='y-x'
        
    an=symmetry(an,swt)
    [x1,y1]=an
    ax.scatter(x1,y1,color="red")
    an=[x1,y1]

plt.show()