File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -4,6 +4,8 @@ let timer = "stop";
44let timerId = 0 ;
55let generationFigure = 0 ;
66let timerTime = 1000 ;
7+ let isDragging = false ;
8+ let dragMode = false ; // true: 黒にする, false: 白にする
79
810const DEFAULT_BOARD_SIZE = 20 ;
911const DEFAULT_CELL_SIZE = 30 ;
@@ -44,11 +46,19 @@ function renderBoard() {
4446 button . style . height = `${ cellSize } px` ;
4547 button . style . padding = "0" ; //cellSizeが小さいとき、セルが横長になることを防ぐ
4648 button . style . display = "block" ; //cellSizeが小さいとき、行間が空きすぎるのを防ぐ
47- button . onclick = ( ) => {
49+ button . onmousedown = ( e ) => {
50+ e . preventDefault ( ) ;
4851 if ( timer === "stop" ) {
52+ isDragging = true ;
4953 board [ i ] [ j ] = ! board [ i ] [ j ] ;
50- renderBoard ( ) ;
51- //クリックされたら色を反転して盤面を変更
54+ dragMode = board [ i ] [ j ] ;
55+ button . style . backgroundColor = board [ i ] [ j ] ? "black" : "white" ;
56+ }
57+ } ;
58+ button . onmouseenter = ( ) => {
59+ if ( isDragging && timer === "stop" && board [ i ] [ j ] !== dragMode ) {
60+ board [ i ] [ j ] = dragMode ;
61+ button . style . backgroundColor = board [ i ] [ j ] ? "black" : "white" ;
5262 }
5363 } ;
5464 td . appendChild ( button ) ;
@@ -58,6 +68,10 @@ function renderBoard() {
5868 }
5969}
6070
71+ document . addEventListener ( "mouseup" , ( ) => {
72+ isDragging = false ;
73+ } ) ;
74+
6175renderBoard ( ) ;
6276progressBoard ( ) ;
6377
Original file line number Diff line number Diff line change 302302 </button >
303303
304304 <div class =" font-bold text-black ml-4" >
305- {isJapanese ? " 第" + generationFigure + " 世代" : " Generation" + generationFigure }
305+ {isJapanese ? " 第" + generationFigure + " 世代" : " Generation: " + generationFigure }
306306 </div >
307307 </div >
308308
319319 </button >
320320
321321 <button
322- class =" btn btn-ghost btn-circle hover:bg-[rgb(220,220,220)]"
322+ class =" btn btn-ghost btn-circle text-black hover:bg-[rgb(220,220,220)]"
323323 onclick ={() => {
324324 intervalMs = 1000 ;
325325 sendEvent (" timer_change" , intervalMs );
You can’t perform that action at this time.
0 commit comments