n=10;
lis = Range[n*n];
lis=Partition[lis,10]
RightHopping = Map[RotateLeft,lis](*Right Hopping*)
LeftHopping = Map[RotateRight,lis](*Left Hopping*)
UpDirection=lis+n;
DownDirection=lis-n;
f1[x_List]:=Select[x,#>100&];(*筛选向上hopping的最后一行的周期位置*)
f2[x_List]:=Select[x,#<=0&];(*筛选向下Hopping的第一行的周期位置*)
U1=Flatten[Map[f1,UpDirection]]-n*n;(*最后一行向上Hopping的索引修正*)
D1 =Flatten[Map[f2,DownDirection]]+n*n;(*第一行向下Hopping的索引修正*)
UpDirection = Append[UpDirection =Delete[UpDirection,-1],U1]
DownDirection = Prepend[DownDirection =Delete[DownDirection,1],D1]

t1 =MapThread[UndirectedEdge,{lis,RightHopping},2];
Map[Graph[#,GraphLayout->"SpringEmbedding"]&,t1]

DirectedEdge

t1 =MapThread[DirectedEdge,{lis,RightHopping},2];
t1c =MapThread[DirectedEdge,{RightHopping,lis},2];
Map[Graph[#,GraphLayout->"SpringEmbedding"]&,t1][[1]]
Map[Graph[#,GraphLayout->"SpringEmbedding"]&,t1c][[1]]