pull/20/head
Louis DUFOUR 11 months ago
commit faa5fc77a1

@ -0,0 +1,21 @@
{
"images" : [
{
"filename" : "Perceval.jpg",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 493 KiB

@ -0,0 +1,92 @@
//
// ItemCollectionParty.swift
// ArkitDoushiQi
//
// Created by Louis DUFOUR on 31/05/2024.
//
import SwiftUI
struct ItemCollectionParty: View {
var party: Party
var body: some View {
VStack {
HStack {
Text(party.date)
.font(.headline)
.foregroundColor(.gray)
Spacer()
}
.padding(.bottom, 5)
GeometryReader { geometry in
HStack(spacing: 10) {
HStack {
Image(party.player1Image)
.resizable()
.aspectRatio(contentMode: .fill)
.frame(width: geometry.size.width * 0.15, height: geometry.size.width * 0.15)
.clipShape(Circle())
.overlay(Circle().stroke(Color.purple, lineWidth: 2))
VStack(alignment: .leading) {
Text(party.player1Name)
.fontWeight(.bold)
.foregroundColor(.purple)
.lineLimit(1)
.minimumScaleFactor(0.5)
.frame(maxWidth: geometry.size.width * 0.25, alignment: .leading)
Text("\(party.player1Score)")
.font(.largeTitle)
.fontWeight(.bold)
.foregroundColor(.green) // Gagnant en vert
}
}
Text("vs")
.font(.headline)
.foregroundColor(.gray)
HStack {
VStack(alignment: .trailing) {
Text(party.player2Name)
.fontWeight(.bold)
.foregroundColor(.purple)
.lineLimit(1)
.minimumScaleFactor(0.5)
.frame(maxWidth: geometry.size.width * 0.25, alignment: .trailing)
Text("\(party.player2Score)")
.font(.largeTitle)
.fontWeight(.bold)
.foregroundColor(.red) // Perdant en rouge
}
Image(party.player2Image)
.resizable()
.aspectRatio(contentMode: .fill)
.frame(width: geometry.size.width * 0.15, height: geometry.size.width * 0.15)
.clipShape(Circle())
.overlay(Circle().stroke(Color.purple, lineWidth: 2))
}
}
.padding()
.background(Color.white)
.cornerRadius(15)
.shadow(radius: 3) // Réduction de l'ombre pour un effet plus léger
}
.frame(height: 120) // Ajustez la hauteur en fonction de votre contenu
}
.padding(.horizontal)
}
}
struct ItemCollectionParty_Previews: PreviewProvider {
static var previews: some View {
ItemCollectionParty(party: Party(player1Name: "L'invaincu du samedi", player1Score: 2, player1Image: "Perceval", player2Name: "Le gars du dimanche", player2Score: 1, player2Image: "Perceval", date: "Samedi soir"))
.previewLayout(.sizeThatFits)
.padding()
}
}

@ -1,33 +0,0 @@
//
// DetailGameHistory.swift
// ArkitDoushiQi
//
// Created by Enzo JOLYS on 22/05/2024.
//
import SwiftUI
import DouShouQiModel
struct HistoryGameDetail: View {
let game:Game
var body: some View {
ZStack(){
Color.red
Color.gray
HStack(){
Text(game.players[.player1]?.name ?? "Inconnu")
Text(" VS ")
Text(game.players[.player2]?.name ?? "Inconnu")
Spacer()
}
}
}
}
struct HistoryGameDetail_Previews: PreviewProvider {
static var previews: some View {
HistoryGameDetail(game: try! Game(withRules: VerySimpleRules(), andPlayer1: Player(withName: "Joueur 1 ", andId: .player1)!, andPlayer2: Player(withName: "Joueur 2 ", andId: .player2)!))
}
}

@ -1,24 +0,0 @@
//
// EnteteHistory.swift
// ArkitDoushiQi
//
// Created by Enzo JOLYS on 22/05/2024.
//
import SwiftUI
struct HistoryHeader: View {
var body: some View {
HStack(){
Spacer()
Text("Historique !")
Spacer()
}
}
}
struct HistoryHeader_Previews: PreviewProvider {
static var previews: some View {
HistoryHeader()
}
}

@ -1,31 +0,0 @@
//
// History.swift
// ArkitDoushiQi
//
// Created by Enzo JOLYS on 22/05/2024.
//
import SwiftUI
import DouShouQiModel
struct HistoryView: View {
var listGame:[Game] = try! [Game(withRules: VerySimpleRules(), andPlayer1: Player(withName: "Player 1 ", andId: .player1)!, andPlayer2: Player(withName: "Player 2 ", andId: .player2)!)]
var body: some View {
VStack(){
HistoryHeader()
NavigationStack {
List(listGame, id: \.board){ game in
HistoryGameDetail(game: game)
}
}
}
}
}
struct HistoryView_Previews: PreviewProvider {
static var previews: some View {
HistoryView()
}
}

@ -19,25 +19,23 @@ struct MainMenu: View {
var body: some View {
ZStack {
NavigationView {
VStack {
Spacer()
HStack {
Text("DouShiQi")
.bold()
.font(.title).padding()
}
Spacer().frame(height: 40)
VStack(alignment: .leading) {
ButtonComponent(title: playButtonText) {
GameParametersMenuView()
}
Spacer().frame(height: 30)
ButtonComponent(title: registeredGamesButtonText) {
Text("parties enregistrées page")
VStack {
Spacer()
HStack() {
Text("DouShiQi")
.bold()
.font(.title).padding()
}
Spacer().frame(height: 30)
ButtonComponent(title: parametersButtonText) {
GeneralParametersMenuView(
Spacer().frame(height: 40)
VStack(alignment: .leading) {
ButtonComponent(title: playButtonText)
{ GameParametersMenuView() }
Spacer().frame(height: 30)
ButtonComponent(title: registeredGamesButtonText)
{ PartyListView() }
Spacer().frame(height: 30)
ButtonComponent(title: ParametersButtontText)
{ GeneralParametersMenuView(
selectedAIOption: .RandomAction,
selectedRulesOption: .Regular
).id(reloadView) // Utilisez l'ID pour forcer le rechargement de la vue

@ -0,0 +1,34 @@
//
// PartyEnregistery.swift
// ArkitDoushiQi
//
// Created by Louis DUFOUR on 31/05/2024.
//
import SwiftUI
import SwiftUI
struct PartyListView: View {
let parties: [Party] = [
Party(player1Name: "L'invaincu du samedi", player1Score: 2, player1Image: "Perceval", player2Name: "Le gars du dimanche", player2Score: 1, player2Image: "Perceval", date: "Samedi soir"),
Party(player1Name: "Le champion du vendredi", player1Score: 3, player1Image: "Perceval", player2Name: "Le perdant du lundi", player2Score: 0, player2Image: "Perceval", date: "Vendredi soir")
// Ajoutez plus de parties ici
]
var body: some View {
NavigationView {
List(parties) { party in
ItemCollectionParty(party: party)
.padding(.vertical, 5)
}
.navigationTitle("Liste des Parties")
}
}
}
struct PartyListView_Previews: PreviewProvider {
static var previews: some View {
PartyListView()
}
}

@ -0,0 +1,19 @@
//
// Stub.swift
// ArkitDoushiQi
//
// Created by Louis DUFOUR on 31/05/2024.
//
import SwiftUI
struct Party: Identifiable {
let id = UUID()
let player1Name: String
let player1Score: Int
let player1Image: String
let player2Name: String
let player2Score: Int
let player2Image: String
let date: String
}
Loading…
Cancel
Save