main 07f54b570cdd cached
4 files
5.8 KB
1.9k tokens
7 symbols
1 requests
Download .txt
Repository: HarouneKESSAL/CottonBuds-Genshin-Undetected
Branch: main
Commit: 07f54b570cdd
Files: 4
Total size: 5.8 KB

Directory structure:
gitextract_jdzslnhy/

├── README.md
├── index.html
├── script.js
└── style.css

================================================
FILE CONTENTS
================================================

================================================
FILE: README.md
================================================
tic-tac-toc game


================================================
FILE: index.html
================================================
<!DOCTYPE html>
<html>
<head>
  <link rel="stylesheet" type="text/css" href="/style.css">
  <script src="/script.js"></script>
  <title>Tic Tac Toe</title>
</head>
<body>
  <table class="x O">
    <tr>
      <td id="0-0" onclick="placeSymbol(0, 0)"></td>
      <td id="0-1" onclick="placeSymbol(0, 1)"></td>
      <td id="0-2" onclick="placeSymbol(0, 2)"></td>
    </tr>
    <tr>
      <td id="1-0" onclick="placeSymbol(1, 0)"></td>
      <td id="1-1" onclick="placeSymbol(1, 1)"></td>
      <td id="1-2" onclick="placeSymbol(1, 2)"></td>
    </tr>
    <tr>
      <td id="2-0" onclick="placeSymbol(2, 0)"></td>
      <td id="2-1" onclick="placeSymbol(2, 1)"></td>
      <td id="2-2" onclick="placeSymbol(2, 2)"></td>
    </tr>
  </table>
<div class="scoreboard-container">
  <div class="scoreboard" id="scoreboard">
    <p>X: <span class="x" id="x-score">0</span></p>
    <p>O: <span class="o" id="o-score">0</span></p>
    <p>Draws: <span id="draw-score">0</span></p>
  </div>

  <div id="buttons">
    <button class="button" onclick="resetGame()">Reset Game</button>
    <button class="button" onclick="resetScoreboard()">Reset Scoreboard</button>
  </div>
</div>
</body>
</html>


================================================
FILE: script.js
================================================
var gameBoard = [[null, null, null], [null, null, null], [null, null, null]];
var currentPlayer = "X";
var xScore = 0;
var oScore = 0;
var drawScore = 0;
var gameOver = false;

function placeSymbol(row, col) {
  if (gameOver || gameBoard[row][col] != null) {
    return;
  }
  gameBoard[row][col] = currentPlayer;
  document.getElementById(row + "-" + col).innerHTML = currentPlayer;
  checkForWin();
  checkForDraw();
  switchPlayer();
}

function checkForWin() {
  for (var i = 0; i < 3; i++) {
    if (gameBoard[i][0] == currentPlayer && gameBoard[i][1] == currentPlayer && gameBoard[i][2] == currentPlayer) {
      gameOver = true;
      updateScore();
      return;
    }
    if (gameBoard[0][i] == currentPlayer && gameBoard[1][i] == currentPlayer && gameBoard[2][i] == currentPlayer) {
      gameOver = true;
      updateScore();
      return;
    }
  }
  if (gameBoard[0][0] == currentPlayer && gameBoard[1][1] == currentPlayer && gameBoard[2][2] == currentPlayer) {
    gameOver = true;
    updateScore();
    return;
  }
  if (gameBoard[0][2] == currentPlayer && gameBoard[1][1] == currentPlayer && gameBoard[2][0] == currentPlayer) {
    gameOver = true;
    updateScore();
    return;
  }
}

function checkForDraw() {
  var emptySpots = 0;
  for (var i = 0; i < 3; i++) {
    for (var j = 0; j < 3; j++) {
      if (gameBoard[i][j] == null) {
        emptySpots++;
      }
    }
  }
  if (emptySpots == 0 && !gameOver) {
    gameOver = true;
    drawScore++;
    document.getElementById("draw-score").innerHTML = drawScore;
  }
}

function switchPlayer() {
  if (currentPlayer == "X") {
    currentPlayer = "O";
  } else {
    currentPlayer = "X";
  }
}

function updateScore() {
  if (currentPlayer == "X") {
    xScore++;
    document.getElementById("x-score").innerHTML = xScore;
  } else {
    oScore++;
    document.getElementById("o-score").innerHTML = oScore;
  }
}

