A little app to simulate every possible move in Connect Four.

Added dev container files

Changed files
+106
.devcontainer
+24
.devcontainer/Dockerfile
···
+
FROM mcr.microsoft.com/devcontainers/cpp:1-debian-11
+
+
ARG REINSTALL_CMAKE_VERSION_FROM_SOURCE="none"
+
+
# Optionally install the cmake for vcpkg
+
COPY ./reinstall-cmake.sh /tmp/
+
+
RUN if [ "${REINSTALL_CMAKE_VERSION_FROM_SOURCE}" != "none" ]; then \
+
chmod +x /tmp/reinstall-cmake.sh && /tmp/reinstall-cmake.sh ${REINSTALL_CMAKE_VERSION_FROM_SOURCE}; \
+
fi \
+
&& rm -f /tmp/reinstall-cmake.sh
+
+
# [Optional] Uncomment this section to install additional vcpkg ports.
+
# RUN su vscode -c "${VCPKG_ROOT}/vcpkg install <your-port-name-here>"
+
+
# [Optional] Uncomment this section to install additional packages.
+
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
+
&& apt-get install -y build-essential git make \
+
pkg-config cmake ninja-build gnome-desktop-testing libasound2-dev libpulse-dev \
+
libaudio-dev libjack-dev libsndio-dev libx11-dev libxext-dev \
+
libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev libxss-dev libxtst-dev \
+
libxkbcommon-dev libdrm-dev libgbm-dev libgl1-mesa-dev libgles2-mesa-dev \
+
libegl1-mesa-dev libdbus-1-dev libibus-1.0-dev libudev-dev \
+
libpipewire-0.3-dev libwayland-dev liburing-dev
+23
.devcontainer/devcontainer.json
···
+
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
+
// README at: https://github.com/devcontainers/templates/tree/main/src/cpp
+
{
+
"name": "C++",
+
"build": {
+
"dockerfile": "Dockerfile"
+
}
+
+
// Features to add to the dev container. More info: https://containers.dev/features.
+
// "features": {},
+
+
// Use 'forwardPorts' to make a list of ports inside the container available locally.
+
// "forwardPorts": [],
+
+
// Use 'postCreateCommand' to run commands after the container is created.
+
// "postCreateCommand": "gcc -v",
+
+
// Configure tool-specific properties.
+
// "customizations": {},
+
+
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
+
// "remoteUser": "root"
+
}
+59
.devcontainer/reinstall-cmake.sh
···
+
#!/usr/bin/env bash
+
#-------------------------------------------------------------------------------------------------------------
+
# Copyright (c) Microsoft Corporation. All rights reserved.
+
# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
+
#-------------------------------------------------------------------------------------------------------------
+
#
+
set -e
+
+
CMAKE_VERSION=${1:-"none"}
+
+
if [ "${CMAKE_VERSION}" = "none" ]; then
+
echo "No CMake version specified, skipping CMake reinstallation"
+
exit 0
+
fi
+
+
# Cleanup temporary directory and associated files when exiting the script.
+
cleanup() {
+
EXIT_CODE=$?
+
set +e
+
if [[ -n "${TMP_DIR}" ]]; then
+
echo "Executing cleanup of tmp files"
+
rm -Rf "${TMP_DIR}"
+
fi
+
exit $EXIT_CODE
+
}
+
trap cleanup EXIT
+
+
+
echo "Installing CMake..."
+
apt-get -y purge --auto-remove cmake
+
mkdir -p /opt/cmake
+
+
architecture=$(dpkg --print-architecture)
+
case "${architecture}" in
+
arm64)
+
ARCH=aarch64 ;;
+
amd64)
+
ARCH=x86_64 ;;
+
*)
+
echo "Unsupported architecture ${architecture}."
+
exit 1
+
;;
+
esac
+
+
CMAKE_BINARY_NAME="cmake-${CMAKE_VERSION}-linux-${ARCH}.sh"
+
CMAKE_CHECKSUM_NAME="cmake-${CMAKE_VERSION}-SHA-256.txt"
+
TMP_DIR=$(mktemp -d -t cmake-XXXXXXXXXX)
+
+
echo "${TMP_DIR}"
+
cd "${TMP_DIR}"
+
+
curl -sSL "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/${CMAKE_BINARY_NAME}" -O
+
curl -sSL "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/${CMAKE_CHECKSUM_NAME}" -O
+
+
sha256sum -c --ignore-missing "${CMAKE_CHECKSUM_NAME}"
+
sh "${TMP_DIR}/${CMAKE_BINARY_NAME}" --prefix=/opt/cmake --skip-license
+
+
ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake
+
ln -s /opt/cmake/bin/ctest /usr/local/bin/ctest