split into files

This commit is contained in:
2026-05-20 11:34:44 +02:00
parent 0815234bfe
commit 1ddefb2a18
3 changed files with 54 additions and 41 deletions
+9
View File
@@ -0,0 +1,9 @@
package hanabi
import "core:net"
import "core:os"
main :: proc() {
sock, dial_err := net.dial_tcp(os.args[1])
}
-41
View File
@@ -2,8 +2,6 @@ package hanabi
import "core:fmt"
import "core:math/rand"
import "core:net"
import "core:os"
COLORS :: enum {
RED,
@@ -80,42 +78,3 @@ print_game :: proc(s: Game) {
// fmt.println(len(s.deck))
}
Comm_World :: struct {
sockets: [dynamic]net.TCP_Socket,
}
create_socket :: proc(addr_str: string) -> (net.TCP_Socket, bool) {
addr, endpoint_ok := net.parse_endpoint(addr_str)
if !endpoint_ok {
fmt.eprintln("failed to parse endpoint")
return 0, false
}
sock, dial_error := net.listen_tcp(addr)
if dial_error != nil {
fmt.eprintln(addr_str, dial_error)
return 0, false
}
return sock, true
}
create_comm_world :: proc(addresses: []string) -> (comm: Comm_World) {
for addr_str in addresses {
sock, ok := create_socket(addr_str)
if !ok do panic(fmt.tprintfln("%s: failed to create socket", addr_str))
append(&comm.sockets, sock)
}
return
}
main :: proc() {
game := create_game(8, 3, 3)
print_game(game)
if len(os.args) > 1 {
comm := create_comm_world(os.args[1:])
fmt.println(comm.sockets)
} else {
fmt.eprintln("usage: <player 1 addr:port> <p2> [p3] [p4] [p5]")
}
}
+45
View File
@@ -0,0 +1,45 @@
package hanabi
import "core:fmt"
import "core:net"
import "core:os"
Comm_World :: struct {
sockets: [dynamic]net.TCP_Socket,
}
create_socket :: proc(addr_str: string) -> (net.TCP_Socket, bool) {
addr, endpoint_ok := net.parse_endpoint(addr_str)
if !endpoint_ok {
fmt.eprintln("failed to parse endpoint")
return 0, false
}
sock, dial_error := net.listen_tcp(addr)
if dial_error != nil {
fmt.eprintln(addr_str, dial_error)
return 0, false
}
return sock, true
}
create_comm_world :: proc(addresses: []string) -> (comm: Comm_World) {
for addr_str in addresses {
sock, ok := create_socket(addr_str)
if !ok do panic(fmt.tprintfln("%s: failed to create socket", addr_str))
append(&comm.sockets, sock)
}
return
}
main :: proc() {
game := create_game(8, 3, 3)
print_game(game)
if len(os.args) > 1 {
comm := create_comm_world(os.args[1:])
fmt.println(comm.sockets)
} else {
fmt.eprintln("usage: <player 1 addr:port> <p2> [p3] [p4] [p5]")
}
}