function resetGame() {
  gameBoard = [[null, null, null], [null, null, null], [null, null, null]];
  currentPlayer = "X";
  gameOver = false;
  for (var i = 0; i < 3; i++) {
  for (var j = 0; j < 3; j++) {
  document.getElementById(i + "-" + j).innerHTML = "";
  }
  }
  }
  
  function resetScoreboard() {
  xScore = 0;
  oScore = 0;
  drawScore = 0;
  document.getElementById("x-score").innerHTML = xScore;
  document.getElementById("o-score").innerHTML = oScore;
  document.getElementById("draw-score").innerHTML = drawScore;
  }

================================================
FILE: style.css
================================================
body {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100vh;
    background-color: #f2f2f2;
}

table {
    border-collapse: collapse;
    width: 350px;
    height: 350px;
    background-color: #fff;
    box-shadow: 0px 0px 10px #aaa;
    animation: zoomIn 0.5s ease-in-out;
}

td {
    border: 1px solid #ccc;
    width: 116px;
    height: 116px;
    text-align: center;
    vertical-align: middle;
    font-size: 50px;
    font-weight: bold;
    color: #aaa;
    transition: all 0.3s ease-in-out;
}

td:hover {
    background-color: #f5f5f5;
    cursor: pointer;
}

td.x {
    color: #f44336;
}

td.o {
    color: #2196f3;
}


/* Animations */
@keyframes zoomIn {
    from {
        transform: scale(0);
    }
    to {
        transform: scale(1);
    }
}

@keyframes slideIn {
    0% {
        transform: translateX(100%);
    }
    100% {
        transform: translateX(0%);
    }
}

.button:hover {
    animation: fadeIn 0.5s ease-in-out;
}

@keyframes fadeIn {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}
/* Container for the scoreboard and buttons */
.scoreboard-container {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 300px;
    background-color: rgba(255, 255, 255, 0.8); /* Light background color with transparency */
    padding: 20px;
    border-radius: 10px;
    box-shadow: 0px 0px 10px #aaa;
    z-index: 999;
}

/* Scoreboard */
.scoreboard {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.scoreboard .player {
    font-size: 18px;
    font-weight: bold;
}

.scoreboard .score {
    font-size: 16px;
}

/* Buttons */
.scoreboard-container .button {
    padding: 10px 20px;
    background-color: #4CAF50; /* Green */
    color: white;
    text-align: center;
    text-decoration: none;
    font-size: 16px;
    border-radius: 5px;
    border: none;
    margin-right: 10px;
    transition: all 0.3s ease-in-out;
}

.scoreboard-container .button:hover {
    background-color: #3e8e41;
    cursor: pointer;
}
Download .txt
gitextract_jdzslnhy/

├── README.md
├── index.html
├── script.js
└── style.css
Download .txt
SYMBOL INDEX (7 symbols across 1 files)

FILE: script.js
  function placeSymbol (line 8) | function placeSymbol(row, col) {
  function checkForWin (line 19) | function checkForWin() {
  function checkForDraw (line 44) | function checkForDraw() {
  function switchPlayer (line 60) | function switchPlayer() {
  function updateScore (line 68) | function updateScore() {
  function resetGame (line 78) | function resetGame() {
  function resetScoreboard (line 89) | function resetScoreboard() {
Condensed preview — 4 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (7K chars).
[
  {
    "path": "README.md",
    "chars": 18,
    "preview": "tic-tac-toc game\r\n"
  },
  {
    "path": "index.html",
    "chars": 1221,
    "preview": "<!DOCTYPE html>\r\n<html>\r\n<head>\r\n  <link rel=\"stylesheet\" type=\"text/css\" href=\"/style.css\">\r\n  <script src=\"/script.js\""
  },
  {
    "path": "script.js",
    "chars": 2513,
    "preview": "var gameBoard = [[null, null, null], [null, null, null], [null, null, null]];\r\nvar currentPlayer = \"X\";\r\nvar xScore = 0;"
  },
  {
    "path": "style.css",
    "chars": 2194,
    "preview": "body {\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    height: 100vh;\r\n    background-c"
  }
]

About this extraction

This page contains the full source code of the HarouneKESSAL/CottonBuds-Genshin-Undetected GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 4 files (5.8 KB), approximately 1.9k tokens, and a symbol index with 7 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!